SpyBara
Go Premium

Documentation 2026-10-14 22:58 UTC to 2026-10-15 23:58 UTC

44 files changed +1,844 −624. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

636| Limitación | Descripción |636| Limitación | Descripción |

637| - | - |637| - | - |

638| Solo herramientas Write/Edit/NotebookEdit | Los cambios realizados a través de comandos Bash no se rastrean |638| Solo herramientas Write/Edit/NotebookEdit | Los cambios realizados a través de comandos Bash no se rastrean |

639| Ediciones de subagentes | Las ediciones que aplica un [subagente](/docs/es/agent-sdk/subagents) no se rastrean ni se restauran, excepto una skill con `context: fork` ejecutándose en primer plano; use git para revertir ediciones no rastreadas |639| Ediciones de subagentes | Las ediciones que aplica un [subagente](/docs/es/agent-sdk/subagents) no se rastrean, excepto un skill con `context: fork` ejecutándose en primer plano. Al revertir, esas ediciones solo se deshacen en los archivos que la conversación principal ya había editado; usa git para revertir el resto |

640| Misma sesión | Los checkpoints están vinculados a la sesión que los creó |640| Misma sesión | Los checkpoints están vinculados a la sesión que los creó |

641| Solo contenido de archivo | Crear, mover o eliminar directorios no se deshace al revertir |641| Solo contenido de archivo | Crear, mover o eliminar directorios no se deshace al revertir |

642| Archivos locales | Los archivos remotos o de red no se rastrean |642| Archivos locales | Los archivos remotos o de red no se rastrean |

Details

205 205 

206**Comportamiento actual:** Omitir `settingSources` en `query()` carga la configuración del usuario, proyecto y sistema de archivos local, coincidiendo con la CLI. Esto incluye `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, archivos CLAUDE.md y comandos personalizados.206**Comportamiento actual:** Omitir `settingSources` en `query()` carga la configuración del usuario, proyecto y sistema de archivos local, coincidiendo con la CLI. Esto incluye `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, archivos CLAUDE.md y comandos personalizados.

207 207 

208Para ejecutarse aislado de la configuración del sistema de archivos, pase `settingSources: []`, o `setting_sources=[]` en Python. Consulte [Control filesystem settings with settingSources](/docs/es/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) para ver qué carga cada fuente.208Para ejecutarse aislado de la configuración del sistema de archivos, pase `settingSources: []`, o `setting_sources=[]` en Python. Consulte [Controlar la configuración del sistema de archivos con settingSources](/docs/es/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) para ver qué carga cada fuente.

209 209 

210El aislamiento es especialmente importante para canalizaciones de CI/CD, aplicaciones implementadas, entornos de prueba y sistemas multiinquilino donde las personalizaciones locales no deben filtrarse.210El aislamiento es especialmente importante para canalizaciones de CI/CD, aplicaciones implementadas, entornos de prueba y sistemas multiinquilino donde las personalizaciones locales no deben filtrarse.

211 211 

212<Note>212<Note>

213 Python SDK 0.1.59 y anteriores trataban una lista vacía igual que omitir la opción, así que actualice antes de confiar en `setting_sources=[]`. Consulte [What settingSources does not control](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) para ver las entradas que se leen incluso cuando `settingSources` es `[]`.213 Python SDK 0.1.59 y anteriores trataban una lista vacía igual que omitir la opción, así que actualice antes de confiar en `setting_sources=[]`. Consulte [Qué settingSources no controla](/docs/es/agent-sdk/claude-code-features#what-settingsources-does-not-control) para ver las entradas que se leen incluso cuando `settingSources` es `[]`.

214</Note>214</Note>

215 215 

216<h2 id="next-steps">216<h2 id="next-steps">

Details

17 17 

18Esta guía explica cómo el SDK emite telemetría, cómo configurar la exportación y cómo etiquetar y filtrar los datos una vez que llegan a su backend. Para leer el uso de tokens y el costo directamente desde el flujo de respuesta del SDK en lugar de exportar a un backend, consulte [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking).18Esta guía explica cómo el SDK emite telemetría, cómo configurar la exportación y cómo etiquetar y filtrar los datos una vez que llegan a su backend. Para leer el uso de tokens y el costo directamente desde el flujo de respuesta del SDK en lugar de exportar a un backend, consulte [Rastrear costo y uso](/docs/es/agent-sdk/cost-tracking).

19 19 

20<Note>

21 Para la Claude API o Managed Agents, consulta [OpenTelemetry para la Claude API](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

22</Note>

23 

20<h2 id="how-telemetry-flows-from-the-sdk">24<h2 id="how-telemetry-flows-from-the-sdk">

21 Cómo fluye la telemetría desde el SDK25 Cómo fluye la telemetría desde el SDK

22</h2>26</h2>

agent-view.md +5 −5

Details

500 Qué se conserva al enviar al segundo plano500 Qué se conserva al enviar al segundo plano

501</h4>501</h4>

502 502 

503Enviar al segundo plano inicia un proceso nuevo que se reanuda desde la conversación guardada, y el trabajo en curso pasa a él: los comandos de shell en segundo plano en ejecución, los subagentes en segundo plano, los flujos de trabajo dinámicos, las tareas programadas que creaste con [`/loop`](/docs/es/scheduled-tasks) y las [respuestas automáticas de Claude a comentarios de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) se conservan y siguen ejecutándose allí. Un subagente se mueve junto con todo lo que inició, por lo que solo se conserva cuando todo ese trabajo también puede moverse. Para detener el trabajo en curso en lugar de conservarlo, establece la variable de entorno [`CLAUDE_DISABLE_ADOPT=1`](/docs/es/env-vars#variables); Claude Code entonces te pide que confirmes antes de enviar al segundo plano.503Enviar al segundo plano inicia un proceso nuevo que se reanuda desde la conversación guardada, y el trabajo en segundo plano en curso pasa a él: los comandos de shell en segundo plano en ejecución, los subagentes en segundo plano, los flujos de trabajo dinámicos, las tareas programadas que creaste con [`/loop`](/docs/es/scheduled-tasks) y las [respuestas automáticas de Claude a comentarios de artefactos](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own) se conservan y siguen ejecutándose allí. Un subagente se mueve junto con todo lo que inició, por lo que solo se conserva cuando todo ese trabajo también puede moverse. Para detener el trabajo en segundo plano en curso en lugar de conservarlo, establece la variable de entorno [`CLAUDE_DISABLE_ADOPT=1`](/docs/es/env-vars#variables); Claude Code entonces te pide que confirmes antes de enviar al segundo plano.

504 504 

505Cuando un [flujo de trabajo dinámico](/docs/es/workflows) aún tiene subagentes en ejecución, Claude Code pregunta antes de enviar al segundo plano con el diálogo `Background this session?`, que indica cuántos subagentes se reiniciarían. Elige `Stay` para dejar que terminen primero. Si confirmas, Claude Code reproduce la ejecución en la sesión en segundo plano: los subagentes que aún se estaban ejecutando comienzan de nuevo desde el principio, por lo que los tokens que usaron hasta ese momento se gastan otra vez. Consulta [Reanudar después de una pausa](/docs/es/workflows#resume-after-a-pause) para ver qué subagentes completados devuelven sus resultados guardados y cuáles se ejecutan de nuevo.505Cuando un [flujo de trabajo dinámico](/docs/es/workflows) aún tiene subagentes en ejecución, Claude Code pregunta antes de enviar al segundo plano con el diálogo `Background this session?`, que indica cuántos subagentes se reiniciarían. Elige `Stay` para dejar que terminen primero. Si confirmas, Claude Code reproduce la ejecución en la sesión en segundo plano: los subagentes que aún se estaban ejecutando comienzan de nuevo desde el principio, por lo que los tokens que usaron hasta ese momento se gastan otra vez. Consulta [Reanudar después de una pausa](/docs/es/workflows#resume-after-a-pause) para ver qué subagentes completados devuelven sus resultados guardados y cuáles se ejecutan de nuevo.

506 506 

507Claude Code detiene el trabajo que no se puede conservar, como un [monitor](/docs/es/tools-reference#monitor-tool) en ejecución, y detiene también un subagente en segundo plano que posee un monitor. Cuando hay trabajo de este tipo en ejecución, Claude Code muestra el diálogo `Background this session?` para que puedas confirmar antes de que detenga el trabajo.507Claude Code detiene el trabajo en segundo plano que no se puede conservar, como un [monitor](/docs/es/tools-reference#monitor-tool) en ejecución, y detiene también un subagente en segundo plano que posee un monitor. Cuando hay trabajo de este tipo en ejecución, Claude Code muestra el diálogo `Background this session?` para que puedas confirmar antes de que detenga el trabajo.

508 508 

509Una vez en segundo plano, la sesión puede iniciar nuevos subagentes, monitores y comandos en segundo plano, y estos siguen ejecutándose tras desasociaciones y nuevas conexiones posteriores.509Una vez en segundo plano, la sesión puede iniciar nuevos subagentes, monitores y comandos en segundo plano, y estos siguen ejecutándose tras desasociaciones y nuevas conexiones posteriores.

510 510 


949 Enviar al segundo plano muestra un diálogo `Background this session?`949 Enviar al segundo plano muestra un diálogo `Background this session?`

950</h3>950</h3>

951 951 

952Si presionas `←` para enviar al segundo plano la sesión actual y Claude Code muestra un diálogo `Background this session?`, la sesión tiene trabajo en curso que enviarla al segundo plano detendría, reiniciaría o dejaría ejecutándose sin supervisión, y Claude Code pregunta antes de hacer cualquiera de esas cosas:952Si presionas `←` para enviar al segundo plano la sesión actual y Claude Code muestra un diálogo `Background this session?`, la sesión tiene trabajo en segundo plano en curso que enviarla al segundo plano detendría, reiniciaría o dejaría ejecutándose sin supervisión, y Claude Code pregunta antes de hacer cualquiera de esas cosas:

953 953 

954* **Trabajo que no se puede mover**: la sesión tiene trabajo que no se puede mover a la sesión en segundo plano, como un [monitor](/docs/es/tools-reference#monitor-tool) en ejecución. El diálogo nombra el trabajo que Claude Code detendría y, por separado, cuenta las tareas que se trasladan.954* **Trabajo que no se puede mover**: la sesión tiene trabajo que no se puede mover a la sesión en segundo plano, como un [monitor](/docs/es/tools-reference#monitor-tool) en ejecución. El diálogo nombra el trabajo en segundo plano que Claude Code detendría y, por separado, cuenta las tareas que se trasladan.

955* **Un flujo de trabajo con subagentes en ejecución**: un [flujo de trabajo dinámico](/docs/es/workflows) aún tiene subagentes en ejecución. El flujo de trabajo en sí se traslada, pero sus subagentes en ejecución se reinician desde el principio, y el diálogo dice cuántos.955* **Un flujo de trabajo con subagentes en ejecución**: un [flujo de trabajo dinámico](/docs/es/workflows) aún tiene subagentes en ejecución. El flujo de trabajo en sí se traslada, pero sus subagentes en ejecución se reinician desde el principio, y el diálogo dice cuántos.

956* **Respuestas automáticas de artefactos**: Claude está [respondiendo a comentarios en un artefacto por su cuenta](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Esas respuestas continúan en la sesión en segundo plano, y el diálogo lo indica.956* **Respuestas automáticas de artefactos**: Claude está [respondiendo a comentarios en un artefacto por su cuenta](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Esas respuestas continúan en la sesión en segundo plano, y el diálogo lo indica.

957 957 


1175| v2.1.199 | Una sesión en segundo plano cuyo proceso sale antes de terminar de iniciarse en un host con poca memoria muestra `possibly low memory — free some up and retry` en el estado de su fila en lugar de solo la razón de salida sin más. Enviar al segundo plano una sesión con `←` o `/background` lleva su `/color` a la nueva fila. |1175| v2.1.199 | Una sesión en segundo plano cuyo proceso sale antes de terminar de iniciarse en un host con poca memoria muestra `possibly low memory — free some up and retry` en el estado de su fila en lugar de solo la razón de salida sin más. Enviar al segundo plano una sesión con `←` o `/background` lleva su `/color` a la nueva fila. |

1176| v2.1.198 | La vista de agentes envía una notificación a través de `preferredNotifChannel` cuando una sesión en segundo plano necesita entrada, finaliza o falla, y dispara el hook `Notification` con el tipo `agent_needs_input` o `agent_completed`. `←` y `/exit` dentro de `claude attach <id>` regresan a la vista de agentes en lugar de salir al shell; `Ctrl+Z` regresa al shell. Una sesión en segundo plano que aisló su trabajo en un worktree hace commit, hace push de su propia rama aislada, nunca de `main` ni de `master`, y abre un pull request en borrador cuando finaliza en lugar de preguntar primero. `/login` se ejecuta en la vista de agentes y abre el diálogo de inicio de sesión. El diálogo de salida `Background work is running` ofrece `Move to background and exit`. El traspaso al salir también cubre los subagentes en segundo plano, que se reanudan desde su transcripción en el siguiente despertar en lugar de informarse como fallidos. `claude --bg` combinado con `-p` o `--print` se rechaza con un error. El host de sesiones en segundo plano solicita el permiso de Red Local de macOS en el primer acceso a la LAN en lugar de fallar con `connect: no route to host`. |1176| v2.1.198 | La vista de agentes envía una notificación a través de `preferredNotifChannel` cuando una sesión en segundo plano necesita entrada, finaliza o falla, y dispara el hook `Notification` con el tipo `agent_needs_input` o `agent_completed`. `←` y `/exit` dentro de `claude attach <id>` regresan a la vista de agentes en lugar de salir al shell; `Ctrl+Z` regresa al shell. Una sesión en segundo plano que aisló su trabajo en un worktree hace commit, hace push de su propia rama aislada, nunca de `main` ni de `master`, y abre un pull request en borrador cuando finaliza en lugar de preguntar primero. `/login` se ejecuta en la vista de agentes y abre el diálogo de inicio de sesión. El diálogo de salida `Background work is running` ofrece `Move to background and exit`. El traspaso al salir también cubre los subagentes en segundo plano, que se reanudan desde su transcripción en el siguiente despertar en lugar de informarse como fallidos. `claude --bg` combinado con `-p` o `--print` se rechaza con un error. El host de sesiones en segundo plano solicita el permiso de Red Local de macOS en el primer acceso a la LAN en lugar de fallar con `connect: no route to host`. |

1177| v2.1.196 | Una sola pulsación de `←` envía al segundo plano una sesión en primer plano; las versiones anteriores requerían dos pulsaciones, con una sugerencia en el pie de página y una confirmación. `--dangerously-skip-permissions` pasado a `claude agents` muestra el aviso de bypass en lugar de descartarse silenciosamente. Las sesiones interactivas que nunca nombraste llevan un nombre predeterminado como `my-app-3f` en los listados de sesiones y en `claude agents --json`. Los comandos de shell en segundo plano y los flujos de trabajo dinámicos sobreviven a que el proceso de la sesión se detenga, se reinicie o se actualice, incluso en Windows; establece `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` para desactivar el traspaso. Una transcripción leída erróneamente como vacía al reiniciar se renombra con un sufijo `.orphaned-` en lugar de eliminarse. |1177| v2.1.196 | Una sola pulsación de `←` envía al segundo plano una sesión en primer plano; las versiones anteriores requerían dos pulsaciones, con una sugerencia en el pie de página y una confirmación. `--dangerously-skip-permissions` pasado a `claude agents` muestra el aviso de bypass en lugar de descartarse silenciosamente. Las sesiones interactivas que nunca nombraste llevan un nombre predeterminado como `my-app-3f` en los listados de sesiones y en `claude agents --json`. Los comandos de shell en segundo plano y los flujos de trabajo dinámicos sobreviven a que el proceso de la sesión se detenga, se reinicie o se actualice, incluso en Windows; establece `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` para desactivar el traspaso. Una transcripción leída erróneamente como vacía al reiniciar se renombra con un sufijo `.orphaned-` en lugar de eliminarse. |

1178| v2.1.195 | El trabajo en curso también se traslada cuando envías una sesión al segundo plano en Windows; establece `CLAUDE_DISABLE_ADOPT=1` para detenerlo en su lugar. El grupo `Completed` llena el espacio vertical restante y el encabezado se compacta en terminales de poca altura. Una versión anterior de Claude Code ya no descarta campos de `state.json` de sesiones más nuevas ni oculta esas sesiones de `claude agents`. Adjuntarse a una sesión detenida cambia inmediatamente en lugar de mostrar una pantalla en blanco durante hasta cinco segundos. Un supervisor que no puede aceptar conexiones sale y libera su bloqueo por sí solo. |1178| v2.1.195 | El trabajo en segundo plano en curso también se traslada cuando envías una sesión al segundo plano en Windows; establece `CLAUDE_DISABLE_ADOPT=1` para detenerlo en su lugar. El grupo `Completed` llena el espacio vertical restante y el encabezado se compacta en terminales de poca altura. Una versión anterior de Claude Code ya no descarta campos de `state.json` de sesiones más nuevas ni oculta esas sesiones de `claude agents`. Adjuntarse a una sesión detenida cambia inmediatamente en lugar de mostrar una pantalla en blanco durante hasta cinco segundos. Un supervisor que no puede aceptar conexiones sale y libera su bloqueo por sí solo. |

1179| v2.1.191 | `claude --bg` con un nombre de `--agent` que no coincide con ninguno de tus subagentes hace fallar el lanzamiento: la sesión sale inmediatamente con un error `--agent '<name>' not found` en lugar de ejecutarse con el agente predeterminado. |1179| v2.1.191 | `claude --bg` con un nombre de `--agent` que no coincide con ninguno de tus subagentes hace fallar el lanzamiento: la sesión sale inmediatamente con un error `--agent '<name>' not found` en lugar de ejecutarse con el agente predeterminado. |

1180| v2.1.174 | Las sesiones en segundo plano ya no heredan variables de endpoint de gateway como `ANTHROPIC_BASE_URL` del shell desde el que se lanzó el supervisor; el supervisor proporciona una instantánea de credenciales nueva a los workers precalentados, lo que corrige errores espurios de `Could not resolve authentication method`. |1180| v2.1.174 | Las sesiones en segundo plano ya no heredan variables de endpoint de gateway como `ANTHROPIC_BASE_URL` del shell desde el que se lanzó el supervisor; el supervisor proporciona una instantánea de credenciales nueva a los workers precalentados, lo que corrige errores espurios de `Could not resolve authentication method`. |

1181| v2.1.172 | `/model` en la entrada de distribución establece una sobrescritura del modelo de distribución con alcance de sesión. |1181| v2.1.172 | `/model` en la entrada de distribución establece una sobrescritura del modelo de distribución con alcance de sesión. |

analytics.md +2 −0

Details

13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Métricas de uso, métricas de contribución con integración de GitHub, tabla de clasificación, exportación de datos | [Detalles](#access-analytics-for-team-and-enterprise) |13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Métricas de uso, métricas de contribución con integración de GitHub, tabla de clasificación, exportación de datos | [Detalles](#access-analytics-for-team-and-enterprise) |

14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Métricas de uso, seguimiento de gastos, información del equipo | [Detalles](#access-analytics-for-api-customers) |14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Métricas de uso, seguimiento de gastos, información del equipo | [Detalles](#access-analytics-for-api-customers) |

15 15 

16Code Review tiene su propio panel. Para ver la actividad de revisión y el gasto, consulta [Ver el uso](/docs/es/code-review-costs#view-usage).

17 

16<h2 id="access-analytics-for-team-and-enterprise">18<h2 id="access-analytics-for-team-and-enterprise">

17 Acceder a análisis para Team y Enterprise19 Acceder a análisis para Team y Enterprise

18</h2>20</h2>

artifacts.md +5 −3

Details

75| La sesión está en [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) | Pregunta antes de la primera publicación de cada artefacto |75| La sesión está en [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode) | Pregunta antes de la primera publicación de cada artefacto |

76| La publicación declara capacidades de tiempo de ejecución para la página, como [llamadas de conector](#pull-live-data-with-mcp-connectors) o [descargas de archivos](#offer-a-file-download) | Pregunta antes de esa publicación |76| La publicación declara capacidades de tiempo de ejecución para la página, como [llamadas de conector](#pull-live-data-with-mcp-connectors) o [descargas de archivos](#offer-a-file-download) | Pregunta antes de esa publicación |

77| Compartiste el artefacto públicamente | Pregunta una vez por conversación antes de cambiarlo |77| Compartiste el artefacto públicamente | Pregunta una vez por conversación antes de cambiarlo |

78| Desactivaste la [obtención de banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching) | Pregunta antes de la primera publicación de cada artefacto |

79| Claude publica en un turno que inició una [tarea programada](/docs/es/scheduled-tasks) ejecutada en tu sesión, en lugar de un prompt que escribiste | Pregunta antes de la primera publicación de cada artefacto |78| Claude publica en un turno que inició una [tarea programada](/docs/es/scheduled-tasks) ejecutada en tu sesión, en lugar de un prompt que escribiste | Pregunta antes de la primera publicación de cada artefacto |

80| Claude no puede leer el archivo sin tu aprobación | Pregunta antes de publicarlo. Una regla de permiso para la herramienta `Artifact` no omite esta solicitud |79| Claude no puede leer el archivo sin tu aprobación | Pregunta antes de publicarlo. Una regla de permiso para la herramienta `Artifact` no omite esta solicitud |

80| En modo [Manual](/docs/es/permission-modes) o `acceptEdits`, Claude hace un pequeño cambio en el archivo de un artefacto que no puede editar sin tu aprobación, como un archivo del proyecto en modo Manual | Pregunta antes de publicar el cambio. Se te pregunta incluso si una regla de permiso cubre la herramienta `Artifact`, porque la edición del archivo necesita tu aprobación |

81 81 

82Claude lee archivos en los [directorios de trabajo](/docs/es/permissions#working-directories) de tu sesión, y en el directorio temporal donde escribe las páginas, sin preguntar. Para permitir que Claude publique desde otra carpeta sin la solicitud, agrega la carpeta como directorio de trabajo con [`--add-dir`](/docs/es/cli-reference#cli-flags) al iniciar o con `/add-dir` durante la sesión.82Para permitir que Claude lea un archivo fuera de tus [directorios de trabajo](/docs/es/permissions#working-directories) sin tu aprobación, agrega su carpeta como directorio de trabajo con [`--add-dir`](/docs/es/cli-reference#cli-flags) al iniciar o con `/add-dir` durante la sesión. Claude ya lee archivos en esos directorios, y en el directorio temporal donde escribe las páginas, sin preguntar.

83 

84Si una solicitud de publicación incluye una oración como `Also makes 1 edit to that file on disk.`, Claude está cambiando el archivo del artefacto y publicándolo en un solo paso. Cuando apruebas la solicitud, Claude Code publica la página y luego escribe el cambio en tu archivo.

83 85 

84<h2 id="update-an-artifact">86<h2 id="update-an-artifact">

85 Actualizar un artefacto87 Actualizar un artefacto


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

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

151* **Propietario o ajuste de red sin confirmar**: cuando Claude Code no puede confirmar quién creó el artefacto, o no puede confirmar el ajuste de red de una sesión en la nube, pregunta, y tu aprobación cubre esa única solicitud.153* **Propietario o ajuste de red sin confirmar**: cuando Claude Code no puede confirmar quién creó el artefacto, o no puede confirmar el ajuste de red de una sesión en la nube, pregunta, y tu aprobación cubre esa única solicitud.

152* **Modo plan, u obtención de feature flags desactivada**: en [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), o si desactivaste la [obtención de feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), Claude Code pregunta antes de que la herramienta Artifact lea un artefacto creado por otra persona de tu organización.154* **Modo plan**: en [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), Claude Code pregunta antes de que la herramienta Artifact lea un artefacto creado por otra persona de tu organización.

153 155 

154Cuando Claude lee el artefacto con WebFetch, las propias [reglas de solicitud de permisos](/docs/es/tools-reference#webfetch-tool-behavior) de WebFetch siguen aplicándose.156Cuando Claude lee el artefacto con WebFetch, las propias [reglas de solicitud de permisos](/docs/es/tools-reference#webfetch-tool-behavior) de WebFetch siguen aplicándose.

155 157 

Details

102Un [subagente](/docs/es/sub-agents) realiza ediciones con las herramientas de edición de archivos de Claude, pero Claude Code normalmente no captura esas ediciones en los checkpoints de su sesión. Si el rewind las restaura depende de cómo se ejecute el subagente:102Un [subagente](/docs/es/sub-agents) realiza ediciones con las herramientas de edición de archivos de Claude, pero Claude Code normalmente no captura esas ediciones en los checkpoints de su sesión. Si el rewind las restaura depende de cómo se ejecute el subagente:

103 103 

104* **Skill forked en primer plano**: un [skill con `context: fork`](/docs/es/skills#run-skills-in-a-subagent) que se ejecuta en primer plano edita su árbol de trabajo durante su propio turno, por lo que el rewind restaura sus ediciones como de costumbre. Establezca `background: false` para ejecutar un fork en primer plano; algunas situaciones, [listadas en la página de skills](/docs/es/skills#run-skills-in-a-subagent), lo ejecutan allí independientemente de la configuración.104* **Skill forked en primer plano**: un [skill con `context: fork`](/docs/es/skills#run-skills-in-a-subagent) que se ejecuta en primer plano edita su árbol de trabajo durante su propio turno, por lo que el rewind restaura sus ediciones como de costumbre. Establezca `background: false` para ejecutar un fork en primer plano; algunas situaciones, [listadas en la página de skills](/docs/es/skills#run-skills-in-a-subagent), lo ejecutan allí independientemente de la configuración.

105* **Cualquier otro subagente**: el rewind no restaura las ediciones. Use git para revertirlas. Esto incluye un skill forked que se ejecuta en segundo plano, el predeterminado, y una ejecución de [`/code-review --fix`](/docs/es/code-review) en segundo plano.105* **Cualquier otro subagente**: el rewind solo restaura los archivos que Claude ya había editado en tu conversación. Las ediciones del subagente en otros archivos se mantienen, así que usa git para revertirlas. Esto incluye un skill forked que se ejecuta en segundo plano, el predeterminado, y una ejecución de [`/code-review --fix`](/docs/es/code-review-local) en segundo plano.

106 106 

107<h3 id="external-changes-not-tracked">107<h3 id="external-changes-not-tracked">

108 Los cambios externos no se rastrean108 Los cambios externos no se rastrean

Details

64Consulta [Conectar desde tu terminal](/docs/es/web-quickstart#connect-from-your-terminal) para el tutorial de `/web-setup`, incluyendo qué almacena `/web-setup` y cómo eliminarlo.64Consulta [Conectar desde tu terminal](/docs/es/web-quickstart#connect-from-your-terminal) para el tutorial de `/web-setup`, incluyendo qué almacena `/web-setup` y cómo eliminarlo.

65 65 

66<Note>66<Note>

67 Las organizaciones con [Retención de datos cero](/docs/es/zero-data-retention) habilitada, o con la [configuración HIPAA](/docs/es/hipaa-setup) aplicada, no pueden usar `/web-setup` u otras características de sesión en la nube.67 Las organizaciones con [Retención de datos cero](/docs/es/zero-data-retention) habilitada, o con la [configuración HIPAA](/docs/es/hipaa-setup) aplicada, no pueden usar `/web-setup` u otras características de sesión en la nube. Las organizaciones que usan [claves de cifrado administradas por el cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) tampoco pueden iniciar sesiones en la nube.

68</Note>68</Note>

69 69 

70<h3 id="quick-setup-for-team-and-enterprise">70<h3 id="quick-setup-for-team-and-enterprise">

Details

559 559 

560El `matcher` limita el hook a los eventos `startup` y `resume`, y `$CLAUDE_PROJECT_DIR` se resuelve a la raíz del repositorio, por lo que el hook encuentra el script independientemente del directorio de trabajo de la sesión.560El `matcher` limita el hook a los eventos `startup` y `resume`, y `$CLAUDE_PROJECT_DIR` se resuelve a la raíz del repositorio, por lo que el hook encuentra el script independientemente del directorio de trabajo de la sesión.

561 561 

562A continuación, cree el script en `scripts/install_pkgs.sh`. Sale inmediatamente fuera de la nube, luego instala sus dependencias:562A continuación, crea el script en `scripts/install_pkgs.sh`. Sale inmediatamente fuera de la nube y luego instala tus dependencias. Omite `npm install` mientras `package.json`, `package-lock.json` y el propio script no hayan cambiado desde la última instalación exitosa:

563 563 

564```bash theme={null}564```bash theme={null}

565#!/bin/bash565#!/bin/bash


568 exit 0568 exit 0

569fi569fi

570 570 

571npm install571cd "$CLAUDE_PROJECT_DIR" || exit 1

572hashes=node_modules/.install_pkgs.sha256

573 

574if ! sha256sum --check --status "$hashes" 2>/dev/null; then

575 # Delete the old hashes first, so a failed install runs again next time

576 rm -f "$hashes"

577 if npm install; then

578 sha256sum scripts/install_pkgs.sh package.json package-lock.json > "$hashes" || rm -f "$hashes"

579 fi

580fi

581 

582# pip skips requirements that are already satisfied

572pip install -r requirements.txt583pip install -r requirements.txt

573exit 0584exit 0

574```585```

575 586 

576La verificación `CLAUDE_CODE_REMOTE` es lo que limita la instalación a sesiones en la nube: la VM de la sesión lleva esa variable como `true`, nunca es `true` localmente, por lo que en su portátil el script sale antes de instalar cualquier cosa.587La verificación `CLAUDE_CODE_REMOTE` es lo que limita la instalación a sesiones en la nube: la VM de la sesión lleva esa variable como `true`, nunca es `true` localmente, por lo que en su portátil el script sale antes de instalar cualquier cosa.

577 588 

578Juntos, los dos archivos dan a cada sesión en la nube un `npm install` y `pip install` nuevo al inicio mientras dejan las sesiones locales sin tocar.589Para confirmar que `npm install` se completó correctamente, inicia una sesión en la nube y pídele a Claude que muestre `node_modules/.install_pkgs.sha256`. El archivo enumera un hash para cada uno de los tres archivos. Si el archivo no existe, pídele a Claude que ejecute `npm install` y que informe el error.

590 

591<Note>

592 Si `npm install` lee otros archivos, como el `package.json` de un espacio de trabajo, un `.npmrc` o las entradas de tu script `postinstall`, agrégalos al comando `sha256sum` que guarda los hashes. De lo contrario, conservarás los paquetes antiguos después de que cambie uno de esos archivos.

593</Note>

579 594 

580<h4 id="limitations-in-cloud-sessions">595<h4 id="limitations-in-cloud-sessions">

581 Limitaciones en sesiones en la nube596 Limitaciones en sesiones en la nube


587* **Sin alcance solo en la nube**: los hooks se ejecutan en sesiones locales y en la nube. Para omitir la ejecución local, salga temprano a menos que la variable de entorno `CLAUDE_CODE_REMOTE` sea `true`, de la manera que lo hace el [script de instalación de dependencias](#install-dependencies-with-a-sessionstart-hook).602* **Sin alcance solo en la nube**: los hooks se ejecutan en sesiones locales y en la nube. Para omitir la ejecución local, salga temprano a menos que la variable de entorno `CLAUDE_CODE_REMOTE` sea `true`, de la manera que lo hace el [script de instalación de dependencias](#install-dependencies-with-a-sessionstart-hook).

588* **Requiere acceso a la red**: los comandos de instalación necesitan alcanzar registros de paquetes. Si su entorno usa acceso a la red **None**, estos hooks fallan. La [lista permitida predeterminada](#default-allowed-domains) bajo **Trusted** cubre npm, PyPI, RubyGems y crates.io.603* **Requiere acceso a la red**: los comandos de instalación necesitan alcanzar registros de paquetes. Si su entorno usa acceso a la red **None**, estos hooks fallan. La [lista permitida predeterminada](#default-allowed-domains) bajo **Trusted** cubre npm, PyPI, RubyGems y crates.io.

589* **Compatibilidad con proxy**: en entornos alojados por Anthropic, todo el tráfico saliente pasa por un [proxy de seguridad](#security-proxy), y algunos administradores de paquetes no funcionan correctamente con él; Bun es un ejemplo conocido. En un [entorno autohospedado](/docs/es/self-hosted-environments-deploy#default-deny-egress), el tráfico saliente va a través de su propio límite de red en su lugar.604* **Compatibilidad con proxy**: en entornos alojados por Anthropic, todo el tráfico saliente pasa por un [proxy de seguridad](#security-proxy), y algunos administradores de paquetes no funcionan correctamente con él; Bun es un ejemplo conocido. En un [entorno autohospedado](/docs/es/self-hosted-environments-deploy#default-deny-egress), el tráfico saliente va a través de su propio límite de red en su lugar.

590* **Agrega latencia de inicio**: los hooks se ejecutan cada vez que comienza o se reanuda una sesión, a diferencia de los scripts de configuración que se benefician del [almacenamiento en caché del entorno](#environment-caching). Mantenga los scripts de instalación rápidos verificando si las dependencias ya están presentes antes de reinstalar.605* **Agrega latencia de inicio**: los hooks se ejecutan cada vez que comienza o se reanuda una sesión, a diferencia de los scripts de configuración, que se benefician del [almacenamiento en caché del entorno](#environment-caching). Mantén rápidos los scripts de instalación omitiendo el trabajo que ya está hecho, como lo hace el [script de instalación de dependencias](#install-dependencies-with-a-sessionstart-hook).

591 606 

592Para personalizar la imagen base, use un script de configuración para instalar lo que necesita encima de la [imagen proporcionada](#installed-tools), o ejecute su propia imagen como un contenedor junto a Claude con `docker compose`. Reemplazar la imagen base completamente aún no es compatible.607Para personalizar la imagen base, use un script de configuración para instalar lo que necesita encima de la [imagen proporcionada](#installed-tools), o ejecute su propia imagen como un contenedor junto a Claude con `docker compose`. Reemplazar la imagen base completamente aún no es compatible.

593 608 

code-review.md +86 −388

Details

4 4 

5# Code Review5# Code Review

6 6 

7> Configure revisiones automatizadas de PR que detecten errores lógicos, vulnerabilidades de seguridad y regresiones mediante análisis multiagente de su base de código completa7> Detecta errores en pull requests de GitHub con Code Review: Claude revisa cada cambio, verifica sus hallazgos y comenta en línea. Para los planes Team y Enterprise

8 8 

9<Note>9Con Code Review, Claude revisa los pull requests de tus repositorios de GitHub. Varios agentes leen cada cambio junto con el código circundante y buscan problemas como errores lógicos, vulnerabilidades de seguridad o casos límite rotos. Un paso de verificación contrasta los hallazgos con el código antes de reportarlos.

10 Code Review está en vista previa de investigación, disponible para suscripciones de [Team y Enterprise](https://claude.ai/admin-settings/claude-code). No está disponible para organizaciones con [Zero Data Retention](/docs/es/zero-data-retention) habilitado o con la [configuración HIPAA](/docs/es/hipaa-setup) aplicada, y no está cubierto por el BAA de Anthropic. En otros planes, aún puedes [revisar un diff localmente](#review-a-diff-locally) con el comando `/code-review`.

11</Note>

12 

13Code Review analiza sus solicitudes de extracción de GitHub y publica hallazgos como comentarios en línea en las líneas de código donde encontró problemas. Una flota de agentes especializados examina los cambios de código en el contexto de su base de código completa, buscando errores lógicos, vulnerabilidades de seguridad, casos límite rotos y regresiones sutiles.

14 

15Los hallazgos se etiquetan por severidad y no aprueban ni bloquean su PR, por lo que los flujos de trabajo de revisión existentes permanecen intactos. Puede ajustar lo que Claude marca agregando un archivo `CLAUDE.md` o `REVIEW.md` a su repositorio.

16 

17Para ejecutar Claude en su propia infraestructura de CI en lugar de este servicio administrado, consulte [GitHub Actions](/docs/es/github-actions) o [GitLab CI/CD](/docs/es/gitlab-ci-cd). Para repositorios en una instancia de GitHub autohospedada, consulte [GitHub Enterprise Server](/docs/es/github-enterprise-server).

18 10 

19Esta página cubre:11Los hallazgos llegan como comentarios en línea en las líneas afectadas, clasificados por [severidad](/docs/es/code-review-pull-requests#severity-levels), con un resumen y una ejecución de verificación en el pull request. Una revisión nunca aprueba ni bloquea el pull request, así que la decisión de fusionar sigue siendo de tu equipo.

20 12 

21* [Cómo funcionan las revisiones](#how-reviews-work)13<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=0351c96df9efa3105172eb00a672f130" className="dark:hidden" alt="Diagrama de una revisión en cuatro etapas. Un pull request en GitHub pasa a varios agentes que buscan en paralelo en la infraestructura de Anthropic. Un paso de verificación descarta los falsos positivos, los hallazgos restantes se desduplican y se clasifican por severidad, y la revisión publica comentarios en línea, un resumen y una ejecución de verificación de vuelta en GitHub." width="760" height="300" data-path="images/code-review-pipeline.svg" />

22* [Configuración](#set-up-code-review)

23* [Disparar revisiones manualmente](#manually-trigger-reviews) con `@claude review` y `@claude review always`

24* [Personalizar revisiones](#customize-reviews) con `CLAUDE.md` y `REVIEW.md`

25* [Precios](#pricing)

26* [Solución de problemas](#troubleshooting) ejecuciones fallidas y comentarios faltantes

27* [Revisar un diff localmente](#review-a-diff-locally) con el comando `/code-review`

28 

29<h2 id="how-reviews-work">

30 Cómo funcionan las revisiones

31</h2>

32 14 

33Una vez que un administrador [habilita Code Review](#set-up-code-review) para su organización, las revisiones se activan cuando se abre un PR, en cada push, o cuando se solicita manualmente, según el comportamiento configurado del repositorio. Comentar `@claude review` [inicia una revisión en un PR](#manually-trigger-reviews) en cualquier modo.15<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline-dark.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=9cf26bde98f4e999d0d9ff5bf5bdff40" className="hidden dark:block" alt="Diagrama de una revisión en cuatro etapas. Un pull request en GitHub pasa a varios agentes que buscan en paralelo en la infraestructura de Anthropic. Un paso de verificación descarta los falsos positivos, los hallazgos restantes se desduplican y se clasifican por severidad, y la revisión publica comentarios en línea, un resumen y una ejecución de verificación de vuelta en GitHub." width="760" height="300" data-path="images/code-review-pipeline-dark.svg" />

34 

35Cuando se ejecuta una revisión, múltiples agentes analizan el diff y el código circundante en paralelo en la infraestructura de Anthropic. Cada agente busca una clase diferente de problema, luego un paso de verificación verifica los candidatos contra el comportamiento real del código para filtrar falsos positivos. Los resultados se desduplican, se clasifican por severidad y se publican como comentarios en línea en las líneas específicas donde se encontraron problemas, con un resumen en el cuerpo de la revisión. Si no se encuentran problemas, Code Review actualiza la ejecución de verificación de GitHub para mostrar que no se detectaron problemas. Claude también puede publicar un breve comentario de confirmación en el PR.

36 

37Las revisiones se escalan en costo con el tamaño y la complejidad del PR, completándose en un promedio de 20 minutos. Los administradores pueden monitorear la actividad de revisión y el gasto a través del [panel de análisis](#view-usage).

38 

39<h3 id="severity-levels">

40 Niveles de severidad

41</h3>

42 

43Cada hallazgo se etiqueta con un nivel de severidad:

44 

45| Marcador | Severidad | Significado |

46| :- | :- | :- |

47| 🔴 | Importante | Un error que debe corregirse antes de fusionar |

48| 🟡 | Nit | Un problema menor, vale la pena corregir pero no bloqueante |

49| 🟣 | Preexistente | Un error que existe en la base de código pero no fue introducido por este PR |

50 

51Los hallazgos incluyen una sección contraíble **Por qué se marcó esto** que puede expandir para leer por qué Claude marcó el problema y cómo verificó el problema.

52 

53<h3 id="rate-and-reply-to-findings">

54 Calificar y responder a hallazgos

55</h3>

56 

57Cada comentario de revisión de Claude llega con 👍 y 👎 ya adjuntos para que ambos botones aparezcan en la interfaz de usuario de GitHub para calificación de un clic. Haga clic en 👍 si el hallazgo fue útil o 👎 si fue incorrecto o ruidoso. Anthropic recopila conteos de reacciones después de que se fusiona el PR y los utiliza para ajustar el revisor. Las reacciones no activan una re-revisión ni cambian nada en el PR.

58 

59Responder a un comentario en línea no solicita a Claude que responda o actualice el PR. Para actuar sobre un hallazgo, corrija el código y haga push. Si el PR está suscrito a revisiones activadas por push, la siguiente ejecución resuelve el hilo cuando se corrige el problema. Para solicitar una revisión nueva sin hacer push, comente `@claude review` como un [comentario de PR de nivel superior](#manually-trigger-reviews).

60 

61Para descartar un hallazgo sin un cambio de código, resuelva su hilo; responder no lo descarta.

62 

63<h3 id="check-run-output">

64 Salida de ejecución de verificación

65</h3>

66 

67Más allá de los comentarios de revisión en línea, cada revisión completa la ejecución de verificación **Claude Code Review** que aparece junto a sus verificaciones de CI. Expanda su enlace **Details** para ver un resumen de cada hallazgo en un solo lugar, ordenado por severidad:

68 

69| Severidad | Archivo:Línea | Problema |

70| - | - | - |

71| 🔴 Importante | `src/auth/session.ts:142` | La actualización de token corre una carrera con el cierre de sesión, dejando sesiones obsoletas activas |

72| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` devuelve silenciosamente 0 en entrada malformada |

73 

74Cada hallazgo también aparece como una anotación en la pestaña **Files changed**, marcado directamente en las líneas de diff relevantes. Los hallazgos importantes se representan con un marcador rojo, los nits con una advertencia amarilla y los errores preexistentes con un aviso gris. Las anotaciones y la tabla de severidad se escriben en la ejecución de verificación independientemente de los comentarios de revisión en línea, por lo que permanecen disponibles incluso si GitHub rechaza un comentario en línea en una línea que se movió.

75 

76La ejecución de verificación siempre se completa con una conclusión neutral para que nunca bloquee la fusión a través de reglas de protección de rama. Si desea bloquear fusiones en hallazgos de Code Review, lea el desglose de severidad de la salida de ejecución de verificación en su propio CI. La última línea del texto de Details es un comentario legible por máquina que su flujo de trabajo puede analizar con `gh` y jq. Para encontrar el ID de ejecución de verificación, enumere las ejecuciones de verificación del commit con `gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'` y tome el `id` de la ejecución **Claude Code Review**. Reemplace `OWNER`, `REPO` y `CHECK_RUN_ID` con el propietario del repositorio, el nombre del repositorio y ese ID:

77 

78```bash theme={null}

79gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

80 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

81```

82 

83Esto devuelve un objeto JSON con conteos por severidad, por ejemplo `{"normal": 2, "nit": 1, "pre_existing": 0}`. La clave `normal` contiene el conteo de hallazgos Importantes; un valor distinto de cero significa que Claude encontró al menos un error que vale la pena corregir antes de fusionar.

84 

85<h3 id="what-code-review-checks">

86 Qué verifica Code Review

87</h3>

88 

89Por defecto, Code Review se enfoca en la corrección: errores que romperían la producción, no preferencias de formato o cobertura de pruebas faltante. Puede expandir lo que verifica [agregando archivos de orientación](#customize-reviews) a su repositorio.

90 

91<h2 id="set-up-code-review">

92 Configurar Code Review

93</h2>

94 

95Un propietario habilita Code Review una vez para la organización y selecciona qué repositorios incluir.

96 

97<Steps>

98 <Step title="Abrir configuración de administrador de Claude Code">

99 Vaya a [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) y encuentre la sección Code Review. Necesita el rol de propietario o propietario principal en su organización de Claude y permiso para instalar GitHub Apps en su organización de GitHub.

100 </Step>

101 

102 <Step title="Iniciar configuración">

103 Haga clic en **Setup**. Esto inicia el flujo de instalación de GitHub App.

104 </Step>

105 

106 <Step title="Instalar la Claude GitHub App">

107 Siga las indicaciones para instalar la Claude GitHub App: seleccione la organización de GitHub que posee los repositorios que desea revisar, elija a qué repositorios puede acceder la aplicación y apruebe los permisos solicitados.

108 

109 Para revisar una solicitud de extracción, Claude lee el contenido de su repositorio a través del acceso de lectura de la aplicación y publica comentarios y la [ejecución de verificación](#check-run-output) a través de su acceso de escritura a solicitudes de extracción y verificaciones. Durante la instalación, otorga un conjunto de permisos más amplio compartido por otras características de Claude, como [GitHub Actions](/docs/es/github-actions); consulte [Permisos de GitHub App](/docs/es/github-actions#github-app-permissions) para obtener la lista completa.

110 </Step>

111 

112 <Step title="Seleccionar repositorios">

113 Elija qué repositorios habilitar para Code Review. Si no ve un repositorio, asegúrese de haber dado a la Claude GitHub App acceso a él durante la instalación. Puede agregar más repositorios más adelante.

114 </Step>

115 

116 <Step title="Establecer disparadores de revisión por repositorio">

117 Después de que se complete la configuración, la sección Code Review muestra sus repositorios en una tabla. Para cada repositorio, use el menú desplegable **Review Behavior** para elegir cuándo se ejecutan las revisiones:

118 

119 * **Once after PR creation**: la revisión se ejecuta una vez cuando se abre un PR o se marca como listo para revisión

120 * **After every push**: la revisión se ejecuta en cada push a la rama del PR, detectando nuevos problemas a medida que el PR evoluciona y resolviendo automáticamente los hilos cuando corrige problemas marcados

121 * **Manual**: abrir o hacer push a un PR no inicia una revisión; comente [`@claude review`](#manually-trigger-reviews) para solicitar una, o `@claude review always` para también suscribir el PR a revisiones en push posteriores

122 

123 Sea cual sea la opción que elija, Claude revisa una [solicitud de extracción de una bifurcación](#review-pull-requests-from-forks) solo cuando alguien comenta `@claude review` en ella.

124 

125 Revisar en cada push ejecuta la mayoría de revisiones y cuesta más. El modo manual es útil para repositorios de alto tráfico donde desea optar por revisión en PR específicos, o para comenzar a revisar sus PR solo cuando estén listos.

126 </Step>

127</Steps>

128 

129La tabla de repositorios también muestra el costo promedio por revisión para cada repositorio basado en la actividad reciente. Use el menú de acciones de fila para activar o desactivar Code Review por repositorio, o para eliminar un repositorio por completo.

130 

131Para verificar la configuración, abra un PR de prueba. Si eligió un disparador automático, aparece una ejecución de verificación llamada **Claude Code Review** dentro de unos minutos. Si eligió Manual, comente `@claude review` en el PR para iniciar la primera revisión. Si no aparece ninguna ejecución de verificación, confirme que el repositorio esté listado en su configuración de administrador y que la Claude GitHub App tenga acceso a él.

132 

133<h2 id="manually-trigger-reviews">

134 Disparar revisiones manualmente

135</h2>

136 

137Los comandos de comentario inician una revisión bajo demanda. Funcionan independientemente del disparador configurado del repositorio, por lo que puede usarlos para optar por PR específicos en revisión en modo Manual o para obtener una re-revisión inmediata en otros modos.

138 

139| Comando | Lo que hace |

140| :- | :- |

141| `@claude review` | Inicia una única revisión sin suscribir el PR a futuras inserciones |

142| `@claude review always` | Inicia una revisión y suscribe el PR a revisiones activadas por push en adelante |

143| `@claude review once` | Lo mismo que `@claude review`: inicia una única revisión sin suscribir |

144 

145Use `@claude review always` cuando desee que cada inserción posterior al PR inicie una revisión nueva, como en un PR de alta prioridad en un repositorio configurado en modo Manual. Dado que el comando simple no suscribe el PR, puede solicitar una segunda opinión única sin cambiar si las inserciones posteriores activan revisiones.

146 16 

147<Note>17<Note>

148 Antes de una actualización de julio de 2026, `@claude review` suscribía el PR a revisiones activadas por push. Si dependía de ese comportamiento, comente `@claude review always` en su lugar. `@claude review once` sigue funcionando y se comporta igual que el comando simple.18 Code Review usa IA para revisar código y puede pasar por alto errores, vulnerabilidades de seguridad u otros problemas. Una revisión sin hallazgos no significa que tu código esté libre de errores ni que sea seguro.

149</Note>19</Note>

150 20 

151Para que cualquiera de estos comandos active una revisión:21<span id="review-a-diff-locally" />

152 

153* Publíquelo como un comentario de PR de nivel superior, no un comentario en línea en una línea de diff

154* Ponga el comando al inicio del comentario, con `once` o `always` en la misma línea que el resto del comando

155* Debe tener permiso de escritura, mantenimiento o administrador en el repositorio

156* El PR debe estar abierto

157 

158A diferencia de los disparadores automáticos, los disparadores manuales se ejecutan en PR de borrador, ya que una solicitud explícita señala que desea la revisión ahora independientemente del estado de borrador.

159 

160Si una revisión ya se está ejecutando en ese PR, la solicitud se pone en cola hasta que se complete la revisión en progreso. Puede monitorear el progreso a través de la ejecución de verificación en el PR.

161 

162<h3 id="review-pull-requests-from-forks">

163 Revisar solicitudes de extracción desde bifurcaciones

164</h3>

165 

166Claude no revisa una solicitud de extracción desde una bifurcación automáticamente, independientemente de la configuración de **Comportamiento de revisión** del repositorio. Para iniciar una, comente `@claude review` en la solicitud de extracción. Los [requisitos para comandos de comentario](#manually-trigger-reviews) aún se aplican, y el acceso de escritura que necesita es al repositorio base, no a la bifurcación.

167 22 

168Para obtener otra revisión de una solicitud de extracción de bifurcación, publique un nuevo comentario `@claude review`. `@claude review always` también funciona, pero no suscribe la solicitud de extracción a revisiones en inserciones posteriores. Nada más que un comando de comentario inicia una revisión en una solicitud de extracción de bifurcación:23Para activar Code Review, un Owner de tu organización de Claude sigue [Configurar Code Review](/docs/es/code-review-setup). Claude también puede revisar código sin este servicio. Ejecuta [`/code-review`](/docs/es/code-review-local) en tu sesión de Claude Code en cualquier plan, o [compara todas las opciones](#compare-ways-to-get-a-review).

169 24 

170* Hacer clic en **Re-ejecutar** en la ejecución de verificación no inicia una revisión25<h2 id="availability">

171* Insertar nuevos commits no inicia una revisión, incluso en un repositorio configurado en **Después de cada push**26 Disponibilidad

172 

173<h2 id="customize-reviews">

174 Personalizar revisiones

175</h2>27</h2>

176 28 

177Code Review lee dos archivos de su repositorio para guiar lo que marca. Difieren en cuán fuertemente influyen en la revisión:29Comprueba que tu organización cumpla los requisitos antes de configurar Code Review:

178 

179* **`CLAUDE.md`**: instrucciones de proyecto compartidas que Claude Code utiliza para todas las tareas, no solo revisiones. Code Review lo lee como contexto de proyecto e marca las violaciones recién introducidas como nits.

180* **`REVIEW.md`**: instrucciones solo de revisión, proporcionadas a los agentes que encuentran y verifican hallazgos y consultadas por los agentes que clasifican y reportan hallazgos. Úselo para indicar qué desea que se marque su equipo, con qué severidad y cómo se reportan los hallazgos.

181 

182<h3 id="claude-md">

183 CLAUDE.md

184</h3>

185 

186Code Review lee sus archivos `CLAUDE.md` del repositorio y trata las violaciones recién introducidas como hallazgos de [nivel nit](#severity-levels). Esto funciona bidireccionalamente: si su PR cambia el código de una manera que hace que una declaración `CLAUDE.md` esté desactualizada, Claude marca que los documentos necesitan actualización también.

187 

188Claude lee archivos `CLAUDE.md` en cada nivel de su jerarquía de directorios, por lo que las reglas en el `CLAUDE.md` de un subdirectorio se aplican solo a archivos bajo esa ruta. Consulte la [documentación de memoria](/docs/es/memory) para obtener más información sobre cómo funciona `CLAUDE.md`.

189 30 

190Para orientación específica de revisión que no desea aplicar a sesiones generales de Claude Code, use [`REVIEW.md`](#review-md) en su lugar.31* **Planes**: [Team y Enterprise](/docs/es/feature-availability)

191 32* **Hosts de código**: repositorios alojados en GitHub, incluidos [GitHub Enterprise Server](/docs/es/github-enterprise-server) y GitHub Enterprise Cloud con residencia de datos. Para la residencia de datos, pide a un Owner que siga la [configuración de administración de GitHub Enterprise Server](/docs/es/github-enterprise-server#admin-setup) e introduzca el nombre de host `ghe.com` de tu empresa.

192<h3 id="review-md">33* **Retención de datos**: Code Review no está disponible para organizaciones con [Zero Data Retention](/docs/es/zero-data-retention) habilitado o con la [configuración HIPAA](/docs/es/hipaa-setup) aplicada, y no está cubierto por el Business Associate Agreement (BAA) de Anthropic.

193 REVIEW\.md34* **Claves de cifrado**: Code Review aún no está disponible para organizaciones que usan claves de cifrado administradas por el cliente (CMEK).

194</h3>35* **Proveedores de nube**: necesitas una organización de Claude en uno de estos planes incluso si tus desarrolladores usan Claude Code a través de Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry

195 36 

196`REVIEW.md` es un archivo en la raíz de su repositorio que personaliza Code Review para su repositorio. Los agentes en la canalización de revisión que encuentran y verifican hallazgos reciben su contenido como las instrucciones de revisión de su repositorio, junto con la orientación de revisión predeterminada de Code Review, y los agentes que clasifican y reportan hallazgos la consultan antes de establecer la severidad y escribir la revisión.37<h2 id="set-up-and-use-code-review">

197 38 Configurar y usar Code Review

198Ponga las reglas que desea aplicar directamente en `REVIEW.md`.

199 

200<h4 id="what-you-can-tune">

201 Qué puede ajustar

202</h4>

203 

204`REVIEW.md` es markdown de forma libre, por lo que cualquier cosa que pueda expresar como una instrucción de revisión está en el alcance. Los patrones a continuación tienen el mayor impacto en la práctica.

205 

206**Severidad**: redefina qué significa 🔴 Importante para su repositorio. La calibración predeterminada se dirige al código de producción; un repositorio de documentos, un repositorio de configuración, o un prototipo podría querer una definición mucho más estrecha. Indique explícitamente qué clases de hallazgo son Importantes y cuáles son Nit como máximo. También puede escalar en la otra dirección, por ejemplo tratando cualquier violación de `CLAUDE.md` como Importante en lugar del nit predeterminado.

207 

208**Volumen de nit**: limite cuántos comentarios 🟡 Nit publica una única revisión. La prosa y los archivos de configuración pueden pulirse para siempre. Un límite como "reportar como máximo cinco nits, mencionar el resto como un conteo en el resumen" mantiene las revisiones accionables.

209 

210**Reglas de omisión**: enumere rutas, patrones de rama y categorías de hallazgo donde Claude no debe publicar hallazgos. Los candidatos comunes son código generado, archivos de bloqueo, dependencias vendidas y ramas creadas por máquinas, junto con cualquier cosa que su CI ya aplique como linting o verificación ortográfica. Para rutas que justifiquen alguna revisión pero no escrutinio completo, establezca una barra más alta en lugar de omitir completamente: "en `scripts/`, solo reportar si está cerca de cierto y es severo."

211 

212**Verificaciones específicas del repositorio**: agregue reglas que desea marcar en cada PR, como "las nuevas rutas de API deben tener una prueba de integración." Porque `REVIEW.md` llega a cada agente de hallazgo y verificación directamente, estos se aterrizan más confiablemente que las mismas reglas en un `CLAUDE.md` largo.

213 

214**Barra de verificación**: requiera evidencia antes de que se publique una clase de hallazgo. Por ejemplo, "las afirmaciones de comportamiento necesitan una cita `file:line` en la fuente, no una inferencia de nombres" reduce falsos positivos que de otro modo costarían al autor un viaje de ida y vuelta.

215 

216**Convergencia de re-revisión**: dígale a Claude cómo comportarse cuando un PR ya ha sido revisado. Una regla como "después de la primera revisión, suprima nits nuevos y publique hallazgos Importantes solo" detiene una corrección de una línea de alcanzar la ronda siete solo por estilo.

217 

218**Forma de resumen**: pida que el cuerpo de revisión se abra con un conteo de una línea como `2 factual, 4 style`, y que comience con "no hay problemas factuales" cuando ese sea el caso. El autor quiere saber la forma del trabajo antes de los detalles.

219 

220<h4 id="example">

221 Ejemplo

222</h4>

223 

224Este `REVIEW.md` recalibra la severidad para un servicio backend, limita nits, omite archivos generados y agrega verificaciones específicas del repositorio.

225 

226```markdown theme={null}

227# Instrucciones de revisión

228 

229## Qué significa Importante aquí

230 

231Reserve Importante para hallazgos que romperían el comportamiento, filtrarían datos,

232o bloquearían un retroceso: lógica incorrecta, consultas de base de datos sin alcance, PII

233en registros o mensajes de error, y migraciones que no son compatibles hacia atrás.

234El estilo, nombres y sugerencias de refactorización son Nit como máximo.

235 

236## Limitar los nits

237 

238Reportar como máximo cinco Nits por revisión. Si encontró más, diga "más N

239elementos similares" en el resumen en lugar de publicarlos en línea. Si

240todo lo que encontró es un Nit, comience el resumen con "Sin problemas bloqueantes."

241 

242## No reportar

243 

244- Cualquier cosa que CI ya aplique: lint, formato, errores de tipo

245- Archivos generados bajo `src/gen/` y cualquier archivo `*.lock`

246- Código solo de prueba que intencionalmente viola reglas de producción

247 

248## Siempre verificar

249 

250- Las nuevas rutas de API tienen una prueba de integración

251- Las líneas de registro no incluyen direcciones de correo electrónico, IDs de usuario o cuerpos de solicitud

252- Las consultas de base de datos están limitadas al inquilino del llamador

253```

254 

255<h4 id="keep-it-focused">

256 Mantenerlo enfocado

257</h4>

258 

259La longitud tiene un costo: un `REVIEW.md` largo diluye las reglas que más importan. Manténgalo en instrucciones que cambien el comportamiento de revisión, y deje el contexto general del proyecto en `CLAUDE.md`.

260 

261<h2 id="view-usage">

262 Ver uso

263</h2>39</h2>

264 40 

265Vaya a [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) para ver la actividad de Code Review en toda su organización. El panel muestra:41<span id="set-up-code-review" />

266 

267| Sección | Lo que muestra |

268| :- | :- |

269| PRs reviewed | Conteo diario de solicitudes de extracción revisadas durante el rango de tiempo seleccionado |

270| Code Review cost | Gasto en Code Review en lo que va del mes |

271| Feedback | Conteo de comentarios de revisión que se resolvieron automáticamente porque un desarrollador abordó el problema |

272| Repository breakdown | Conteos por repositorio de PR revisados, comentarios resueltos y ejecuciones de revisión, con costo estimado y una vista por PR |

273 

274La tarjeta Code Review cost muestra un monto solo cuando está seleccionado el mes en curso. Las cifras de costo en analytics pueden diferir de tu factura. Los costos de Repository breakdown se estiman a precio de lista, antes de cualquier descuento o crédito, y cubren solo las revisiones que Claude publicó en un pull request. Para un gasto preciso según la factura, consulta tu factura de Anthropic.

275 

276<h2 id="pricing">

277 Precios

278</h2>

279 

280Code Review se factura según el uso de tokens. Cada revisión promedia \$15-25 en costo, escalando con el tamaño del PR, la complejidad de la base de código y cuántos problemas requieren verificación. El uso de Code Review se factura por separado a través de [créditos de uso](https://support.claude.com/es/articles/12429409-extra-usage-for-paid-claude-plans) y no cuenta contra el uso incluido de su plan.

281 

282El disparador de revisión que elija afecta el costo total:

283 

284* **Once after PR creation**: se ejecuta una vez por PR

285* **After every push**: se ejecuta en cada push, multiplicando el costo por el número de push

286* **Manual**: sin revisiones en PR abiertos o push, por lo que el costo se acumula solo de las revisiones que alguien solicita

287 

288En modo Once after PR creation o Manual, comentar `@claude review always` [opta el PR en revisiones activadas por push](#manually-trigger-reviews), por lo que se acumula costo adicional por push después de ese comentario. En modo After every push, los push ya activan revisiones, por lo que la suscripción no cambia el costo por push. Comentar `@claude review` ejecuta una única revisión sin suscribirse a push futuros. Claude revisa una [solicitud de extracción desde un fork](#review-pull-requests-from-forks) solo cuando alguien comenta `@claude review`, por lo que una solicitud de extracción de fork nunca acumula costo por push en ningún modo.

289 42 

290Los costos aparecen en su factura de Anthropic independientemente de si su organización usa Amazon Bedrock o Google Cloud's Agent Platform para otras características de Claude Code. Para establecer un límite de gasto mensual para Code Review, vaya a [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) y configure el límite para el servicio Claude Code Review.43<span id="pricing" />

291 44 

292Para monitorear el gasto, usa el [panel de analytics](#view-usage).45<span id="manually-trigger-reviews" />

293 46 

294<h2 id="troubleshooting">47<span id="customize-reviews" />

295 Solución de problemas

296</h2>

297 

298Las ejecuciones de revisión son de mejor esfuerzo, y una ejecución fallida nunca bloquea su PR. Code Review reintenta algunas revisiones interrumpidas por su cuenta. Esta sección cubre cómo ejecutar una revisión nuevamente usted mismo y dónde buscar cuando la ejecución de verificación reporta problemas que no puede encontrar.

299 

300<h3 id="retrigger-a-failed-or-timed-out-review">

301 Reactivar una revisión fallida o agotada por tiempo

302</h3>

303 48 

304Cuando una revisión falla o excede su límite de tiempo, la ejecución de verificación se completa con un título como **Code review failed** o **Code review timed out**. La conclusión sigue siendo neutral, por lo que nada bloquea su fusión. A menos que el resumen de la ejecución de verificación indique que una nueva revisión del commit ha sido puesta en cola automáticamente, ejecute la revisión nuevamente usted mismo.49<span id="troubleshooting" />

305 50 

306Para ejecutar la revisión nuevamente, comente `@claude review` en el PR. Esto inicia una revisión nueva sin suscribir el PR a push futuros. Si el PR no es [de una bifurcación](#review-pull-requests-from-forks), puede hacer clic en **Re-run** en la verificación **Claude Code Review** en la pestaña Checks de GitHub. Una reejecución también inicia una revisión nueva sin suscribir el PR.51Elige la página según lo que necesites hacer:

307 52 

308<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">53<CardGroup cols={2}>

309 La revisión no se ejecutó y el PR muestra un mensaje de presupuesto54 <Card title="Configurar Code Review" icon="toggle-on" href="/docs/es/code-review-setup">

310</h3>55 Revisa los requisitos, instala la Claude GitHub App y elige los repositorios, un nivel de revisión y cuándo se ejecutan las revisiones

311 56 </Card>

312Cuando se alcanza el límite de gasto mensual de tu organización para Code Review o se agota su saldo de créditos de uso, Code Review omite la revisión y publica un único comentario en el PR. Tanto el comentario como la tarjeta de la ejecución de verificación indican la causa y enlazan a la página de administración donde un administrador puede solucionarlo:

313 57 

314* **Límite de gasto alcanzado**: las revisiones se reanudan al inicio del próximo período de facturación, o inmediatamente después de que un administrador aumente el límite en [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)58 <Card title="Personalizar Code Review" icon="sliders" href="/docs/es/code-review-customize">

315* **Créditos de uso agotados**: las revisiones se reanudan una vez que un administrador agregue más [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) en [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)59 Ajusta lo que se marca con archivos `REVIEW.md` y `CLAUDE.md` en tu repositorio

60 </Card>

316 61 

317<h3 id="find-issues-that-aren’t-showing-as-inline-comments">62 <Card title="Leer y solicitar revisiones en un pull request" icon="code-pull-request" href="/docs/es/code-review-pull-requests">

318 Encontrar problemas que no se muestran como comentarios en línea63 Lee los hallazgos y sus severidades, y solicita otra revisión con un comentario

319</h3>64 </Card>

320 65 

321Si el título de la ejecución de verificación dice que se encontraron problemas pero no ve comentarios de revisión en línea en el diff, busque en estas otras ubicaciones donde se muestran los hallazgos:66 <Card title="Solución de problemas de Code Review" icon="wrench" href="/docs/es/code-review-troubleshooting">

67 Soluciona una revisión que no se inició, falló o se omitió por presupuesto

68 </Card>

322 69 

323* **Check run Details**: haga clic en **Details** junto a la verificación Claude Code Review en la pestaña Checks. La tabla de severidad enumera cada hallazgo con su archivo, línea y resumen independientemente de si el comentario en línea fue aceptado.70 <Card title="Costos y uso de Code Review" icon="chart-line" href="/docs/es/code-review-costs">

324* **Files changed annotations**: abra la pestaña **Files changed** en el PR. Los hallazgos se representan como anotaciones adjuntas directamente a las líneas de diff, separadas de los comentarios de revisión.71 Consulta cómo se facturan las revisiones, estima el gasto, establece el límite de gasto mensual y haz seguimiento de la actividad de revisión

325* **Review body**: si hizo push al PR mientras se ejecutaba una revisión, algunos hallazgos pueden hacer referencia a líneas que ya no existen en el diff actual. Esos aparecen bajo un encabezado **Additional findings** en el texto del cuerpo de revisión en lugar de como comentarios en línea.72 </Card>

73</CardGroup>

326 74 

327<h2 id="review-a-diff-locally">75<h2 id="how-reviews-work">

328 Revisar un diff localmente76 Cómo funcionan las revisiones

329</h2>77</h2>

330 78 

331El comando [`/code-review`](/docs/es/commands) revisa un diff en tu terminal sin instalar la aplicación de GitHub. Reporta errores de corrección. Según tu modelo y nivel de esfuerzo, la revisión también cubre limpiezas de reutilización, simplificación y eficiencia.79<span id="what-code-review-checks" />

332 

333`/review` es un alias de `/code-review`; antes de v2.1.223, era un comando separado que ejecutaba una revisión de una sola pasada, de solo lectura, de una solicitud de extracción de GitHub.

334 

335<Steps>

336 <Step title="Ejecutar /code-review">

337 Desde la sesión en la que está trabajando, ejecute el comando:

338 

339 ```text theme={null}

340 /code-review

341 ```

342 

343 Revisa los commits de su rama por delante de su rama ascendente más cualquier cambio sin confirmar, por lo que necesita trabajo en la rama o en el árbol de trabajo para tener algo que reportar. Para revisar algo diferente, pase un objetivo: una ruta de archivo, un número de PR, un nombre de rama o un rango de ref como `main...my-feature`.

344 

345 También puede agregar indicadores:

346 

347 * `--fix`: aplica los hallazgos a tu árbol de trabajo después de la revisión

348 * `--comment`: publica los hallazgos como comentarios en línea en un pull request de GitHub, o como una nota única en un merge request de GitLab

349 * `--post`: en una revisión en la nube `ultra` de un pull request de `github.com`, preselecciona publicar los hallazgos terminados en el PR en el diálogo de lanzamiento; consulta [Publicar hallazgos en el pull request](/docs/es/ultrareview#post-findings-to-the-pull-request). Requiere Claude Code v2.1.227 o posterior

350 * `--max-findings <n>`, `--max-findings all` o `--max-findings default`: reporta hasta `n` hallazgos, o todos los hallazgos con `all`, en lugar del límite habitual de la revisión. Las revisiones posteriores reutilizan el valor que escribiste hasta que pases `--max-findings default`. Requiere Claude Code v2.1.288 o posterior

351 

352 Cuando pasa `--comment` para una solicitud de fusión de GitLab, Claude Code publica los hallazgos a través de la CLI `glab` de GitLab. Requiere Claude Code v2.1.257 o posterior. Cuando `glab` no está instalado, Claude imprime los hallazgos en la terminal en su lugar.

353 80 

354 Pase la solicitud de fusión como su URL o una referencia `!123`. Claude Code trata un número desnudo o un nombre de rama como una solicitud de fusión solo cuando el checkout de origen está en `gitlab.com`. En una instancia de GitLab autogestionada, pase la URL o el formulario `!123`.81Por defecto, Code Review se enfoca en la corrección: errores que romperían la producción, no preferencias de formato o cobertura de pruebas faltante. Para cambiar lo que marca, [agrega archivos de orientación](/docs/es/code-review-customize) a tu repositorio.

355 </Step>

356 82 

357 <Step title="Continuar trabajando">83Una revisión se ejecuta en la infraestructura de Anthropic en cuatro etapas:

358 La revisión se ejecuta como un [subagente](/docs/es/sub-agents) de fondo con su propia ventana de contexto, por lo que no llena su conversación. Los hallazgos llegan a su conversación cuando se completa la revisión.

359 </Step>

360 84 

361 <Step title="Actuar sobre los hallazgos">851. **Encontrar**: varios agentes examinan el diff y el código circundante en paralelo.

362 Pida a Claude que corrija lo que encontró la revisión. Si pasó `--fix` o `--comment`, la revisión ya ha aplicado o publicado sus hallazgos.862. **Verificar**: un paso de verificación contrasta los hallazgos candidatos con el código y filtra los falsos positivos.

363 </Step>873. **Clasificar**: los hallazgos restantes se desduplican y se clasifican por severidad.

364</Steps>884. **Publicar**: la revisión publica sus resultados en el pull request.

365 89 

366Claude reporta los hallazgos como texto en la respuesta en ambas ejecuciones, incluso cuando una aplicación host solicita una lista de hallazgos:90Cada revisión deja esto en el pull request:

367 91 

368* En una sesión de terminal, donde `/code-review` ejecuta la revisión como un [subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent)92* **Hallazgos**: comentarios en línea en las líneas afectadas, con un resumen en el cuerpo de la revisión

369* En una ejecución `-p` con salida de texto o JSON93* **Una ejecución de verificación**: llamada **Claude Code Review**, con los hallazgos listados en sus [detalles](/docs/es/code-review-pull-requests#check-run-output). La ejecución de verificación no concluye como fallo.

94* **Cuando no encuentra nada**: el título de la ejecución de verificación dice **Code review found no issues**, y Claude publica la misma nota breve en el pull request

370 95 

371En una aplicación host que solicita la lista de hallazgos, como la [aplicación de escritorio](/docs/es/desktop#review-your-code), Claude reporta los hallazgos de la revisión a través de la herramienta [`ReportFindings`](/docs/es/tools-reference). Claude Code renderiza el informe como una lista de hallazgos, y cada entrada muestra la ubicación del archivo, un resumen de una oración y una etiqueta de categoría como `correctness` cuando el hallazgo lleva una. Una solicitud de host se aplica en cada nivel de esfuerzo y requiere Claude Code v2.1.218 o posterior.96Code Review elige los modelos de Claude en los que se ejecutan las revisiones, y su configuración de administración no ofrece elegir modelo. Para que las revisiones sean más o menos exhaustivas, cambia el [nivel de revisión](#review-levels).

372 97 

373Cuando Claude corrige hallazgos reportados más adelante en la sesión, los reporta nuevamente, y Claude Code marca cada hallazgo en la lista de hallazgos actualizada como corregido, omitido o sin cambios necesarios.98Después de que un Owner activa Code Review, cada repositorio tiene un ajuste para [cuándo se ejecutan las revisiones](/docs/es/code-review-setup#set-when-reviews-run): una vez cuando se abre un pull request, después de cada push o solo cuando se solicita. Sea cual sea, alguien con acceso de escritura al repositorio puede comentar `@claude review` en un pull request para [iniciar una revisión](/docs/es/code-review-pull-requests#comment-commands).

374 99 

375<h3 id="what-the-review-reads-and-edits">100<h3 id="review-levels">

376 Qué lee y edita la revisión101 Niveles de revisión

377</h3>102</h3>

378 103 

379La revisión sigue su `CLAUDE.md` como cualquier sesión de Claude Code, pero no lee [`REVIEW.md`](#review-md). Una revisión de fondo aplica sus ediciones `--fix` fuera de los [puntos de control](/docs/es/checkpointing#subagent-edits-not-restored) de su sesión, por lo que `/rewind` no las deshace; use git para revertirlas. Cuando la revisión [se ejecuta en primer plano](#run-in-the-foreground), edita su árbol de trabajo durante su propio turno, por lo que `/rewind` restaura sus ediciones como de costumbre.104El nivel de revisión establece qué tan exhaustiva es cada revisión, y una revisión más exhaustiva cuesta más:

380 105 

381<h3 id="tune-effort-and-arguments">106* **Quick**: una pasada más ligera. El nivel más rápido, al menor costo.

382 Ajustar esfuerzo y argumentos107* **Standard**: equilibrio entre profundidad, velocidad y costo. El nivel predeterminado.

383</h3>108* **Deep**: la pasada más exhaustiva. Es la que más tarda y la que más cuesta.

384 

385Pasa un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para intercambiar cobertura por confianza. En `low`, la revisión reporta los hallazgos en los que tiene más confianza, por lo que ves menos falsos positivos. De `medium` a `max`, la revisión amplía la cobertura.

386 

387Cuando no escribe un nivel, la revisión reutiliza el último nivel de `low` a `max` que escribió, incluso en una sesión anterior, y Claude Code muestra un aviso como `Reusing high effort, the level you typed last time`. Escriba un nivel, como `/code-review high`, para cambiar lo que reutilizan las ejecuciones posteriores; un nivel que pase en una ejecución `-p` no interactiva no lo actualiza. `ultra` ni actualiza ni utiliza el nivel recordado. Si nunca ha escrito un nivel, la revisión utiliza el esfuerzo actual de la sesión. Antes de v2.1.223, un `/code-review` sin un nivel siempre utilizaba el esfuerzo actual de la sesión.

388 

389Después del nivel de esfuerzo y los indicadores, Claude Code lee el resto de la línea de una de dos formas:

390 

391* **Sin `ultra`**: todo lo que queda es el objetivo de la revisión, incluso cuando comienza con otro nombre de comando. `/code-review /fix-issue 123` revisa con `/fix-issue 123` como texto objetivo en lugar de cargar `/fix-issue` como una [skill apilada](/docs/es/skills#pass-arguments-to-skills) separada. Antes de v2.1.218, un comando apilado después de `/code-review` se expandía como su propia skill.

392* **Con `ultra`**: Claude Code lee una sola palabra como una rama base o número de PR, y convierte texto más largo que no nombra una rama o PR en [una nota adjunta a la revisión](/docs/es/ultrareview#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` revisa su rama actual, y Claude relaciona los hallazgos con su nota.

393 

394<h3 id="run-in-the-foreground">

395 Ejecutar en primer plano

396</h3>

397 

398La revisión se ejecuta en segundo plano de forma predeterminada; antes de v2.1.218, se ejecutaba dentro de su conversación. Se ejecuta en primer plano en su lugar en casos como estos:

399 109 

400* Ejecuta `/code-review` nuevamente mientras una revisión anterior aún está en progreso110Un Owner [elige un nivel para la organización](/docs/es/code-review-setup#set-the-default-review-level) y puede asignar a un repositorio concreto su propio nivel, como Quick para una base de código de mantenimiento habitual y Deep para una crítica. Para conocer qué más influye en el costo de cada revisión, consulta [Costos y uso de Code Review](/docs/es/code-review-costs).

401* Lo ejecutas en modo no interactivo, con el flag `-p` o el Agent SDK; Claude Code espera la revisión e incluye los hallazgos en la respuesta, excepto con `ultra`, que [no espera la revisión en la nube](/docs/es/ultrareview#run-ultrareview-non-interactively)

402* Establece [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/es/env-vars) en `1`, lo que también desactiva todas las demás características de tareas de fondo

403 111 

404<h3 id="let-claude-start-the-review">112<h3 id="what-a-review-can-access">

405 Dejar que Claude inicie la revisión113 A qué puede acceder una revisión

406</h3>114</h3>

407 115 

408Claude puede iniciar `/code-review` por su cuenta. Pídale que revise sus cambios en lenguaje natural y puede ejecutar la skill sin que escriba el comando, y una [tarea programada](/docs/es/scheduled-tasks) con `/code-review` como su indicación ejecuta la revisión.116Una revisión accede a tu repositorio a través de la Claude GitHub App que un Owner [instala durante la configuración](/docs/es/code-review-setup#turn-on-code-review):

409 117 

410Una tarea programada nunca lanza la [revisión en la nube](#escalate-to-ultrareview), por lo que programe `/code-review` sin el argumento `ultra`.118* **Dónde se ejecuta**: en la infraestructura de Anthropic, en un entorno administrado. Las revisiones no se ejecutan en [entornos autohospedados](/docs/es/self-hosted-environments).

119* **Qué lee y escribe**: dentro de una revisión, el acceso a tu repositorio es de solo lectura, y una revisión no hace push de commits. En el pull request, publica comentarios y la [ejecución de verificación](/docs/es/code-review-pull-requests#check-run-output), resuelve sus propios hilos de comentarios anteriores y puede reaccionar a un comando de comentario con 👀. La aplicación en sí tiene un [conjunto de permisos más amplio](/docs/es/github-actions#github-app-permissions) que comparten otras características de Claude.

120* **Cómo examina tu código**: una revisión trabaja leyendo el diff y el código circundante, sin compilar ni ejecutar tu código.

411 121 

412Para evitar que Claude y las tareas programadas inicien la revisión mientras mantiene `/code-review` disponible para que escriba, agregue una entrada [`skillOverrides`](/docs/es/skills#override-skill-visibility-from-settings) a un [archivo de configuración](/docs/es/settings#where-settings-live) como `~/.claude/settings.json`:122<h3 id="who-controls-a-review">

413 123 Quién controla una revisión

414```json theme={null}

415{

416 "skillOverrides": {

417 "code-review": "user-invocable-only"

418 }

419}

420```

421 

422Antes de v2.1.246, Claude iniciaba `/code-review` por su cuenta solo donde una bandera de característica obtenida de Anthropic la activaba. En [sesiones que no obtienen banderas de características](/docs/es/env-vars#features-that-need-feature-flag-fetching), `/code-review` se ejecutaba solo cuando la escribía, y una `/code-review` programada llegaba a Claude como texto sin formato.

423 

424<h3 id="escalate-to-ultrareview">

425 Escalar a ultrareview

426</h3>124</h3>

427 125 

428`/code-review ultra --fix` ejecuta la [ultrareview](/docs/es/ultrareview) más profunda en la nube, luego aplica sus hallazgos a su árbol de trabajo cuando regresan a su sesión.126* **Quién puede iniciarla**: donde las revisiones se ejecutan automáticamente, abrir un pull request o hacer push a él inicia una revisión, [excepto en borradores y forks](/docs/es/code-review-pull-requests#review-drafts-and-pull-requests-from-forks). Un [comando de comentario](/docs/es/code-review-pull-requests#comment-commands) inicia una solo cuando proviene de una persona con acceso de escritura al repositorio.

429 127* **Qué instrucciones sigue**: `REVIEW.md` de la rama base o predeterminada y [nunca de los propios cambios del pull request](/docs/es/code-review-customize#which-branch-review-md-is-read-from).

430Ultrareview utiliza su propio alcance: su rama actual contra la rama predeterminada del repositorio, más cambios sin confirmar y preparados en el árbol de trabajo. Para cambios sin confirmar en archivos nombrados como credenciales o claves, como archivos `.env` y `*.tfvars`, Claude Code sigue las reglas para [cargar un repositorio local en una sesión en la nube](/docs/es/claude-code-on-the-web#send-local-repositories-without-github). Pase un nombre de rama, como `/code-review ultra develop`, para comparar contra una base diferente.

431 128 

432Cuando el objetivo es una solicitud de extracción de `github.com`, puede hacer que Claude [publique los hallazgos terminados en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) como un comentario desde su cuenta de GitHub. Requiere Claude Code v2.1.227 o posterior.129<h2 id="compare-ways-to-get-a-review">

433 130 Comparar formas de obtener una revisión

434<Note>131</h2>

435 Ultrareview requiere autenticación con una cuenta de claude.ai y no está disponible en Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, ni para organizaciones con Zero Data Retention habilitado o con la [configuración de HIPAA](/docs/es/hipaa-setup) aplicada. Cuando ultrareview no está disponible, `/code-review ultra` ejecuta una revisión local en tu sesión en su lugar.

436</Note>

437 132 

438Para ejecutar una revisión en la nube desde un script o un job de CI, usa el [subcomando `claude ultrareview`](/docs/es/ultrareview#run-ultrareview-non-interactively), que espera los hallazgos y los imprime en stdout.133Para encontrar las opciones disponibles para ti, compara la columna **Quién puede usarla** con tu plan y tu host de código:

439 134 

440El comando se llamaba `/simplify` antes de v2.1.147, cuando aplicaba correcciones de forma predeterminada. `/simplify` ejecuta una revisión separada de solo limpieza que aplica correcciones sin buscar errores. Si escribió scripts con `/simplify` para búsqueda de errores, cambie a `/code-review --fix`.135| Opción | Qué inicia una revisión | Dónde se ejecuta | Quién puede usarla |

136| :- | :- | :- | :- |

137| [Code Review](#how-reviews-work) | La actividad del pull request, según la configuración de cada repositorio, o un comentario `@claude review` | Infraestructura de Anthropic | Organizaciones con un plan Team o Enterprise y repositorios de GitHub, una vez que un Owner lo activa |

138| [`/code-review`](/docs/es/code-review-local) | Ejecutas el comando en tu rama | Tu sesión de Claude Code | Cualquiera, en cualquier plan |

139| [Ultrareview](/docs/es/ultrareview) | La inicias desde Claude Code | Un sandbox en la nube | Requiere iniciar sesión con una cuenta de claude.ai. Consulta [Ultrareview](/docs/es/ultrareview) para saber dónde no está disponible |

140| Claude en tu propio CI, con [GitHub Actions](/docs/es/github-actions) o [GitLab CI/CD](/docs/es/gitlab-ci-cd) | Los eventos de tu pipeline, como cada pull request o merge request | Tus propios runners de CI | Cualquiera con una clave de API de Claude o credenciales de un proveedor de nube, en GitHub o GitLab |

141| Tu propio revisor, como un [subagente](/docs/es/sub-agents) o un [skill](/docs/es/skills) | Tú o Claude lo invocan durante una sesión | Donde sea que ejecutes Claude Code | Cualquiera que escriba uno |

441 142 

442<h2 id="related-resources">143<h2 id="related-resources">

443 Recursos relacionados144 Recursos relacionados

444</h2>145</h2>

445 146 

446* [Commands](/docs/es/commands): ejecute `/code-review` en una sesión local de Claude Code para verificar un diff antes de hacer push147* [GitHub Enterprise Server](/docs/es/github-enterprise-server): usa Code Review con una instancia de GitHub autohospedada

447* [GitHub Actions](/docs/es/github-actions): ejecute Claude en sus propios flujos de trabajo de GitHub Actions para automatización personalizada más allá de la revisión de código148* [Permisos de GitHub App](/docs/es/github-actions#github-app-permissions): el conjunto completo de permisos que solicita la Claude GitHub App

448* [GitLab CI/CD](/docs/es/gitlab-ci-cd): integración de Claude autohospedada para canalizaciones de GitLab

449* [Memory](/docs/es/memory): cómo funcionan los archivos `CLAUDE.md` en Claude Code

450* [Analytics](/docs/es/analytics): rastrear el uso de Claude Code más allá de la revisión de código

451* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): cómo la revisión automatizada se ajusta como una capa del proceso de desarrollo seguro de Anthropic149* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): cómo la revisión automatizada se ajusta como una capa del proceso de desarrollo seguro de Anthropic

code-review-costs.md +88 −0 created

Details

1> ## Documentation Index

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

4 

5# Costos y uso de Code Review

6 

7> Estima y limita lo que tu organización gasta en Claude Code Review: cómo se facturan las revisiones mediante créditos de uso, qué determina el costo y dónde hacer seguimiento del uso.

8 

9[Code Review](/docs/es/code-review) no tiene un precio fijo por revisión. Lo que gastas depende del costo de cada revisión y de cuántas revisiones se ejecutan:

10 

11* **Costo de cada revisión**: aumenta según el [nivel de revisión](/docs/es/code-review-setup#set-the-default-review-level), el tamaño del cambio, la complejidad del código circundante y cuántos problemas candidatos necesitan verificación

12* **Número de revisiones**: lo determina [con qué frecuencia se ejecutan las revisiones](#how-often-reviews-run) en cada repositorio

13 

14<h2 id="pricing">

15 Precios

16</h2>

17 

18Code Review se factura según el uso de tokens mediante [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), por separado del uso incluido en tu plan. Las revisiones se facturan a tu organización, no al desarrollador que abrió el PR o solicitó la revisión. Los costos aparecen en tu factura de Anthropic independientemente de si tu organización usa Amazon Bedrock, Agent Platform de Google Cloud o Microsoft Foundry para otras funciones de Claude Code.

19 

20<h3 id="how-often-reviews-run">

21 Con qué frecuencia se ejecutan las revisiones

22</h3>

23 

24Un repositorio que agregas desde la página de administración comienza con **After every push**, que es la opción que ejecuta más revisiones. El [ajuste **Review runs**](/docs/es/code-review-setup#set-when-reviews-run) de cada repositorio decide cuántas revisiones recibe un pull request:

25 

26* **Once after PR creation**: se ejecuta una revisión cuando el pull request se abre, se vuelve a abrir o se marca como listo para revisión

27* **After every push**: se ejecuta en cada push, multiplicando el costo por el número de pushes

28* **Manual (@claude review)**: no hay revisiones al abrir ni al hacer push

29 

30Los comandos en comentarios, los borradores y los pull requests desde forks ajustan esos recuentos:

31 

32* **`@claude review always` en el modo Once after PR creation o Manual**: [suscribe el PR a revisiones activadas por push](/docs/es/code-review-pull-requests#comment-commands), por lo que se acumula costo adicional por cada push después de ese comentario

33* **`@claude review always` en el modo After every push**: los pushes ya activan revisiones, así que la suscripción no cambia el costo por push

34* **`@claude review`**: ejecuta una sola revisión sin suscribirse a pushes futuros

35* **Borradores y pull requests desde forks**: [las revisiones automáticas omiten ambos](/docs/es/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), así que los pushes a ellos no agregan revisiones

36 

37<h2 id="estimate-your-spend">

38 Estima tu gasto

39</h2>

40 

41Antes de un despliegue amplio, ejecuta un piloto pequeño para estimar el gasto mensual a partir de tus propios pull requests.

42 

431. Establece un [límite de gasto mensual](#limit-your-spend) para el piloto.

442. Activa Code Review en algunos repositorios representativos con **Review runs** configurado en **Once after PR creation** o **Manual (@claude review)**.

453. Después de que se hayan ejecutado varias revisiones, consulta el costo promedio por revisión de cada repositorio en la columna **Average cost** de la tabla **Repositories**, en la sección **Code review** de [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

464. Multiplica ese promedio por el número de pull requests que se abren en el repositorio en un mes. Para **After every push**, multiplica de nuevo por el número típico de pushes por pull request.

47 

48El promedio de un repositorio varía con el tamaño de sus pull requests y con el nivel de revisión que elijas.

49 

50<h2 id="limit-your-spend">

51 Limita tu gasto

52</h2>

53 

54Para establecer un límite de gasto mensual para Code Review, ve a [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) y configura el límite para el servicio Claude Code Review. El límite se aplica a toda la organización.

55 

56Code Review omite revisiones cuando se agota cualquiera de estos:

57 

58* **Límite de gasto de Code Review**: el límite mensual que estableces para el servicio Claude Code Review. Se restablece al inicio del siguiente período de facturación, y las revisiones se reanudan antes si lo aumentas.

59* **Límite de gasto de la organización**: el límite de gasto mensual general de tu organización para los créditos de uso. Auméntalo en la misma página.

60* **Saldo de créditos de uso**: el saldo de créditos de uso de tu organización. Agrega créditos en la misma página.

61 

62Code Review también omite revisiones cuando lo que queda es menor que el costo esperado de una revisión. Cuando se omite una revisión, los desarrolladores ven un [comentario en el PR](/docs/es/code-review-troubleshooting#review-didn’t-run-and-the-pr-shows-a-budget-message) que indica la causa y enlaza a la configuración de uso.

63 

64Para supervisar el gasto, usa el [panel de análisis](#view-usage).

65 

66<h2 id="view-usage">

67 Ver el uso

68</h2>

69 

70Ve a [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) para ver la actividad de Code Review en toda tu organización.

71 

72| Sección | Qué muestra |

73| :- | :- |

74| PRs reviewed | Recuento diario de pull requests revisados durante el intervalo de tiempo seleccionado |

75| Code Review cost | Gasto de Code Review en lo que va del mes |

76| Feedback | Recuento de comentarios de revisión que se resolvieron automáticamente porque un desarrollador abordó el problema |

77| Repository breakdown | Recuentos por repositorio de PRs revisados, comentarios resueltos y ejecuciones de revisión, con costo estimado y una vista por PR |

78 

79La tarjeta Code Review cost muestra un monto solo cuando está seleccionado el mes actual. Las cifras de costo en el panel de análisis pueden diferir de tu factura. Los costos de Repository breakdown se estiman a precio de lista, antes de cualquier descuento o crédito, y cubren solo las revisiones que Claude publicó en un pull request. Para conocer el gasto exacto según la factura, consulta tu factura de Anthropic.

80 

81<h2 id="related-resources">

82 Recursos relacionados

83</h2>

84 

85* [Configurar Code Review](/docs/es/code-review-setup): dónde elegir el nivel de revisión y cuándo se ejecutan las revisiones en cada repositorio

86* [Leer y solicitar revisiones en un pull request](/docs/es/code-review-pull-requests): los comandos en comentarios, los pull requests desde forks y el mensaje de presupuesto que ven los desarrolladores cuando se omite una revisión

87* [Code Review](/docs/es/code-review): qué verifica una revisión y qué publica

88* [Administrar costos de forma eficaz](/docs/es/costs): controles de gasto y seguimiento del uso para el resto de Claude Code

code-review-customize.md +149 −0 created

Details

1> ## Documentation Index

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

4 

5# Personalizar Code Review

6 

7> Ajusta lo que Code Review señala en tus pull requests con REVIEW.md y CLAUDE.md: recalibra la severidad, omite rutas, agrega comprobaciones y consulta qué copia se aplica.

8 

9Puedes cambiar lo que [Code Review](/docs/es/code-review) señala en tu repositorio confirmando instrucciones en él. Así es como reduces el volumen de nits, detienes los comentarios sobre archivos generados o agregas una regla que le importa a tu equipo. Colócalas en uno de estos dos archivos:

10 

11* **`CLAUDE.md`**: [instrucciones del proyecto](/docs/es/memory) que Claude Code lee en cada tarea, incluidas las revisiones. Code Review las lee como contexto del proyecto y señala los cambios que las infringen.

12* **`REVIEW.md`**: instrucciones exclusivas para las revisiones. Úsalo para indicar qué quiere tu equipo que se señale, con qué severidad y qué omitir.

13 

14Agrega `REVIEW.md` en la raíz de tu repositorio y fusiónalo. Luego [protege tu rama predeterminada](#which-branch-review-md-is-read-from).

15 

16<Note>

17 Para cambiar qué tan exhaustivas son las revisiones o cuándo se ejecutan, pídele a un Owner que cambie el [nivel de revisión](/docs/es/code-review-setup#set-the-default-review-level) o el [ajuste **Review runs**](/docs/es/code-review-setup#set-when-reviews-run).

18</Note>

19 

20<h2 id="use-claude-md-for-project-wide-rules">

21 Usa CLAUDE.md para reglas de todo el proyecto

22</h2>

23 

24Code Review lee los archivos `CLAUDE.md` de tu repositorio como contexto del proyecto. Un cambio que infringe una de sus reglas se convierte en un hallazgo con el [nivel de severidad](/docs/es/code-review-pull-requests#severity-levels) que corresponda al problema.

25 

26Una revisión lee el `CLAUDE.md` de la raíz de tu repositorio y los archivos `CLAUDE.md` de los directorios padre de cada archivo modificado. El `CLAUDE.md` de un subdirectorio se lee cuando el pull request modifica un archivo bajo esa ruta.

27 

28<h2 id="use-review-md-for-review-only-rules">

29 Usa REVIEW\.md para reglas exclusivas de revisión

30</h2>

31 

32`REVIEW.md` es un archivo en la raíz de tu repositorio que adapta Code Review a tu repositorio. También puedes agregar un `REVIEW.md` en un subdirectorio para añadir comprobaciones a los cambios bajo esa ruta, además del archivo raíz.

33 

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

35 

36Este diseño de ejemplo tiene un archivo raíz y un archivo en un subdirectorio:

37 

38```text theme={null}

39your-repo/

40├── REVIEW.md # Root file

41├── services/

42│ └── billing/

43│ └── REVIEW.md # Adds checks for changes under services/billing/

44└── src/

45```

46 

47Antes de depender de un archivo en un subdirectorio, protege tu rama predeterminada y consulta [qué lee una revisión según la configuración de tus ramas](#what-a-review-reads-for-each-branch-setup).

48 

49<Note>

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

51</Note>

52 

53<h3 id="example-review-md">

54 Ejemplo de REVIEW\.md

55</h3>

56 

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

58 

59```markdown theme={null}

60# Review instructions

61 

62## What Important means here

63 

64Reserve Important for findings that would break behavior, leak data,

65or block a rollback: incorrect logic, unscoped database queries, PII

66in logs or error messages, and migrations that aren't backward

67compatible. Style, naming, and refactoring suggestions are Nit at

68most.

69 

70## Cap the nits

71 

72Report at most five Nits per review.

73 

74## Do not report

75 

76- Anything CI already enforces: lint, formatting, type errors

77- Generated files under `src/gen/` and any `*.lock` file

78- Test-only code that intentionally violates production rules

79 

80## Always check

81 

82- New API routes have an integration test

83- Log lines don't include email addresses, user IDs, or request bodies

84- Database queries are scoped to the caller's tenant

85```

86 

87<h3 id="choose-what-to-write-in-review-md">

88 Elige qué escribir en REVIEW\.md

89</h3>

90 

91`REVIEW.md` es markdown de formato libre que cambia lo que una revisión encuentra y reporta. No cambia el formato de la revisión. Busca el problema que estás viendo y luego agrega una instrucción como la que se muestra. El [ejemplo](#example-review-md) usa las cuatro primeras.

92 

93* **Se marcan como Important las cosas equivocadas**: redefine qué significa 🔴 Important para tu repositorio. La calibración predeterminada apunta a código de producción, y un repositorio de documentación, un repositorio de configuración o un prototipo podrían necesitar una definición mucho más estrecha. Indica qué clases de hallazgos son Important y cuáles son, como mucho, Nit. También puedes escalar, por ejemplo, tratando cualquier infracción de `CLAUDE.md` como Important.

94* **Demasiados nits**: limita cuántos comentarios 🟡 Nit publica una sola revisión. Un límite como "reporta como máximo cinco nits" mantiene las revisiones accionables.

95* **Comentarios sobre archivos generados o sobre lo que CI ya comprueba**: enumera las rutas y categorías de hallazgos en las que Claude debe omitir hallazgos. Los candidatos habituales son el código generado, los lockfiles y las dependencias incluidas en el repositorio (vendored), junto con cualquier cosa que tu CI ya aplique, como el linting o la revisión ortográfica. Para rutas que merecen algo de revisión pero no un escrutinio completo, establece un umbral más alto: "en `scripts/`, reporta solo si es casi seguro y grave".

96* **No se comprueba una regla del equipo**: agrega las reglas que quieras que se señalen en cada pull request, como "las nuevas rutas de API deben tener una prueba de integración".

97* **Hallazgos que resultan ser incorrectos**: exige evidencia antes de que se publique una clase de hallazgo. Por ejemplo, "las afirmaciones sobre el comportamiento necesitan una cita `file:line` en el código fuente, no una inferencia a partir de los nombres" reduce los falsos positivos que, de lo contrario, le costarían al autor una ida y vuelta.

98 

99Algunas de estas instrucciones [necesitan el archivo raíz en una rama predeterminada protegida](#which-branch-review-md-is-read-from).

100 

101Limita `REVIEW.md` a instrucciones que cambien el comportamiento de la revisión y deja el contexto general del proyecto en `CLAUDE.md`.

102 

103<h3 id="which-branch-review-md-is-read-from">

104 Desde qué rama se lee REVIEW\.md

105</h3>

106 

107Code Review lee `REVIEW.md` desde la rama base del pull request o desde la rama predeterminada, nunca desde los propios cambios del pull request. Para cambiar el comportamiento de la revisión, fusiona primero el cambio en `REVIEW.md`.

108 

109Mantén `REVIEW.md` en tu rama predeterminada y protege esa rama. Cuando una revisión lee la copia de una rama predeterminada protegida, la primera fila de la tabla siguiente, respeta estas instrucciones del archivo raíz:

110 

111* Reducir la severidad de un hallazgo

112* Excluir rutas, archivos o clases de problemas

113* Limitar los comentarios de tipo nit

114 

115<h4 id="what-counts-as-branch-protection">

116 Qué cuenta como protección de rama

117</h4>

118 

119Code Review considera protección los siguientes ajustes:

120 

121* **Rama predeterminada**: una regla clásica de protección de rama o un ruleset

122* **Cualquier otra rama**: solo un ruleset

123 

124Un ruleset cuenta cuando restringe las actualizaciones o exige pull requests con al menos una aprobación. Si exige pull requests, también debe descartar esa aprobación ante un nuevo push o exigir que la aprobación llegue después del último push.

125 

126<h4 id="what-a-review-reads-for-each-branch-setup">

127 Qué lee una revisión según la configuración de ramas

128</h4>

129 

130Busca la situación de tu repositorio en la primera columna de la tabla siguiente.

131 

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

133| :- | :- | :- |

134| La rama predeterminada está protegida y el pull request apunta a ella o a una rama que ningún ruleset protege | Rama predeterminada | Archivos raíz y de subdirectorios |

135| El pull request apunta a otra rama que un ruleset protege | Esa rama base | Archivos raíz y de subdirectorios |

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

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

138 

139Si la ejecución de comprobación menciona `REVIEW.md`, consulta [The check run mentions REVIEW.md](/docs/es/code-review-troubleshooting#the-check-run-mentions-review-md).

140 

141<h2 id="related-resources">

142 Recursos relacionados

143</h2>

144 

145* [Code Review](/docs/es/code-review): qué es el servicio y cómo se ejecuta una revisión

146* [Leer y solicitar revisiones en un pull request](/docs/es/code-review-pull-requests#severity-levels): qué significa cada nivel de severidad y cómo aparecen los hallazgos

147* [Configurar Code Review](/docs/es/code-review-setup): el nivel de revisión y cuándo se ejecutan las revisiones, que establece un Owner

148* [Revisar localmente con `/code-review`](/docs/es/code-review-local): el comando `/code-review`, sus argumentos y los niveles de esfuerzo

149* [Memoria](/docs/es/memory): cómo funcionan los archivos `CLAUDE.md` en Claude Code

code-review-local.md +197 −0 created

Details

1> ## Documentation Index

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

4 

5# Revisa localmente con /code-review

6 

7> Ejecuta `/code-review` en una sesión de Claude Code para encontrar bugs en los cambios de tu rama, apunta la revisión a un pull request o una ruta, y haz que Claude aplique las correcciones.

8 

9`/code-review` es un comando que escribes en el prompt de Claude Code, en la sesión donde estás trabajando. Claude revisa los cambios de tu rama, busca bugs de corrección e informa lo que encontró en tu conversación. Según tu modelo y tu nivel de esfuerzo, la revisión también abarca limpiezas de reutilización, simplificación y eficiencia.

10 

11El comando funciona en cualquier plan. La revisión se ejecuta en tu propia sesión, así que cuenta para el uso de tu plan o la facturación de la API de la misma manera que el resto de la sesión.

12 

13<Note>

14 Para que cada pull request de un repositorio se revise automáticamente en GitHub, consulta [Code Review](/docs/es/code-review), un servicio administrado que un Owner activa para tu organización.

15</Note>

16 

17`/review` es un alias de `/code-review`. Antes de la v2.1.223, `/review` era un comando independiente que ejecutaba una revisión de una sola pasada y de solo lectura de un pull request de GitHub.

18 

19<Steps>

20 <Step title="Ejecuta /code-review">

21 Ejecuta el comando:

22 

23 ```text theme={null}

24 /code-review

25 ```

26 

27 Sin un objetivo, la revisión abarca los cambios de tu rama actual. Para apuntar la revisión a un pull request, otra rama, una ruta o un rango de commits, consulta [Elige qué revisar](#choose-what-to-review).

28 

29 También puedes agregar flags:

30 

31 * `--fix`: también le pide a Claude que aplique los hallazgos a tu árbol de trabajo después de la revisión. Sus ediciones pasan por tu [modo de permisos](/docs/es/permission-modes).

32 * `--comment`: publica los hallazgos en un pull request de GitHub como comentarios en línea, o en un [merge request de GitLab](#post-findings-to-a-gitlab-merge-request) como una sola nota

33 </Step>

34 

35 <Step title="Sigue trabajando">

36 La revisión se ejecuta como un [subagente](/docs/es/sub-agents) en segundo plano con su propia ventana de contexto, así que no llena tu conversación. Los hallazgos llegan a tu conversación cuando la revisión termina.

37 </Step>

38 

39 <Step title="Actúa sobre los hallazgos">

40 Pídele a Claude que corrija lo que encontró la revisión. Con `--fix` o `--comment`, Claude aplica o publica los hallazgos como parte de la revisión, y es posible que se te pida aprobar sus ediciones.

41 </Step>

42</Steps>

43 

44<h2 id="choose-what-to-review">

45 Elige qué revisar

46</h2>

47 

48Para revisar algo distinto de tu rama actual, escribe un objetivo después del nivel de esfuerzo y de cualquier flag. Claude recibe ese texto como el objetivo de la revisión. Un objetivo puede ser un número de pull request, un nombre de rama, una ruta de archivo o un rango de revisiones de Git. Busca lo que quieres revisar en la primera columna y escribe lo que muestra la segunda columna:

49 

50| Para apuntar la revisión a | Escribe |

51| :- | :- |

52| Tu rama actual y los cambios sin commit | `/code-review` |

53| Tus últimos 15 commits | `/code-review HEAD~15..HEAD` |

54| Una rama frente a otra | `/code-review main...my-feature` |

55| Un solo commit, donde `abc1234` es el hash del commit | `/code-review abc1234^..abc1234` |

56| Un pull request por número | `/code-review 1234` |

57| Una ruta de archivo o directorio | `/code-review src/auth` |

58 

59Sin un objetivo, `/code-review` revisa los commits de tu rama que van por delante de su rama upstream, además de tus cambios sin commit. Si la rama no tiene upstream, Claude compara con `main`, o con el commit anterior.

60 

61Con `ultra`, Claude Code interpreta el objetivo de otra manera, como se describe en [Texto después del nivel de esfuerzo y los flags](#text-after-the-effort-level-and-flags).

62 

63<h2 id="what-the-review-reads-and-edits">

64 Qué lee y edita la revisión

65</h2>

66 

67Revisa estos puntos antes de ejecutar una revisión, especialmente con `--fix`:

68 

69* **Ediciones**: sin `--fix`, las instrucciones de la revisión le piden a Claude solo un informe. Con `--fix`, también le piden que aplique los hallazgos a tu árbol de trabajo. En cualquier caso, toda edición pasa por tu modo de permisos.

70* **Retroceder**: una revisión en segundo plano aplica sus ediciones de `--fix` fuera de los [checkpoints](/docs/es/checkpointing#subagent-edits-not-restored) de tu sesión. Después de una, `/rewind` restaura solo los archivos que Claude ya había editado en tu conversación. Las ediciones de la revisión en otros archivos se mantienen, así que usa git para revertirlas. Cuando la revisión [se ejecuta en primer plano](#run-in-the-foreground), edita tu árbol de trabajo durante tu propio turno, así que `/rewind` restaura sus ediciones como de costumbre.

71* **Instrucciones**: la revisión sigue tu `CLAUDE.md`, incluso en una ejecución no interactiva con `-p`. No lee `REVIEW.md`. Ese archivo configura el [servicio Code Review](/docs/es/code-review-customize#use-review-md-for-review-only-rules) administrado en pull requests de GitHub.

72 

73<h2 id="how-findings-are-reported">

74 Cómo se informan los hallazgos

75</h2>

76 

77Claude informa los hallazgos como texto en la respuesta en ambas de estas ejecuciones:

78 

79* En una sesión de terminal, donde `/code-review` ejecuta la revisión como un [subagente bifurcado](/docs/es/skills#run-skills-in-a-subagent)

80* En una ejecución con `-p` con salida de texto o JSON

81 

82En una aplicación host que solicita la lista de hallazgos, como la [aplicación de escritorio](/docs/es/desktop#review-your-code), Claude informa los hallazgos de la revisión a través de la [herramienta `ReportFindings`](/docs/es/tools-reference) en su lugar. El informe aparece como una lista de hallazgos, y cada entrada muestra la ubicación del archivo, un resumen de una oración y una etiqueta de categoría como `correctness` cuando el hallazgo tiene una. Una solicitud del host aplica en todos los niveles de esfuerzo y requiere Claude Code v2.1.218 o posterior.

83 

84Cuando Claude corrige hallazgos informados más adelante en la sesión, los informa de nuevo. Luego, Claude Code marca cada hallazgo en la lista actualizada como corregido, omitido o sin cambios necesarios.

85 

86<h2 id="tune-effort-and-arguments">

87 Ajusta el esfuerzo y los argumentos

88</h2>

89 

90Además de `--fix` y `--comment`, el comando acepta estos flags:

91 

92* `--post`: en una revisión en la nube con `ultra` de un pull request de `github.com`, preselecciona publicar los hallazgos finales en el PR en el diálogo de inicio. Consulta [Publicar los hallazgos en el pull request](/docs/es/ultrareview#post-findings-to-the-pull-request). Requiere Claude Code v2.1.227 o posterior.

93* `--max-findings <n>`, `--max-findings all` o `--max-findings default`: informa hasta `n` hallazgos, o todos los hallazgos con `all`, en lugar del límite habitual de la revisión. Cuando la revisión informa a través de la herramienta de hallazgos, el límite es 32. Las revisiones posteriores reutilizan el valor que escribiste hasta que pases `--max-findings default`, pero un valor pasado en una ejecución no interactiva con `-p` no se recuerda. Requiere Claude Code v2.1.288 o posterior.

94 

95Pasa un [nivel de esfuerzo](/docs/es/model-config#adjust-effort-level) para equilibrar cobertura y confianza. En `low`, la revisión informa los hallazgos de los que tiene más certeza, así que ves menos falsos positivos. Desde `medium` hasta `max`, la revisión amplía la cobertura.

96 

97Cuando no escribes un nivel, la revisión reutiliza el último nivel entre `low` y `max` que escribiste, incluso en una sesión anterior. Claude Code muestra un aviso como `Reusing high effort, the level you typed last time`. Estas reglas deciden qué nivel usa una ejecución:

98 

99* **Escribir un nivel**: un nivel que escribes, como `/code-review high`, cambia lo que reutilizan las ejecuciones posteriores

100* **Ejecuciones no interactivas**: un nivel que pasas en una ejecución no interactiva con `-p` no actualiza el nivel recordado

101* **`ultra`**: la revisión no usa ni actualiza el nivel recordado

102* **Nunca se escribió un nivel**: la revisión usa el esfuerzo actual de la sesión

103 

104Antes de la v2.1.223, un `/code-review` sin nivel siempre usaba el esfuerzo actual de la sesión.

105 

106<h3 id="post-findings-to-a-gitlab-merge-request">

107 Publicar los hallazgos en un merge request de GitLab

108</h3>

109 

110Cuando pasas `--comment` para un merge request de GitLab, Claude Code publica los hallazgos a través de la CLI `glab` de GitLab. Requiere Claude Code v2.1.257 o posterior. Cuando `glab` no está instalado, Claude imprime los hallazgos en la terminal en su lugar.

111 

112Pasa el merge request como su URL o como una referencia `!123`. Claude Code trata un número o un nombre de rama sin más como un merge request solo cuando el origin del checkout está en `gitlab.com`. En una instancia de GitLab autoadministrada, pasa la URL o la forma `!123`.

113 

114<h3 id="text-after-the-effort-level-and-flags">

115 Texto después del nivel de esfuerzo y los flags

116</h3>

117 

118Después del nivel de esfuerzo y los flags, Claude Code lee el resto de la línea como el objetivo de la revisión. El argumento `ultra` cambia esa interpretación:

119 

120* **Con `ultra`**: Claude Code lee una sola palabra como una rama base o un número de PR. Un texto más largo que no nombra una rama ni un PR se convierte en [una nota adjunta a la revisión](/docs/es/ultrareview#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` revisa tu rama actual, y Claude relaciona los hallazgos con tu nota.

121* **Sin `ultra`**: todo lo que queda es el objetivo de la revisión, incluso cuando empieza con el nombre de otro comando. `/code-review /fix-issue 123` revisa con `/fix-issue 123` como texto del objetivo en lugar de cargar `/fix-issue` como un segundo [skill apilado](/docs/es/skills#pass-arguments-to-skills). Antes de la v2.1.218, un comando apilado después de `/code-review` se expandía como su propio skill.

122 

123<h2 id="run-in-the-foreground">

124 Ejecutar en primer plano

125</h2>

126 

127Para que la revisión se ejecute en primer plano, haz una de estas cosas:

128 

129* Ejecútala en modo no interactivo, con el flag `-p` o el Agent SDK. Claude Code espera la revisión e incluye los hallazgos en la respuesta, excepto con `ultra`, que [no espera la revisión en la nube](/docs/es/ultrareview#run-ultrareview-non-interactively).

130* Establece [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/es/env-vars) en `1`, lo que también desactiva todas las demás funciones de tareas en segundo plano

131* Ejecuta `/code-review` de nuevo mientras una revisión anterior sigue en curso

132 

133Antes de la v2.1.218, la revisión se ejecutaba dentro de tu conversación.

134 

135<h2 id="let-claude-start-the-review">

136 Deja que Claude inicie la revisión

137</h2>

138 

139Claude puede iniciar `/code-review` por su cuenta, sin que escribas el comando:

140 

141* **Cuando lo pides en lenguaje natural**: pídele a Claude que revise tus cambios y puede ejecutar el skill

142* **Desde una tarea programada**: una [tarea programada](/docs/es/scheduled-tasks) con `/code-review` como prompt ejecuta la revisión

143 

144Una tarea programada nunca inicia la [revisión en la nube](#escalate-to-ultrareview), así que programa `/code-review` sin el argumento `ultra`.

145 

146Para evitar que tanto Claude como las tareas programadas inicien la revisión, manteniendo `/code-review` disponible para que lo escribas tú, agrega una entrada [`skillOverrides`](/docs/es/skills#override-skill-visibility-from-settings) a un [archivo de configuración](/docs/es/settings#where-settings-live) como `~/.claude/settings.json`:

147 

148```json theme={null}

149{

150 "skillOverrides": {

151 "code-review": "user-invocable-only"

152 }

153}

154```

155 

156Antes de la v2.1.246, Claude iniciaba `/code-review` por su cuenta solo donde un feature flag obtenido de Anthropic lo activaba. En [sesiones que no obtienen feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching), `/code-review` se ejecutaba solo cuando lo escribías, y un `/code-review` programado llegaba a Claude como texto plano.

157 

158<h2 id="escalate-to-ultrareview">

159 Escalar a ultrareview

160</h2>

161 

162`/code-review ultra --fix` ejecuta el [ultrareview](/docs/es/ultrareview) más profundo en la nube y luego le pide a Claude que aplique sus hallazgos a tu árbol de trabajo cuando regresen a tu sesión.

163 

164Ultrareview usa su propio alcance:

165 

166* **Qué compara**: tu rama actual frente a la rama predeterminada del repositorio, además de los cambios sin commit y los cambios preparados (staged) en el árbol de trabajo

167* **Archivos sensibles**: para los cambios sin commit en archivos con nombres de credenciales o claves, como los archivos `.env` y `*.tfvars`, Claude Code sigue las reglas para [subir un repositorio local a una sesión en la nube](/docs/es/claude-code-on-the-web#send-local-repositories-without-github)

168* **Una base diferente**: pasa un nombre de rama, como `/code-review ultra develop`, para comparar con una base diferente

169 

170Cuando el objetivo es un pull request de `github.com`, puedes hacer que Claude [publique los hallazgos finales en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) como un comentario desde tu cuenta de GitHub. Requiere Claude Code v2.1.227 o posterior.

171 

172<Note>

173 Ultrareview requiere autenticación con una cuenta de claude.ai. No está disponible en Amazon Bedrock, Agent Platform de Google Cloud ni Microsoft Foundry, ni para organizaciones con Zero Data Retention habilitado o con la [configuración HIPAA](/docs/es/hipaa-setup) aplicada. En estos casos, `/code-review ultra` ejecuta una revisión local en tu sesión en su lugar. Las organizaciones que usan [claves de cifrado administradas por el cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) no pueden ejecutar ultrareview. Para revisar tus cambios localmente, ejecuta `/code-review`.

174</Note>

175 

176Para ejecutar una revisión en la nube desde un script o un job de CI, usa el [subcomando `claude ultrareview`](/docs/es/ultrareview#run-ultrareview-non-interactively), que espera los hallazgos y los imprime en stdout.

177 

178<h2 id="change-or-build-on-the-review">

179 Modifica la revisión o construye sobre ella

180</h2>

181 

182`/code-review` es un [skill incluido](/docs/es/skills#bundled-skills): sus instrucciones están integradas en Claude Code, así que no hay ningún archivo `SKILL.md` en disco que abrir o editar. Para darle a cada revisión reglas del proyecto que seguir, agrégalas a tu `CLAUDE.md`. Para ir más allá, empieza desde una de estas páginas:

183 

184* **Reemplazar el comando**: un skill de proyecto o personal llamado `code-review` se ejecuta en lugar del incluido, y el alias `/review` sigue ejecutando la revisión incluida. Consulta [Resolver skills que comparten nombre](/docs/es/skills#resolve-skills-that-share-a-name).

185* **Crear tu propio revisor**: escribe un [subagente](/docs/es/sub-agents) revisor o un [skill](/docs/es/skills) de revisión

186* **Usar un comando cercano**: [`/simplify`](/docs/es/commands) revisa solo para limpieza y aplica sus correcciones, y [`/verify`](/docs/es/commands) ejecuta tu aplicación para confirmar que un cambio funciona

187 

188El comando se llamaba `/simplify` antes de la v2.1.147, cuando aplicaba correcciones de forma predeterminada. Si tenías scripts con `/simplify` para encontrar bugs, cámbialos a `/code-review --fix`.

189 

190<h2 id="related-resources">

191 Recursos relacionados

192</h2>

193 

194* [Code Review](/docs/es/code-review): el servicio administrado que revisa cada pull request en GitHub para tu organización

195* [Ultrareview](/docs/es/ultrareview): configuración, límites y costo de la revisión en la nube más profunda

196* [Comandos](/docs/es/commands): la referencia de una línea para `/code-review`, `/review`, `/simplify` y `/verify`

197* [Skills](/docs/es/skills): cómo funcionan los skills incluidos y cómo escribir los tuyos

code-review-pull-requests.md +169 −0 created

Details

1> ## Documentation Index

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

4 

5# Leer y solicitar revisiones en un pull request

6 

7> Lee los hallazgos de Code Review en tu pull request de GitHub, respóndelos o descártalos, y solicita una revisión con `@claude review`.

8 

9Code Review es un servicio gestionado que un Owner de tu organización de Claude activa para un conjunto de repositorios de GitHub. Una vez activado, Claude revisa los pull requests de esos repositorios y publica sus hallazgos como comentarios en línea, un resumen en el cuerpo de la revisión y un check run llamado **Claude Code Review**. Una revisión nunca aprueba ni bloquea tu pull request, y el check run nunca concluye como fallido.

10 

11Un Owner controla [cuándo se ejecutan las revisiones](/docs/es/code-review-setup#set-when-reviews-run) y [qué tan exhaustivas son](/docs/es/code-review-setup#set-the-default-review-level) para cada repositorio.

12 

13<Note>

14 Si tu plan no incluye Code Review, aún puedes hacer que Claude revise tu rama desde una sesión de Claude Code: consulta [Revisar localmente con `/code-review`](/docs/es/code-review-local).

15</Note>

16 

17<h2 id="severity-levels">

18 Niveles de gravedad

19</h2>

20 

21Claude publica cada hallazgo como un comentario en línea sobre las líneas afectadas y lo marca con uno de tres niveles de gravedad:

22 

23| Marcador | Gravedad | Significado |

24| :- | :- | :- |

25| 🔴 | Important | Un bug que debería corregirse antes de fusionar |

26| 🟡 | Nit | Un problema menor, que vale la pena corregir pero no es bloqueante |

27| 🟣 | Pre-existing | Un bug que existe en la base de código pero que no fue introducido por este PR |

28 

29Cuando la revisión registró su razonamiento, el hallazgo tiene una sección contraída **Why this was flagged**. Expándela para leer por qué Claude señaló el problema y cómo lo verificó.

30 

31Para cambiar lo que Claude señala en tu repositorio o cómo clasifica la gravedad, consulta [Personalizar Code Review](/docs/es/code-review-customize).

32 

33<h2 id="respond-to-findings">

34 Responder a los hallazgos

35</h2>

36 

37Puedes fusionar sin responder a un hallazgo, a menos que las propias reglas de tu repositorio lo exijan. Si su protección de rama [exige la resolución de conversaciones](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-conversation-resolution-before-merging), resuelve el hilo de cada hallazgo antes de fusionar.

38 

39Para eliminar un hallazgo, resuelve su hilo o sube una corrección.

40 

41* **Descartarlo sin cambiar el código**: resuelve el hilo tú mismo en GitHub. Responder por sí solo no descarta un hallazgo.

42* **Corregir el problema**: cambia el código y haz push. La siguiente revisión del pull request resuelve su hilo anterior cuando considera que el problema está corregido, ya sea que esa revisión se ejecute automáticamente con tu push o que la solicites tú.

43* **Explicar o estar en desacuerdo**: responde al comentario. Claude no responde de inmediato, y una respuesta no inicia una revisión. La siguiente revisión del pull request lee las respuestas a sus hallazgos anteriores, y puede resolver el hilo o publicar una respuesta de seguimiento. Si el mismo tipo de hallazgo sigue apareciendo, pídele a un maintainer que agregue una regla a [`REVIEW.md`](/docs/es/code-review-customize#choose-what-to-write-in-review-md).

44 

45Para obtener esa siguiente revisión sin hacer push, comenta `@claude review` como un [comentario de nivel superior en el pull request](#comment-commands).

46 

47<h2 id="check-run-output">

48 Salida del check run

49</h2>

50 

51El enlace **Details** del check run **Claude Code Review** abre los hallazgos en una tabla ordenada por gravedad, incluido cualquier hallazgo cuyo comentario en línea GitHub no aceptó:

52 

53| Gravedad | Archivo:Línea | Problema |

54| - | - | - |

55| 🔴 Important | `src/auth/session.ts:142` | La actualización del token compite con el cierre de sesión, dejando activas sesiones obsoletas |

56| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` devuelve 0 silenciosamente ante una entrada mal formada |

57 

58Un hallazgo que tiene una línea pero que no se publicó como comentario en línea aparece como una anotación en la pestaña **Files changed**, sobre las líneas afectadas. Los hallazgos Important se muestran en rojo, los nits en amarillo y los bugs preexistentes en gris.

59 

60El check run concluye como neutral, o como omitido cuando una revisión automática no se ejecutó porque un push no cambió ningún archivo. Nunca concluye como fallido, así que una revisión terminada no hace fallar un check obligatorio. Si no ves hallazgos, o una revisión no se ejecutó, consulta [Solucionar problemas de Code Review](/docs/es/code-review-troubleshooting).

61 

62<h3 id="read-the-result-from-a-script">

63 Leer el resultado desde un script

64</h3>

65 

66Para condicionar una fusión o publicar un resumen desde tu propio CI, analiza la última línea del texto de Details con `gh` y jq. Esa línea es un comentario legible por máquina.

67 

68<Steps>

69 <Step title="Encuentra el ID del check run">

70 Desde tu shell, lista los check runs del commit y toma el `id` del run `Claude Code Review`. Reemplaza `OWNER` y `REPO` con el propietario y el nombre de tu repositorio, y `<commit-sha>` con el commit head del pull request:

71 

72 ```bash theme={null}

73 gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'

74 ```

75 </Step>

76 

77 <Step title="Lee los conteos de gravedad">

78 Lee los conteos de ese check run, reemplazando `CHECK_RUN_ID` con el ID:

79 

80 ```bash theme={null}

81 gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

82 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

83 ```

84 

85 Esto imprime un objeto JSON con un conteo por gravedad y sus claves en orden alfabético, por ejemplo `{"nit": 1, "normal": 2, "pre_existing": 0}`. Los conteos incluyen hallazgos de revisiones anteriores del pull request cuyos hilos siguen abiertos.

86 </Step>

87 

88 <Step title="Actúa según el resultado">

89 Haz que tu script maneje estos casos:

90 

91 * **`normal` es mayor que cero**: haz fallar el job si quieres condicionar la fusión. La clave `normal` contiene el conteo de hallazgos Important, así que Claude encontró al menos un bug que vale la pena corregir antes de fusionar.

92 * **Falta la línea**: trátalo como ausencia de veredicto y no como cero hallazgos. Un check run de una revisión que falló, agotó el tiempo de espera, fue cancelada o fue reemplazada por una más reciente no tiene esa línea, y algunas revisiones completadas tampoco la tienen.

93 </Step>

94</Steps>

95 

96<h2 id="request-a-review">

97 Solicitar una revisión

98</h2>

99 

100Si tu pull request es un borrador o proviene de un fork, las revisiones automáticas lo omiten, así que [solicita la revisión con un comando de comentario](#review-drafts-and-pull-requests-from-forks). Para obtener una revisión en tu pull request, haz una de estas cosas:

101 

102* **Ábrelo o márcalo como listo**: en un repositorio configurado como **Once after PR creation** o **After every push**, una revisión se inicia cuando abres o reabres el pull request, o marcas un borrador como listo para revisión.

103* **Comenta un comando**: publica [`@claude review`](#comment-commands) en el pull request.

104* **Haz push de un commit**: un push inicia una revisión en un repositorio configurado como **After every push**, o en un pull request que suscribiste con `@claude review always`.

105* **Haz clic en Re-run**: después de que una revisión falle o agote el tiempo de espera en un pull request que no proviene de un fork, [vuelve a ejecutarla](/docs/es/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) desde el check run.

106* **Espera el reintento automático**: una revisión cuya sesión se interrumpió se reintenta una vez automáticamente. El [resumen del check run](/docs/es/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) indica cuándo está ocurriendo esto.

107 

108<h3 id="comment-commands">

109 Comandos de comentario

110</h3>

111 

112Publica uno de estos comandos como comentario en el pull request:

113 

114| Comando | Qué hace | Cuándo usarlo |

115| :- | :- | :- |

116| `@claude review` | Inicia una sola revisión sin suscribir el PR a futuros pushes | Quieres una revisión ahora, por ejemplo en un pull request de un repositorio configurado como Manual, u otra revisión de inmediato en los otros modos |

117| `@claude review always` | Inicia una revisión y suscribe el PR a revisiones activadas por push de ahí en adelante | Quieres que cada push posterior inicie una revisión nueva, por ejemplo en un PR de alta prioridad en un repositorio configurado como Manual |

118| `@claude review once` | Igual que `@claude review`: inicia una sola revisión sin suscribir | Los mismos casos que `@claude review` |

119 

120Para que cualquiera de estos comandos inicie una revisión, deben cumplirse todas estas condiciones:

121 

122* Publícalo como un nuevo comentario de nivel superior en el pull request, no como un comentario en línea sobre una línea del diff ni como el cuerpo de una revisión. Editar un comentario anterior no cuenta.

123* Pon el comando al inicio del comentario, con `always` en la misma línea que el resto del comando. Las mayúsculas y minúsculas no importan.

124* Necesitas permiso de write, maintain o admin en el repositorio. Claude lo verifica con GitHub para cada persona que comenta, y los comentarios de bots no inician revisiones.

125* El pull request debe estar abierto.

126 

127Cuando se acepta el comando, aparece un check run **Claude Code Review** en el pull request con el título **Code review queued...**. El título cambia a **Code review in progress...** cuando la revisión comienza. Claude también puede reaccionar a tu comentario con 👀, pero esa reacción puede aparecer aunque no se inicie ninguna revisión, así que busca el check run en su lugar.

128 

129Si ya hay una revisión en ejecución sobre el último commit del pull request, una nueva solicitud no inicia una segunda.

130 

131<Note>

132 Antes de una actualización de julio de 2026, `@claude review` suscribía el PR a revisiones activadas por push. Si dependías de ese comportamiento, comenta `@claude review always` en su lugar.

133</Note>

134 

135<h3 id="what-a-later-review-covers">

136 Qué cubre una revisión posterior

137</h3>

138 

139Una revisión posterior que se inicia por sí sola, por ejemplo después de un push, se centra en lo que cambió desde la última revisión y publica menos nits y hallazgos preexistentes. Su resumen cuenta lo que omitió, en una línea que termina en "found and not posted" u "outside the scope of this re-review and not posted."

140 

141Para obtener una revisión que no omita nada de esto, comenta [`@claude review`](#comment-commands). Cubre de nuevo todo el pull request.

142 

143<h3 id="review-drafts-and-pull-requests-from-forks">

144 Revisar borradores y pull requests de forks

145</h3>

146 

147Las revisiones automáticas omiten ambos casos, así que solicita la revisión con un comando de comentario:

148 

149* **Pull requests en borrador**: un comando de comentario se ejecuta en un borrador, así que puedes solicitar una revisión antes de marcar el pull request como listo. Los pushes a un borrador no inician revisiones, incluso después de `@claude review always`. La suscripción entra en vigor una vez que marcas el pull request como listo.

150* **Pull requests de forks**: Claude no revisa automáticamente un pull request de un fork, independientemente del ajuste **Review runs** del repositorio. Para iniciar una, comenta `@claude review` en el pull request. Las [condiciones para los comandos de comentario](#comment-commands) siguen aplicando, y el acceso de escritura que necesitas es al repositorio base, no al fork.

151 

152En un pull request de un fork, `@claude review always` también funciona, pero no suscribe el pull request a revisiones en pushes posteriores. Hacer clic en **Re-run** en el check run no inicia una revisión allí.

153 

154<h3 id="use-code-review-alongside-the-claude-code-github-action">

155 Usar Code Review junto con la GitHub Action de Claude Code

156</h3>

157 

158Si el repositorio también ejecuta la [GitHub Action de Claude Code](/docs/es/github-actions) en modo interactivo con su frase de activación predeterminada `@claude`, un comentario `@claude review` también inicia la Action. Para mantener ambas separadas, establece el input `trigger_phrase` de la Action en una frase diferente.

159 

160<h2 id="related-resources">

161 Recursos relacionados

162</h2>

163 

164* [Solucionar problemas de Code Review](/docs/es/code-review-troubleshooting): una revisión que no se inició, falló o se omitió por presupuesto

165* [Code Review](/docs/es/code-review): qué es el servicio y cómo se ejecuta una revisión

166* [Configurar Code Review](/docs/es/code-review-setup): para Owners, activa Code Review y elige cuándo se ejecutan las revisiones y con qué nivel

167* [Personalizar Code Review](/docs/es/code-review-customize): cambia lo que Claude señala con `REVIEW.md` y `CLAUDE.md`

168* [Costos y uso de Code Review](/docs/es/code-review-costs): cómo se facturan las revisiones y dónde se establece el límite de gasto

169* [Revisar localmente con `/code-review`](/docs/es/code-review-local): ejecuta una revisión de tu rama desde una sesión de Claude Code

code-review-setup.md +189 −0 created

Details

1> ## Documentation Index

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

4 

5# Configurar Code Review

6 

7> Activa Code Review para tu organización de Claude: conecta GitHub, instala la Claude GitHub App, elige los repositorios y establece cuándo se ejecutan las revisiones

8 

9Como Owner de tu organización de Claude, activas Code Review en [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) en claude.ai. Las revisiones se ejecutan en la infraestructura de Anthropic, así que no necesitas agregar archivos de workflow a tus repositorios.

10 

11Después de la configuración, eliges qué tan exhaustivas son las revisiones y cuándo se ejecutan en cada repositorio. Gastas más con un nivel de revisión más alto y cuando las revisiones se ejecutan con más frecuencia. Consulta [Costos de Code Review](/docs/es/code-review-costs#pricing).

12 

13<h2 id="what-you-need-to-turn-on-code-review">

14 Lo que necesitas para activar Code Review

15</h2>

16 

17Primero verifica que tu organización [cumpla los requisitos para Code Review](/docs/es/code-review#availability). Luego asegúrate de tener este acceso, o de contar con alguien que lo tenga:

18 

19| Acceso | Necesario para |

20| :- | :- |

21| [Rol de Owner](/docs/es/server-managed-settings#access-control) en tu organización de Claude | Cada paso en la página de administración |

22| Owner de la organización de GitHub | Instalar la Claude GitHub App y [vincularla a tu organización de Claude](/docs/es/admin-setup#connected-github-accounts). Si no eres owner, pide a uno que instale y vincule la app antes de empezar |

23| Acceso de escritura a cada repositorio que agregues, desde la cuenta de GitHub que conectes a Claude | Agregar el repositorio |

24 

25<h2 id="turn-on-code-review">

26 Activar Code Review

27</h2>

28 

29<Steps>

30 <Step title="Haz clic en el interruptor Allow code review">

31 Ve a la sección **Code review** de [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) y haz clic en el interruptor **Allow code review**.

32 

33 Si Code Review se activa de inmediato sin ningún cuadro de diálogo, tu organización ya tiene la Claude GitHub App vinculada o repositorios agregados. Ve a [Agregar más repositorios](#add-more-repositories) y luego vuelve para el último paso.

34 </Step>

35 

36 <Step title="Conecta tu cuenta de GitHub">

37 Si se abre un cuadro de diálogo **Connect GitHub**, haz clic en **Connect**. Si tu organización usa GitHub Enterprise Server, primero selecciona tu instancia en el cuadro de diálogo. GitHub te pide que autorices a Claude y luego te devuelve a la página de administración con el cuadro de diálogo **Add a repository** abierto.

38 

39 Si **Add a repository** se abrió directamente, tu cuenta ya está conectada, así que continúa con el siguiente paso.

40 </Step>

41 

42 <Step title="Instala la Claude GitHub App">

43 Si los repositorios que quieres aparecen en el cuadro de diálogo **Add a repository**, o los encuentras buscándolos ahí, continúa con el siguiente paso. El cuadro de diálogo solo muestra un repositorio si la Claude GitHub App puede acceder a él, así que si no aparecen, instala la app:

44 

45 * Haz clic en **Install GitHub App**. Cuando no hay repositorios en la lista, es un botón en el cuadro de diálogo. De lo contrario, está al final del menú de filtro de organizaciones de GitHub del cuadro de diálogo. La página de instalación de GitHub se abre en una pestaña nueva.

46 * Elige la organización de GitHub a la que pertenecen los repositorios.

47 * Elige a qué repositorios puede acceder la app.

48 * Aprueba los permisos solicitados. El conjunto es más amplio de lo que usa una revisión y lo comparten otras funciones de Claude, como [GitHub Actions](/docs/es/github-actions). Consulta [a qué puede acceder una revisión](/docs/es/code-review#what-a-review-can-access) y la [lista completa de permisos](/docs/es/github-actions#github-app-permissions).

49 * Cuando termina la instalación, la pestaña vuelve a Claude. Si muestra un botón **Finish connecting GitHub**, haz clic en él para vincular la instalación a tu organización de Claude.

50 * Vuelve a la pestaña de la página de administración, donde la lista del cuadro de diálogo se actualiza.

51 </Step>

52 

53 <Step title="Elige los repositorios">

54 Selecciona los repositorios que quieres que se revisen y luego haz clic en **Continue**. Para agregar un repositorio necesitas acceso de escritura a él desde la cuenta de GitHub que conectaste. Puedes [agregar más repositorios](#add-more-repositories) más adelante.

55 </Step>

56 

57 <Step title="Haz clic en Finish">

58 A continuación aparece un cuadro de diálogo **Code review is set up**. Haz clic en **Finish** para activar Code Review. Si cierras el cuadro de diálogo de cualquier otra forma, tus repositorios siguen agregados, pero **Allow code review** sigue desactivado y lo activas desde el interruptor.

59 

60 Cada repositorio empieza configurado para revisar después de cada push, lo que ejecuta la mayor cantidad de revisiones. Para ejecutar menos, [establece cuándo se ejecutan las revisiones](#set-when-reviews-run).

61 </Step>

62 

63 <Step title="Verifica con un pull request de prueba">

64 Abre un pull request de prueba en uno de los repositorios que agregaste y no lo marques como borrador. En pocos minutos aparece un check run llamado **Claude Code Review**. Si ya configuraste el repositorio como **Manual (@claude review)**, comenta `@claude review` en el pull request para iniciar la primera revisión.

65 

66 Si no aparece ningún check run, consulta [No check run appears on the test pull request](/docs/es/code-review-troubleshooting#no-check-run-appears-on-the-test-pull-request).

67 

68 Cuando llegue la revisión, envía a tus desarrolladores [Leer y solicitar revisiones en un pull request](/docs/es/code-review-pull-requests), que explica los niveles de gravedad, los comandos de comentario y cómo responder a los hallazgos.

69 </Step>

70</Steps>

71 

72<h2 id="set-defaults-for-your-organization">

73 Establecer los valores predeterminados de tu organización

74</h2>

75 

76Como Owner, decides qué tan exhaustivas son las revisiones y con qué frecuencia se ejecutan. Ambas opciones están en la sección **Code review** de [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

77 

78<h3 id="set-the-default-review-level">

79 Establecer el nivel de revisión predeterminado

80</h3>

81 

82El nivel de revisión determina qué tan exhaustiva es cada revisión, y una revisión más exhaustiva cuesta más. Estableces un valor predeterminado para la organización y puedes sobrescribirlo para repositorios individuales.

83 

84| Nivel | Qué sacrifica |

85| :- | :- |

86| Quick | Una pasada más ligera. El nivel más rápido, al menor costo |

87| Standard | Equilibrio entre profundidad, velocidad y costo. El nivel predeterminado |

88| Deep | La pasada más exhaustiva. Es la que más tarda y la que más cuesta |

89 

90* **Valor predeterminado de la organización**: selecciona un nivel en **Review level** y confirma con **Change level**. Todos los repositorios lo usan, a menos que le asignes a un repositorio su propio nivel.

91* **Un repositorio**: haz clic en **Edit** en la fila del repositorio y luego selecciona un **Review level** ahí. La primera opción, **Default**, sigue a la organización. El nivel se guarda en cuanto lo seleccionas.

92 

93Un nivel nuevo se aplica a las revisiones que comienzan después del cambio. Para conocer qué más determina el costo de cada revisión, consulta [Costos y uso de Code Review](/docs/es/code-review-costs).

94 

95<h3 id="set-when-reviews-run">

96 Establecer cuándo se ejecutan las revisiones

97</h3>

98 

99Cada repositorio tiene su propio ajuste **Review runs**, que decide cuándo se revisan sus pull requests.

100 

101* **Once after PR creation**: se ejecuta una revisión cuando se abre o se vuelve a abrir un pull request, o cuando se marca como listo para revisión

102* **After every push**: se ejecuta una revisión con cada push a la rama del pull request, lo que detecta problemas nuevos a medida que el pull request evoluciona y resuelve automáticamente los hilos cuando corriges los problemas señalados

103* **Manual (@claude review)**: abrir un pull request o hacer push a él no inicia una revisión. Comenta [`@claude review`](/docs/es/code-review-pull-requests#comment-commands) para solicitar una, o `@claude review always` para además suscribir el pull request a revisiones en los pushes posteriores.

104 

105Manual es útil en repositorios con mucho tráfico donde quieres incluir pull requests específicos en la revisión, o para empezar a revisar los pull requests solo cuando estén listos. Para comparar cómo afecta cada opción al gasto, consulta [Con qué frecuencia se ejecutan las revisiones](/docs/es/code-review-costs#how-often-reviews-run).

106 

107Para cambiar el ajuste, haz clic en **Edit** en la fila del repositorio en la tabla **Repositories** y selecciona una opción de **Review runs**. La elección se guarda en cuanto la seleccionas, y la columna **Review runs** de la tabla la muestra abreviada como Once per PR, Every push o Manual.

108 

109* **Borradores y pull requests desde forks**: sin importar la opción que elijas, [las revisiones automáticas omiten ambos](/docs/es/code-review-pull-requests#review-drafts-and-pull-requests-from-forks)

110* **Repositorios nuevos**: un repositorio que agregas desde el cuadro de diálogo **Add a repository** empieza en **After every push**. Si su organización de GitHub está [cubierta en su totalidad](#cover-a-whole-github-organization), toma en su lugar el ajuste de la fila de esa organización.

111 

112<h3 id="turn-tip-comments-on-or-off">

113 Activar o desactivar los comentarios de sugerencia

114</h3>

115 

116Un comentario de sugerencia es un comentario breve que Claude publica en un pull request cuando no se inicia ninguna revisión, indicando el motivo y qué hacer a continuación. **Show tips on pull requests** está activado de forma predeterminada. Con esta opción activada, Claude publica una sugerencia en cada uno de estos casos, explicando:

117 

118* **El repositorio está configurado como Manual**: cómo solicitar una revisión con un comentario

119* **El pull request proviene de un fork**: que un maintainer puede solicitar la revisión

120* **Un bot, o alguien sin acceso de escritura, comenta `@claude review`**: que no se inició ninguna revisión y quién puede solicitarla

121* **La organización de GitHub no está vinculada a tu organización de Claude**: que las revisiones están en pausa y cómo vincularla

122 

123Desactiva el ajuste para dejar de publicar estos comentarios.

124 

125<h3 id="what-developers-can-change">

126 Lo que pueden cambiar los desarrolladores

127</h3>

128 

129Los desarrolladores acuden a ti para cambiar el nivel de revisión, el ajuste **Review runs** o qué repositorios reciben revisiones. Desde GitHub, sin el rol de Owner, pueden hacer lo siguiente:

130 

131* **Solicitar una revisión**: comentar [`@claude review`](/docs/es/code-review-pull-requests#comment-commands) en un pull request. Esto requiere acceso de escritura al repositorio y funciona en [borradores y pull requests desde forks](/docs/es/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), que las revisiones automáticas omiten.

132* **Suscribir un pull request a una revisión en cada push**: comentar `@claude review always` en un pull request que no sea [un borrador ni provenga de un fork](/docs/es/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), por ejemplo en un repositorio configurado como Manual

133* **Cambiar lo que señalan las revisiones**: hacer commit de [archivos `REVIEW.md` y `CLAUDE.md`](/docs/es/code-review-customize) en el repositorio, por ejemplo para agregar una comprobación

134 

135Las revisiones que solicitan los desarrolladores se [facturan a tu organización](/docs/es/code-review-costs#pricing). Para limitar lo que gasta Code Review en un mes, consulta [Limitar tu gasto](/docs/es/code-review-costs#limit-your-spend).

136 

137<h2 id="manage-repositories">

138 Administrar repositorios

139</h2>

140 

141Puedes agregar repositorios uno por uno o cubrir toda una organización de GitHub a la vez, y detener las revisiones donde no las quieras.

142 

143<h3 id="add-more-repositories">

144 Agregar más repositorios

145</h3>

146 

147Para agregar repositorios después de la configuración, haz clic en **Add** encima de la tabla **Repositories** en la sección **Code review**. Se abre el cuadro de diálogo **Add a repository**. Selecciona los repositorios y haz clic en **Continue**.

148 

149* **Un repositorio no aparece en la lista**: consulta [A repository isn't listed in Add a repository](/docs/es/code-review-troubleshooting#a-repository-isn’t-listed-in-add-a-repository).

150* **Quieres todos los repositorios de una organización de GitHub**: [cubre la organización](#cover-a-whole-github-organization) en lugar de seleccionar los repositorios uno por uno

151 

152<h3 id="cover-a-whole-github-organization">

153 Cubrir toda una organización de GitHub

154</h3>

155 

156Para activar Code Review en todos los repositorios de una organización de GitHub, establece **Review runs** en la fila de la organización en la tabla **Repositories**. Eso cubre todos los repositorios de esa organización a los que puede acceder la Claude GitHub App, incluidos los repositorios que se agreguen más adelante. Esto puede aumentar el gasto considerablemente. Requiere todo lo siguiente:

157 

158* La cuenta de GitHub que conectaste a Claude es owner de esa organización de GitHub.

159* La organización está en github.com. Las instancias de GitHub Enterprise Server y las cuentas personales de GitHub no cumplen los requisitos.

160* Hay un [límite de gasto mensual](/docs/es/code-review-costs#limit-your-spend) establecido, para tu organización de Claude o para Code Review.

161 

162Para cubrir la organización, haz clic en **Edit** en su fila, selecciona una opción de **Review runs** y confirma. Las opciones son las tres de [Establecer cuándo se ejecutan las revisiones](#set-when-reviews-run) más **Off**.

163 

164Después de confirmar, estos cambios entran en vigor:

165 

166* **Cobertura**: cada repositorio queda cubierto a partir de su siguiente pull request. Si la Claude GitHub App se instaló en repositorios seleccionados en lugar de en todos, Claude revisa esos repositorios; cambia el acceso a repositorios de la app en GitHub para cubrir el resto.

167* **Ajustes existentes**: todos los repositorios de esa organización de GitHub toman la opción que seleccionas, incluidos los repositorios que habías configurado individualmente. Volver a establecer la fila tiene el mismo efecto. Los repositorios que desactivaste en sus propias filas siguen desactivados.

168* **Cambios individuales posteriores**: un repositorio que luego configures de forma distinta a su organización se marca como **Custom** en la tabla.

169* **Nivel de revisión**: una fila de organización no tiene un nivel de revisión propio.

170 

171<h3 id="turn-off-code-review-or-remove-a-repository">

172 Desactivar Code Review o quitar un repositorio

173</h3>

174 

175En la sección **Code review** de [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review), elige el control que corresponda a lo que quieres detener:

176 

177* **Un repositorio, manteniéndolo en la lista**: haz clic en **Edit** en su fila y desactiva **Code review**. La tabla muestra el repositorio como Off.

178* **Un repositorio, quitándolo**: haz clic en **Edit** en su fila y luego en **Remove repository** al final del cuadro de diálogo. Las revisiones se detienen ahí, y otra organización de Claude puede entonces configurar ese repositorio. Mientras la organización de GitHub del repositorio esté cubierta en su totalidad, no puedes quitarlo; en su lugar, desactiva su interruptor **Code review**.

179* **Toda una organización de GitHub**: haz clic en **Edit** en la fila de la organización y selecciona **Off**. Esto también desactiva los repositorios de esa organización que agregaste uno por uno.

180* **Todo**: desactiva **Allow code review**. No se inician revisiones nuevas en ningún repositorio, y tu lista de repositorios se conserva para que puedas volver a activarlo más adelante.

181 

182<h2 id="related-resources">

183 Recursos relacionados

184</h2>

185 

186* [Costos y uso de Code Review](/docs/es/code-review-costs): cómo afectan al gasto el nivel de revisión y el momento en que se ejecutan las revisiones, cómo establecer un límite de gasto y dónde ver el uso

187* [Leer y solicitar revisiones en un pull request](/docs/es/code-review-pull-requests): lo que ven los desarrolladores en un pull request y los comandos de comentario

188* [Personalizar Code Review](/docs/es/code-review-customize): ajusta lo que señala Claude con `REVIEW.md` y `CLAUDE.md`

189* [GitHub Enterprise Server](/docs/es/github-enterprise-server): conecta una instancia de GitHub autoalojada antes de la configuración

code-review-troubleshooting.md +113 −0 created

Details

1> ## Documentation Index

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

4 

5# Solución de problemas de Code Review

6 

7> Corrige una revisión de Code Review que no se inició, falló o se omitió por presupuesto, encuentra hallazgos que faltan y resuelve problemas de configuración y de `REVIEW.md`.

8 

9Cuando [Code Review](/docs/es/code-review) no hace lo que esperas en un pull request, empieza por el check run **Claude Code Review**. Su título indica hasta dónde llegó la revisión.

10 

11<h2 id="check-how-far-the-review-got">

12 Comprueba hasta dónde llegó la revisión

13</h2>

14 

15Busca el check run **Claude Code Review** en tu pull request y luego compara su título con uno de estos títulos comunes:

16 

17| Título del check run | Qué significa | Qué hacer |

18| :- | :- | :- |

19| **Code review queued...** o **Code review in progress...** | La revisión no ha terminado | Espera a que cambie el título |

20| **Code review found no issues** | La revisión terminó y no encontró nada que señalar | Nada |

21| Un título que dice que se encontraron problemas | La revisión terminó con hallazgos | Si no los ves en el diff, consulta [Encuentra problemas que no aparecen como comentarios en línea](#find-issues-that-aren’t-showing-as-inline-comments) |

22| **Code review skipped — no new changes** | No se ejecutó una revisión automática en tu último push | Para obtener una revisión de todos modos, comenta `@claude review` |

23| **Code review failed** o **Code review timed out** | La revisión no terminó | Para ejecutarla de nuevo, consulta [Vuelve a iniciar una revisión que falló o agotó el tiempo de espera](#retrigger-a-failed-or-timed-out-review) |

24| **Code review declined** | La revisión no se ejecutó | Lee el resumen del check run. Si menciona un presupuesto o un límite de gasto, consulta [La revisión no se ejecutó y el PR muestra un mensaje de presupuesto](#review-didn’t-run-and-the-pr-shows-a-budget-message) |

25| Ningún check run | No se inició ninguna revisión | Comenta `@claude review`. Si después de eso no aparece ningún check run, consulta [Un comando en un comentario no inició una revisión](#a-comment-command-didn’t-start-a-review) |

26 

27<h2 id="a-review-didn’t-start">

28 Una revisión no se inició

29</h2>

30 

31Revisa estos casos cuando no aparece ningún check run **Claude Code Review**, o cuando Claude publica un comentario que dice que se omitió la revisión.

32 

33<h3 id="a-comment-command-didn’t-start-a-review">

34 Un comando en un comentario no inició una revisión

35</h3>

36 

37Después de comentar `@claude review`, busca en el pull request un check run **Claude Code Review** con el título **Code review queued...** o **Code review in progress...**. Una reacción 👀 en tu comentario no confirma que se vaya a realizar una revisión. Si no aparece ningún check run, comprueba cada una de estas causas:

38 

39* **Code Review no está activado para este repositorio**: Claude no publica ningún comentario ni check run en respuesta al comando. Pide a un Owner que [agregue el repositorio](/docs/es/code-review-setup#add-more-repositories).

40* **El comentario no cumple una condición**: era un comentario en línea o el cuerpo de una revisión en lugar de un nuevo comentario de nivel superior, o el comando no estaba al inicio del comentario. Editar un comentario anterior en lugar de publicar uno nuevo tampoco cuenta, y el pull request tiene que estar abierto. Consulta las [condiciones para los comandos en comentarios](/docs/es/code-review-pull-requests#comment-commands) y publica un nuevo comentario que las cumpla.

41* **No tienes acceso de escritura**: necesitas permiso de escritura, mantenimiento o administración en el repositorio, y en un pull request desde un fork el permiso que cuenta es el del repositorio base. Si tu organización tiene activadas las sugerencias, Claude responde "No review was started: manual reviews can only be requested by someone with write access to this repository." Pide a alguien con acceso de escritura que comente en tu lugar.

42* **Se agotó el presupuesto**: Claude publica un comentario que empieza con "⚠️ Code review skipped". Consulta [La revisión no se ejecutó y el PR muestra un mensaje de presupuesto](#review-didn’t-run-and-the-pr-shows-a-budget-message).

43 

44<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">

45 La revisión no se ejecutó y el PR muestra un mensaje de presupuesto

46</h3>

47 

48Cuando el presupuesto de tu organización no puede cubrir una revisión, Code Review omite la revisión y Claude publica en el pull request un comentario que empieza con "⚠️ Code review skipped". En algunos de estos casos también aparece un check run con el título **Code review declined**.

49 

50El comentario enlaza a [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage), donde un administrador restablece el presupuesto. Su redacción te indica qué límite se alcanzó:

51 

52* **"has reached its monthly code review spending cap"**: se alcanzó el [límite de gasto mensual de Code Review](/docs/es/code-review-costs#limit-your-spend). Las revisiones se reanudan al inicio del siguiente período de facturación. Para obtenerlas antes, pide a un administrador que aumente el límite.

53* **"has no extra usage available to pay for this review"**: el saldo de [créditos de uso](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) de tu organización está vacío, o se alcanzó su límite de gasto mensual general. Pide a un administrador que agregue créditos de uso o que aumente ese límite.

54* **"is too low to start another review"**: lo que queda del presupuesto o del saldo es menor que el costo esperado de una revisión. Pide a un administrador que aumente el límite o que agregue créditos de uso.

55 

56Después de restablecer el presupuesto, comenta `@claude review` en el pull request para obtener la revisión que se omitió. Se aplican las [condiciones para los comandos en comentarios](/docs/es/code-review-pull-requests#comment-commands), por lo que quien comenta necesita acceso de escritura.

57 

58<h2 id="retrigger-a-failed-or-timed-out-review">

59 Vuelve a iniciar una revisión que falló o agotó el tiempo de espera

60</h2>

61 

62Si el resumen del check run dice "The review session was interrupted before it could finish. A new review of this commit has been queued automatically.", no necesitas hacer nada. Esa revisión se reintenta una vez de forma automática.

63 

64De lo contrario, cuando el título del check run es **Code review failed** o **Code review timed out**, ejecuta la revisión de nuevo con un comentario o una nueva ejecución:

65 

66* **Comenta `@claude review`**: publícalo como comentario de nivel superior en el pull request. Esto inicia una revisión nueva sin suscribir el pull request a futuros pushes.

67* **Haz clic en Re-run**: si el pull request no es [desde un fork](/docs/es/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), haz clic en **Re-run** en el check **Claude Code Review** de la pestaña **Checks** de GitHub. La nueva ejecución abarca el commit head actual del pull request y tampoco suscribe el pull request.

68 

69<h2 id="find-issues-that-aren’t-showing-as-inline-comments">

70 Encuentra problemas que no aparecen como comentarios en línea

71</h2>

72 

73Si el título del check run dice que se encontraron problemas pero no ves comentarios de revisión en línea en el diff, busca en estas otras ubicaciones donde se muestran los hallazgos:

74 

75* **Details del check run**: haz clic en **Details** junto al check **Claude Code Review** en la pestaña **Checks**. La tabla de severidad enumera los hallazgos con su archivo, línea y resumen, independientemente de si se aceptó el comentario en línea.

76* **Anotaciones en Files changed**: abre la pestaña **Files changed** del PR. Un hallazgo que tiene una línea pero que no se publicó como comentario en línea aparece allí como una anotación en las líneas correspondientes.

77* **Cuerpo de la revisión**: los hallazgos que no tienen ubicación en línea, o que quedan fuera del diff actual, aparecen bajo un encabezado **Additional findings** en el cuerpo de la revisión.

78 

79<h2 id="the-check-run-mentions-review-md">

80 El check run menciona REVIEW\.md

81</h2>

82 

83Dos de los mensajes que un check run puede incluir sobre `REVIEW.md` tienen que ver con la protección de ramas:

84 

85* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: la revisión leyó solo el archivo de la raíz. Consulta [De qué rama se lee REVIEW.md](/docs/es/code-review-customize#which-branch-review-md-is-read-from) para saber qué cambia al proteger la rama.

86* **"were not applied to this review: branch protection could not be confirmed"**: la revisión no leyó ningún `REVIEW.md`.

87 

88<h2 id="setup-problems">

89 Problemas de configuración

90</h2>

91 

92Estos casos se le presentan a un Owner mientras [configura Code Review](/docs/es/code-review-setup).

93 

94<h3 id="a-repository-isn’t-listed-in-add-a-repository">

95 Un repositorio no aparece en Add a repository

96</h3>

97 

98Primero busca el repositorio por nombre, porque el cuadro de diálogo no carga una lista larga completa. El cuadro de diálogo muestra un repositorio solo si la Claude GitHub App puede acceder a él. Haz clic en **Install GitHub App** y dale a la app acceso al repositorio. Cuando no aparece ningún repositorio, **Install GitHub App** es un botón en el cuadro de diálogo. De lo contrario, está al final del menú de filtro de organizaciones de GitHub del cuadro de diálogo.

99 

100<h3 id="no-check-run-appears-on-the-test-pull-request">

101 No aparece ningún check run en el pull request de prueba

102</h3>

103 

104Confirma que **Allow code review** esté activado, que el repositorio aparezca en **Repositories** en la sección **Code review** y que la Claude GitHub App tenga acceso a él. Las revisiones automáticas omiten los pull requests en borrador, y un repositorio configurado como **Manual (@claude review)** necesita un comentario `@claude review` para iniciar la primera revisión.

105 

106<h2 id="related-resources">

107 Recursos relacionados

108</h2>

109 

110* [Lee y solicita revisiones en un pull request](/docs/es/code-review-pull-requests): qué significan los hallazgos y el check run, y los comandos en comentarios

111* [Configura Code Review](/docs/es/code-review-setup): para Owners, activa Code Review y administra repositorios

112* [Costos y uso de Code Review](/docs/es/code-review-costs): los límites de gasto detrás de un mensaje de presupuesto

113* [Personaliza Code Review](/docs/es/code-review-customize): qué copia de `REVIEW.md` lee una revisión

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/es/skills#bundled-skills).** Carga material de referencia de la [API de Claude](https://platform.claude.com/docs/en/api/overview) y de [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para el lenguaje de tu proyecto. También se activa automáticamente cuando tu código importa `anthropic` o `@anthropic-ai/sdk`. Para saber qué hace cada subcomando y la versión que requiere, consulta [Trabajar en proyectos de la API de Claude](/docs/es/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/es/skills#bundled-skills).** Carga material de referencia de la [API de Claude](https://platform.claude.com/docs/en/api/overview) y de [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) para el lenguaje de tu proyecto. También se activa automáticamente cuando tu código importa `anthropic` o `@anthropic-ai/sdk`. Para saber qué hace cada subcomando y la versión que requiere, consulta [Trabajar en proyectos de la API de Claude](/docs/es/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/es/skills#bundled-skills).** Haz que Claude realice una tarea en tu navegador, como probar una página, completar un formulario o leer los registros de la consola, a través de [Claude in Chrome](/docs/es/chrome). Disponible cuando la integración con Chrome está habilitada para la sesión, por ejemplo con `claude --chrome`, o cuando Claude Code puede ofrecer [instalar la extensión](/docs/es/chrome#install-the-extension-when-claude-asks) |73| `/claude-in-chrome [task]` | **[Skill](/docs/es/skills#bundled-skills).** Haz que Claude realice una tarea en tu navegador, como probar una página, completar un formulario o leer los registros de la consola, a través de [Claude in Chrome](/docs/es/chrome). Disponible cuando la integración con Chrome está habilitada para la sesión, por ejemplo con `claude --chrome`, o cuando Claude Code puede ofrecer [instalar la extensión](/docs/es/chrome#install-the-extension-when-claude-asks) |

74| `/clear [name]` | Inicia una nueva conversación con el contexto vacío. Pasa un nombre para etiquetar la conversación anterior en el selector de `/resume`. Para liberar contexto sin dejar la misma conversación, usa `/compact` en su lugar. Reanuda la conversación anterior con `/resume` o, en el mismo proceso de Claude Code, restáurala desde [la entrada de sesión anterior del menú de rewind](/docs/es/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |74| `/clear [name]` | Inicia una nueva conversación con el contexto vacío. Pasa un nombre para etiquetar la conversación anterior en el selector de `/resume`. Para liberar contexto sin dejar la misma conversación, usa `/compact` en su lugar. Reanuda la conversación anterior con `/resume` o, en el mismo proceso de Claude Code, restáurala desde [la entrada de sesión anterior del menú de rewind](/docs/es/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el diff actual, o un número de PR, una rama o una ruta que pases, en busca de errores de corrección. Según tu modelo y tu nivel de esfuerzo, la revisión también cubre oportunidades de limpieza. Pasa `--fix` para aplicar los hallazgos, `--comment` para publicarlos en el PR de GitHub o en el merge request de GitLab, o `ultra` para ejecutar una [revisión en la nube](/docs/es/ultrareview) profunda. Publicar en un merge request de GitLab requiere Claude Code v2.1.257 o posterior. Con `ultra` sobre un PR de `github.com` como destino, pasa `--post` para preseleccionar [publicar los hallazgos terminados en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) en el diálogo de inicio; `--post` requiere Claude Code v2.1.227 o posterior. Consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally) para conocer los niveles de esfuerzo, cómo elegir el destino y cómo se relaciona con `/simplify`. Alias: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/es/skills#bundled-skills).** Revisa el diff actual, o un número de PR, una rama o una ruta que pases, en busca de errores de corrección. Según tu modelo y tu nivel de esfuerzo, la revisión también cubre oportunidades de limpieza. Pasa `--fix` para que Claude aplique los hallazgos, `--comment` para publicarlos en el PR de GitHub o en el merge request de GitLab, o `ultra` para ejecutar una [revisión en la nube](/docs/es/ultrareview) profunda. Publicar en un merge request de GitLab requiere Claude Code v2.1.257 o posterior. Con `ultra` sobre un PR de `github.com` como destino, pasa `--post` para preseleccionar [publicar los hallazgos terminados en el PR](/docs/es/ultrareview#post-findings-to-the-pull-request) en el diálogo de inicio; `--post` requiere Claude Code v2.1.227 o posterior. Consulta [Revisar localmente con `/code-review`](/docs/es/code-review-local) para conocer los niveles de esfuerzo, cómo elegir el destino y cómo se relaciona con `/simplify`. Alias: `/review` |

76| `/color [color\|default]` | Establece el color de la barra del prompt para la sesión actual. Colores disponibles: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` para restablecerlo, o ejecútalo sin argumento para elegir un color aleatorio. Cuando [Remote Control](/docs/es/remote-control) está conectado, el color se sincroniza con claude.ai/code. También disponible en modo no interactivo (`-p`) |76| `/color [color\|default]` | Establece el color de la barra del prompt para la sesión actual. Colores disponibles: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usa `default` para restablecerlo, o ejecútalo sin argumento para elegir un color aleatorio. Cuando [Remote Control](/docs/es/remote-control) está conectado, el color se sincroniza con claude.ai/code. También disponible en modo no interactivo (`-p`) |

77| `/compact [instructions]` | Libera contexto resumiendo la conversación hasta el momento. Opcionalmente, pasa instrucciones de enfoque para el resumen. Consulta [cómo la compactación maneja las reglas, los skills y los archivos de memoria](/docs/es/context-window#what-survives-compaction) |77| `/compact [instructions]` | Libera contexto resumiendo la conversación hasta el momento. Opcionalmente, pasa instrucciones de enfoque para el resumen. Consulta [cómo la compactación maneja las reglas, los skills y los archivos de memoria](/docs/es/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Abre la interfaz de [Configuración](/docs/es/settings) para ajustar el tema, el modelo, el [estilo de salida](/docs/es/output-styles) y otras preferencias. Pasa uno o más pares `key=value` para establecer un ajuste directamente sin abrir la interfaz, por ejemplo `/config thinking=false`, `/config theme=dark` o `/config model=sonnet`. La forma `key=value` también funciona en modo no interactivo (`-p`) y desde la app móvil de Claude a través de [Remote Control](/docs/es/remote-control). La forma `key=value` no puede activar un ajuste que necesite tu confirmación en el panel, como [`autoContinueAtUsageLimit`](/docs/es/interactive-mode#turn-automatic-continue-off), aunque sí puede desactivarlo. Ejecuta `/config --help` para enumerar las claves que acepta. Alias: `/settings` |78| `/config [key=value ...]` | Abre la interfaz de [Configuración](/docs/es/settings) para ajustar el tema, el modelo, el [estilo de salida](/docs/es/output-styles) y otras preferencias. Pasa uno o más pares `key=value` para establecer un ajuste directamente sin abrir la interfaz, por ejemplo `/config thinking=false`, `/config theme=dark` o `/config model=sonnet`. La forma `key=value` también funciona en modo no interactivo (`-p`) y desde la app móvil de Claude a través de [Remote Control](/docs/es/remote-control). La forma `key=value` no puede activar un ajuste que necesite tu confirmación en el panel, como [`autoContinueAtUsageLimit`](/docs/es/interactive-mode#turn-automatic-continue-off), aunque sí puede desactivarlo. Ejecuta `/config --help` para enumerar las claves que acepta. Alias: `/settings` |


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

135| `/rename [name]` | Cambia el nombre de la sesión actual y muestra el nombre en la barra del prompt. Sin un nombre, genera uno automáticamente a partir del historial de la conversación. También disponible en modo no interactivo (`-p`). Desde cualquier superficie de cambio de nombre, incluidos claude.ai y la app de escritorio, Claude Code reemplaza los caracteres de control e invisibles del nuevo nombre por espacios y limita el nombre a 200 caracteres. Si el nombre queda vacío una vez eliminados los caracteres invisibles, Claude Code lo rechaza y muestra `That name is empty once invisible characters are removed. Usage: /rename <name>`. El reemplazo de caracteres y el límite de longitud requieren Claude Code v2.1.221 o posterior |135| `/rename [name]` | Cambia el nombre de la sesión actual y muestra el nombre en la barra del prompt. Sin un nombre, genera uno automáticamente a partir del historial de la conversación. También disponible en modo no interactivo (`-p`). Desde cualquier superficie de cambio de nombre, incluidos claude.ai y la app de escritorio, Claude Code reemplaza los caracteres de control e invisibles del nuevo nombre por espacios y limita el nombre a 200 caracteres. Si el nombre queda vacío una vez eliminados los caracteres invisibles, Claude Code lo rechaza y muestra `That name is empty once invisible characters are removed. Usage: /rename <name>`. El reemplazo de caracteres y el límite de longitud requieren Claude Code v2.1.221 o posterior |

136| `/resume [session]` | Reanuda una conversación por ID o nombre, o abre el selector de sesiones. Las [sesiones en segundo plano](/docs/es/agent-view) aparecen en el selector marcadas con `bg`. Reanudar una que todavía se está ejecutando, desde el selector o por ID o nombre, [abre esa sesión](/docs/es/sessions#resume-a-running-background-session): tu conversación actual pasa a segundo plano y esta terminal se adjunta a la que está en ejecución. Presiona `←` en un prompt vacío para volver a la vista de agentes, que también enumera la conversación que dejaste. Antes de v2.1.285, Claude Code se negaba y te indicaba que abrieras la sesión con `claude attach` o que primero la detuvieras. Alias: `/continue` |136| `/resume [session]` | Reanuda una conversación por ID o nombre, o abre el selector de sesiones. Las [sesiones en segundo plano](/docs/es/agent-view) aparecen en el selector marcadas con `bg`. Reanudar una que todavía se está ejecutando, desde el selector o por ID o nombre, [abre esa sesión](/docs/es/sessions#resume-a-running-background-session): tu conversación actual pasa a segundo plano y esta terminal se adjunta a la que está en ejecución. Presiona `←` en un prompt vacío para volver a la vista de agentes, que también enumera la conversación que dejaste. Antes de v2.1.285, Claude Code se negaba y te indicaba que abrieras la sesión con `claude attach` o que primero la detuvieras. Alias: `/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/es/code-review#review-a-diff-locally): revisa el diff actual, o un número de PR, una rama o una ruta que pases, como `/review 1234`, y admite los mismos niveles de esfuerzo y flags. Si no se indica un nivel, la revisión reutiliza el último nivel de `low` a `max` que escribiste; consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally) para conocer las reglas exactas. Para una revisión profunda en la nube, usa [`/code-review ultra`](/docs/es/ultrareview). Antes de v2.1.223, `/review` era un comando independiente que ejecutaba una revisión de una sola pasada y de solo lectura de un pull request de GitHub por número, y enumeraba los PR abiertos para elegir cuando se ejecutaba sin argumento; de v2.1.186 a v2.1.201, ejecutaba el mismo motor multiagente que `/code-review medium` |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias de [`/code-review`](/docs/es/code-review-local): revisa el diff actual, o un número de PR, una rama o una ruta que pases, como `/review 1234`, y admite los mismos niveles de esfuerzo y flags. Si no se indica un nivel, la revisión reutiliza el último nivel de `low` a `max` que escribiste; consulta [Revisar localmente con `/code-review`](/docs/es/code-review-local) para conocer las reglas exactas. Para una revisión profunda en la nube, usa [`/code-review ultra`](/docs/es/ultrareview). Antes de v2.1.223, `/review` era un comando independiente que ejecutaba una revisión de una sola pasada y de solo lectura de un pull request de GitHub por número, y enumeraba los PR abiertos para elegir cuando se ejecutaba sin argumento; de v2.1.186 a v2.1.201, ejecutaba el mismo motor multiagente que `/code-review medium` |

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

139| `/run` | **[Skill](/docs/es/skills#bundled-skills).** Inicia y maneja la app de tu proyecto para ver un cambio funcionando, no solo pasando las pruebas. Consulta [Ejecutar y verificar tu app](/docs/es/skills#run-and-verify-your-app) |139| `/run` | **[Skill](/docs/es/skills#bundled-skills).** Inicia y maneja la app de tu proyecto para ver un cambio funcionando, no solo pasando las pruebas. Consulta [Ejecutar y verificar tu app](/docs/es/skills#run-and-verify-your-app) |

140| `/run-skill-generator` | **[Skill](/docs/es/skills#bundled-skills).** Enséñales a `/run` y `/verify` cómo compilar, iniciar y manejar la app de tu proyecto desde un entorno limpio escribiendo un [skill](/docs/es/skills#run-and-verify-your-app) por proyecto |140| `/run-skill-generator` | **[Skill](/docs/es/skills#bundled-skills).** Enséñales a `/run` y `/verify` cómo compilar, iniciar y manejar la app de tu proyecto desde un entorno limpio escribiendo un [skill](/docs/es/skills#run-and-verify-your-app) por proyecto |

desktop.md +257 −3

Details

207* Haz clic en **Walk through in diff** para abrir la vista de diff y recorrer los hallazgos uno por uno. Un hallazgo en el diff actual aparece en su línea, donde puedes hacer clic en **Fix this one** o descartarlo.207* Haz clic en **Walk through in diff** para abrir la vista de diff y recorrer los hallazgos uno por uno. Un hallazgo en el diff actual aparece en su línea, donde puedes hacer clic en **Fix this one** o descartarlo.

208* Haz clic en **Apply fixes** para pedirle a Claude que corrija los hallazgos que siguen abiertos.208* Haz clic en **Apply fixes** para pedirle a Claude que corrija los hallazgos que siguen abiertos.

209 209 

210En cualquier sesión, también puedes pedirle a Claude en el cuadro de prompt que corrija lo que encontró la revisión. Para saber qué busca `/code-review` y qué argumentos acepta, consulta [Revisar un diff localmente](/docs/es/code-review#review-a-diff-locally).210En cualquier sesión, también puedes pedirle a Claude en el cuadro de prompt que corrija lo que encontró la revisión. Para saber qué busca `/code-review` y qué argumentos acepta, consulta [Revisar localmente con `/code-review`](/docs/es/code-review-local).

211 211 

212<h3 id="monitor-pull-request-status">212<h3 id="monitor-pull-request-status">

213 Monitorear el estado del pull request213 Monitorear el estado del pull request


859* **Sesiones por conexión**: Desktop en macOS y Linux abre varias sesiones en una sola conexión SSH. Si el `sshd_config` del servidor establece `MaxSessions 1`, auméntalo, por ejemplo al valor predeterminado de OpenSSH, 10.859* **Sesiones por conexión**: Desktop en macOS y Linux abre varias sesiones en una sola conexión SSH. Si el `sshd_config` del servidor establece `MaxSessions 1`, auméntalo, por ejemplo al valor predeterminado de OpenSSH, 10.

860* **Carpeta de instalación**: Desktop instala un programa auxiliar y Claude Code en `~/.claude/remote/` dentro de tu directorio home. Los ejecuta desde allí, por lo que esa carpeta no puede estar en un sistema de archivos montado con `noexec`. Reserva aproximadamente 1 GB de espacio en disco en el directorio home de cada usuario que se conecte. Para saber qué contiene esa carpeta, consulta [Archivos y procesos en la máquina remota](#files-and-processes-on-the-remote-machine).860* **Carpeta de instalación**: Desktop instala un programa auxiliar y Claude Code en `~/.claude/remote/` dentro de tu directorio home. Los ejecuta desde allí, por lo que esa carpeta no puede estar en un sistema de archivos montado con `noexec`. Reserva aproximadamente 1 GB de espacio en disco en el directorio home de cada usuario que se conecte. Para saber qué contiene esa carpeta, consulta [Archivos y procesos en la máquina remota](#files-and-processes-on-the-remote-machine).

861* **Shell**: el shell establecido para tu cuenta en la máquina remota tiene que ejecutar los comandos enviados a través de SSH, como lo hacen Bash, Zsh y `sh`861* **Shell**: el shell establecido para tu cuenta en la máquina remota tiene que ejecutar los comandos enviados a través de SSH, como lo hacen Bash, Zsh y `sh`

862* **Red**: Claude Code se ejecuta en la máquina remota y realiza sus solicitudes de red desde allí, por lo que la máquina necesita el [acceso a la red que requiere Claude Code](/docs/es/network-config#network-access-requirements). Si la máquina no puede descargar Claude Code, Desktop lo descarga en tu computadora y lo sube. Las demás solicitudes de Claude Code siguen saliendo desde la máquina remota.862* **Red**: Claude Code se ejecuta en la máquina remota y realiza sus solicitudes de red desde allí, por lo que la máquina necesita el [acceso a la red que requiere Claude Code](/docs/es/network-config#network-access-requirements). Si la máquina no puede descargar Claude Code, Desktop lo descarga en tu computadora y lo sube. Las demás solicitudes de Claude Code siguen saliendo desde la máquina remota. En una máquina remota Linux, si esas solicitudes necesitan un proxy, [establécelo para las sesiones SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).

863 

864<h4 id="set-a-proxy-or-a-ca-certificate-for-ssh-sessions">

865 Establecer un proxy o un certificado de CA para las sesiones SSH

866</h4>

867 

868Si una máquina remota Linux accede a internet a través de un proxy o necesita un certificado de CA, agrega las [variables de proxy y de CA](/docs/es/network-config) en `env` en el `~/.claude/settings.json` de esa máquina. Agrégalas incluso si ya las exportas en `~/.profile`, `~/.bash_profile`, `~/.zprofile` o `~/.zshrc` en esa máquina.

869 

870Una sesión SSH no las obtiene de esos archivos, aunque `claude` en una terminal de esa máquina sí las obtenga. Entonces la sesión puede colgarse, o mostrar **The connection from … to the API failed** o **Authentication failed**, y volver a iniciar sesión no ayuda.

871 

872<Steps>

873 <Step title="Agrega las variables">

874 Para el archivo de CA, usa [`NODE_EXTRA_CA_CERTS`](/docs/es/network-config#custom-ca-certificates), porque Claude Code no confía en una CA de `SSL_CERT_FILE` en `~/.claude/settings.json`. Este ejemplo establece un proxy y un archivo de CA:

875 

876 ```json ~/.claude/settings.json theme={null}

877 {

878 "env": {

879 "HTTPS_PROXY": "http://proxy.example.com:8080",

880 "NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"

881 }

882 }

883 ```

884 </Step>

885 

886 <Step title="Vuelve a enviar tu mensaje">

887 Vuelve a enviar tu mensaje, porque una variable que agregas o cambias en ese archivo surte efecto en cuestión de segundos. Inicia una nueva sesión si sigue fallando.

888 </Step>

889</Steps>

890 

891<h5 id="find-a-proxy-or-ca-variable-set-elsewhere-on-the-remote-machine">

892 Buscar una variable de proxy o de CA establecida en otro lugar de la máquina remota

893</h5>

894 

895Comprueba si la máquina remota Linux establece la variable de proxy o de CA en otro lugar, porque las sesiones usan ese valor e [ignoran el de cualquier archivo de configuración](/docs/es/settings-reference#how-env-values-interact-with-your-shell):

896 

897<Steps>

898 <Step title="Lista las variables que establece la máquina remota">

899 En una terminal de tu computadora, ejecuta `ssh devbox env`, con tu propio host.

900 </Step>

901 

902 <Step title="Cambia la variable donde está establecida">

903 Si la lista contiene la variable, cámbiala en el archivo que la establece, como `~/.zshenv`, `/etc/environment` o `~/.bashrc` en la máquina remota.

904 </Step>

905 

906 <Step title="Da el nuevo valor a las sesiones">

907 Reinicia la máquina remota, o cierra Desktop y termina los procesos del programa auxiliar, como en los dos primeros pasos para [eliminar el programa auxiliar](#files-and-processes-on-the-remote-machine). Hazlo cuando no haya ninguna tarea en ejecución, porque cualquiera de las dos opciones interrumpe el trabajo de Claude.

908 </Step>

909</Steps>

863 910 

864<h4 id="use-your-ssh-configuration-on-macos-and-linux">911<h4 id="use-your-ssh-configuration-on-macos-and-linux">

865 Usar tu configuración SSH en macOS y Linux912 Usar tu configuración SSH en macOS y Linux


892 939 

893Ingresa `devbox` en el campo **SSH host**.940Ingresa `devbox` en el campo **SSH host**.

894 941 

942<h5 id="reach-a-container-on-a-remote-machine">

943 Llegar a un contenedor en una máquina remota

944</h5>

945 

946Para ejecutar una sesión dentro de un contenedor que no publica ningún puerto SSH, llega a él con un `ProxyCommand`, porque Desktop no ejecuta el `RemoteCommand` de la entrada a la que te conectas. Si tu entrada usa `RemoteCommand` para entrar en el contenedor, la sesión se ejecuta en la máquina en la que inicia sesión la entrada, no en el contenedor.

947 

948<Steps>

949 <Step title="Agrega la entrada">

950 Agrega la siguiente entrada al final de tu `~/.ssh/config`, o justo encima de tu primera entrada `Host *` si tienes una. Reemplaza el contenedor de Docker `devbox`, su usuario `dev` y la máquina `build.example.com` por los tuyos. El comando de la entrada inicia un servidor SSH dentro del contenedor para cada conexión:

951 

952 ```text ~/.ssh/config theme={null}

953 Host devbox-container

954 User dev

955 ProxyCommand ssh build.example.com docker exec -i devbox /usr/sbin/sshd -i

956 ```

957 </Step>

958 

959 <Step title="Prepara el contenedor">

960 * Instala el servidor OpenSSH, con una clave de host que se mantenga igual cuando vuelvas a compilar la imagen o vuelvas a crear el contenedor

961 * Dale a la cuenta indicada en `User` una forma de iniciar sesión, como un archivo `authorized_keys`

962 * Comprueba que el contenedor cumple los [requisitos de la máquina remota](#remote-machine-requirements-for-ssh-sessions)

963 </Step>

964 

965 <Step title="Revisa la lista de permitidos">

966 Si tu administrador [restringe los hosts SSH](#restrict-which-ssh-hosts-users-can-connect-to), ejecuta `ssh -G devbox-container` en una terminal de tu computadora. Pídele que permita en `sshHostAllowlist` el `hostname` que imprime, aquí `devbox-container`. Cuando permite ese nombre, permite cualquier cosa a la que se conecte el `ProxyCommand` de tu entrada.

967 </Step>

968 

969 <Step title="Prueba la entrada y luego conéctate">

970 Ejecuta `ssh devbox-container` en una terminal de tu computadora. Corrige lo que informe y vuelve a ejecutarlo hasta que abra un shell en el contenedor sin pedirte nada:

971 

972 * **Si `ssh` pide una contraseña, una frase de contraseña o un código**: cambia a un inicio de sesión que funcione sin pedirte nada, como una clave que tenga tu agente SSH

973 * **Si `ssh` informa `Cannot execute command-line and remote command.` o `Bad packet length`**: quita `RemoteCommand` y `RequestTTY` de tu entrada para `build.example.com`. Después de eso, `ssh build.example.com` en una terminal de tu computadora abre un shell en esa máquina, no en el contenedor.

974 * **Si `ssh` informa `Connection closed by UNKNOWN port 65535`**: ejecuta `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` en la misma terminal.

975 * Si imprime `Missing privilege separation directory: /run/sshd`, crea esa carpeta en el contenedor.

976 * Si imprime `no hostkeys available` y el contenedor tiene claves de host, agrega `-u root` después de `exec` en este comando y en la entrada.

977 

978 Luego ingresa `devbox-container` en el campo **SSH host**.

979 </Step>

980</Steps>

981 

895<h5 id="use-variables-from-your-shell-in-a-proxycommand">982<h5 id="use-variables-from-your-shell-in-a-proxycommand">

896 Usar variables de tu shell en un `ProxyCommand`983 Usar variables de tu shell en un `ProxyCommand`

897</h5>984</h5>


900 987 

901Esto requiere Claude Desktop v2.37337.0 o posterior y un comando `env` que acepte `-0`, lo que puedes comprobar ejecutando `env -0` en una terminal de tu computadora.988Esto requiere Claude Desktop v2.37337.0 o posterior y un comando `env` que acepte `-0`, lo que puedes comprobar ejecutando `env -0` en una terminal de tu computadora.

902 989 

990<Note>

991 Si tu shell establece credenciales temporales de AWS, [dale a la AWS CLI un perfil](#use-aws-credentials-in-a-proxycommand) en lugar de exportar variables `AWS_*`.

992</Note>

993 

994<a id="use-aws-credentials-in-a-proxycommand" />

995 

996<h5 id="use-aws-credentials-in-a-proxycommand">

997 Usar credenciales de AWS en un `ProxyCommand`

998</h5>

999 

1000Si estableces credenciales temporales de AWS en un archivo de inicio del shell, un `ProxyCommand` que ejecuta la AWS CLI puede conectarse en una terminal y fallar en Desktop. Cuando tu shell exporta `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` o `AWS_CREDENTIAL_EXPIRATION`, `ssh` y tu `ProxyCommand` en Desktop no obtienen las credenciales de AWS del shell, `AWS_REGION` ni `AWS_PROFILE`.

1001 

1002Si la AWS CLI no tiene otra fuente para una región o para las credenciales, falla con `You must specify a region` o `Unable to locate credentials`. Para conectarte desde Desktop, dale a la AWS CLI un perfil que lea de `~/.aws/config`:

1003 

1004<Steps>

1005 <Step title="Agrega un perfil con una región y una fuente de credenciales">

1006 Este ejemplo agrega un perfil llamado `corp` que obtiene sus credenciales de un programa auxiliar:

1007 

1008 ```ini ~/.aws/config theme={null}

1009 [profile corp]

1010 region = us-east-1

1011 credential_process = /full/path/to/your-credential-helper

1012 ```

1013 

1014 * **`region`**: indica la región de AWS de las máquinas a las que te conectas

1015 * **`credential_process`**: indica la ruta completa de un programa que imprima credenciales en el [formato JSON que documenta AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Elige un programa que no necesite ninguna intervención tuya, porque la AWS CLI lo ejecuta en cada conexión, incluidas las reconexiones mientras no estás.

1016 * **IAM Identity Center**: agrega la [configuración de IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) del perfil en lugar de `credential_process`. Ejecuta `aws sso login --profile corp` en una terminal antes de conectarte, y de nuevo cuando ese inicio de sesión caduque.

1017 </Step>

1018 

1019 <Step title="Indica el perfil en el ProxyCommand">

1020 Este ejemplo agrega `--profile` al [comando que documenta AWS para Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html):

1021 

1022 ```text ~/.ssh/config theme={null}

1023 Host i-*

1024 ProxyCommand sh -c "aws ssm start-session --profile corp --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

1025 ```

1026 </Step>

1027 

1028 <Step title="Vuelve a conectarte">

1029 Ejecuta `ssh` con el host en una terminal para confirmar que la entrada sigue conectándose allí, y luego conéctate desde Desktop.

1030 </Step>

1031</Steps>

1032 

903<h5 id="raise-the-ssh-connection-timeout">1033<h5 id="raise-the-ssh-connection-timeout">

904 Aumentar el tiempo de espera de la conexión SSH1034 Aumentar el tiempo de espera de la conexión SSH

905</h5>1035</h5>


916 1046 

917`ssh` usa el primer valor que encuentra para un host, así que mantén la entrada por encima de cualquier entrada `Host *` que establezca `ConnectTimeout`. Para confirmarlo, ejecuta `ssh -G devbox` en una terminal de tu computadora. Su salida incluye `connecttimeout 120`. Después de cambiar el valor, cierra y vuelve a abrir Desktop.1047`ssh` usa el primer valor que encuentra para un host, así que mantén la entrada por encima de cualquier entrada `Host *` que establezca `ConnectTimeout`. Para confirmarlo, ejecuta `ssh -G devbox` en una terminal de tu computadora. Su salida incluye `connecttimeout 120`. Después de cambiar el valor, cierra y vuelve a abrir Desktop.

918 1048 

1049Si la propia máquina remota espera una aprobación en tu teléfono, apruébala en menos de 45 segundos, sea cual sea el `ConnectTimeout` que establezcas. No puedes aumentar este límite, porque Desktop establece `ServerAliveInterval` y `ServerAliveCountMax` por sí mismo, y entonces `ssh` cierra un inicio de sesión en el que la máquina remota no envía nada durante ese tiempo. Si en cambio es un host de salto o un `ProxyCommand` el que te espera, aumenta `ConnectTimeout` en la entrada de la máquina remota para cubrir ese tiempo.

1050 

1051<h5 id="fix-a-match-host-block-that-only-desktop-applies">

1052 Corregir un bloque `Match host` que solo aplica Desktop

1053</h5>

1054 

1055Si Desktop usa un ajuste que `ssh devbox` en una terminal no usa, busca un bloque `Match host` encima de la línea `HostName` de la entrada. En una terminal, `ssh` lee un bloque situado allí antes de la línea `HostName`, por lo que compara el bloque con `devbox`. Desktop le pasa a `ssh` el valor de `HostName` en la línea de comandos, por lo que `ssh` compara el bloque con ese valor.

1056 

1057Para comprobarlo, ejecuta `ssh -G` en una terminal de tu computadora con los valores `HostName` y `User` de la entrada en la línea de comandos, como lo hace Desktop:

1058 

1059```bash theme={null}

1060ssh -G -o HostName=devbox.internal.example.com -l alice devbox

1061```

1062 

1063Compara la salida con la de `ssh -G devbox`. Si los ajustes del bloque, como `proxycommand`, aparecen solo en la primera salida, el bloque surte efecto solo en Desktop. Para que Desktop también lo omita, agrega `!originalhost devbox` a su línea `Match`:

1064 

1065```text ~/.ssh/config theme={null}

1066Match host *.internal.example.com !originalhost devbox

1067```

1068 

1069Para confirmarlo, vuelve a ejecutar el primer comando. Los ajustes del bloque ya no aparecen en su salida.

1070 

919<h5 id="forwarding-settings-that-desktop-leaves-off">1071<h5 id="forwarding-settings-that-desktop-leaves-off">

920 Ajustes de reenvío que Desktop deja desactivados1072 Ajustes de reenvío que Desktop deja desactivados

921</h5>1073</h5>


1154 </Step>1306 </Step>

1155 1307 

1156 <Step title="Termina los procesos">1308 <Step title="Termina los procesos">

1157 Con la sesión iniciada como ese usuario en la máquina remota, ejecuta `kill` con cada ID de proceso que lista [`pgrep`](#files-and-processes-on-the-remote-machine).1309 Con la sesión iniciada como ese usuario en la máquina remota, ejecuta `kill` con el ID de cada proceso de Claude Code que lista [`pgrep`](#files-and-processes-on-the-remote-machine). Una vez que hayan desaparecido de la lista, ejecuta `kill` con el ID de cada proceso `server`. Si terminas primero un proceso `server`, un comando que Claude Code esté ejecutando puede seguir ejecutándose.

1310 

1311 Luego lista los procesos restantes del usuario, por ejemplo con `ps -u "$(id -un)" -f`, y termina los que reconozcas como iniciados por Claude Code. Los programas que dejó en segundo plano pueden seguir ejecutándose después de que termine, sin aparecer en la lista de `pgrep`.

1158 </Step>1312 </Step>

1159 1313 

1160 <Step title="Elimina la carpeta">1314 <Step title="Elimina la carpeta">


1170 1324 

1171Antes de archivar una sesión que tiene un worktree, consulta [Trabajar en paralelo con sesiones](#work-in-parallel-with-sessions).1325Antes de archivar una sesión que tiene un worktree, consulta [Trabajar en paralelo con sesiones](#work-in-parallel-with-sessions).

1172 1326 

1327<h5 id="see-which-user-the-processes-run-as">

1328 Ver con qué usuario se ejecutan los procesos

1329</h5>

1330 

1331El programa auxiliar y Claude Code se ejecutan como el usuario con el que Desktop inicia sesión a través de SSH. Instalarlos e iniciarlos no requiere `sudo`. Para comprobar el usuario, ejecuta `ps -o user= -p` en la máquina remota con un ID de proceso que liste [`pgrep`](#files-and-processes-on-the-remote-machine).

1332 

1333Los programas que inicia Claude Code, como comandos de shell y servidores MCP, también se inician como ese usuario. Revisa los derechos de ese usuario en la máquina remota, incluidas sus reglas de `sudo`, como lo harías para una persona que ejecuta comandos allí.

1334 

1173<h5 id="see-who-connected-to-the-remote-machine">1335<h5 id="see-who-connected-to-the-remote-machine">

1174 Ver quién se conectó a la máquina remota1336 Ver quién se conectó a la máquina remota

1175</h5>1337</h5>

1176 1338 

1177Para saber quién se conectó a una máquina remota, lee el registro del servidor SSH en esa máquina, donde un inicio de sesión desde Desktop se ve como uno desde una terminal. Con Desktop en macOS o Linux, espera una entrada cada vez que Desktop se conecta, no una por cada sesión.1339Para saber quién se conectó a una máquina remota, lee el registro del servidor SSH en esa máquina, donde un inicio de sesión desde Desktop se ve como uno desde una terminal. Con Desktop en macOS o Linux, espera una entrada cada vez que Desktop se conecta, no una por cada sesión.

1178 1340 

1341No encontrarás las conexiones SSH de Desktop en las [métricas y eventos](/docs/es/monitoring-usage#available-metrics-and-events) de Claude Code. Para saber a partir de ellos en qué máquina remota se ejecutó una sesión SSH, consulta [Atribuir la telemetría a las sesiones SSH de Desktop](/docs/es/monitoring-usage#attribute-telemetry-to-desktop-ssh-sessions). Para el registro propio de Desktop de sus conexiones, consulta [Obtener los registros de Desktop para un problema de SSH](#get-desktops-logs-for-an-ssh-problem).

1342 

1343<h4 id="connections-that-close-before-login">

1344 Conexiones que se cierran antes del inicio de sesión

1345</h4>

1346 

1347Si el registro del servidor SSH muestra conexiones que se cierran antes de cualquier inicio de sesión, pueden ser pruebas de Desktop sobre el puerto SSH. Desktop prueba si una máquina responde, por ejemplo después de que falló una conexión a ella. Abre una conexión al puerto y la cierra de inmediato, sin enviar nada. Espera una prueba o varias seguidas, por ejemplo ocho en unos dos minutos.

1348 

1349Si nada prohíbe ni rechaza direcciones por esas conexiones, no tienes que hacer nada respecto a las pruebas de Desktop. Si se rechaza o se prohíbe una dirección desde la que se conecta Desktop, comprueba [si el propio servidor SSH rechaza la dirección](#check-whether-the-ssh-server-itself-refuses-the-address) y [si fail2ban cuenta las pruebas de Desktop](#check-whether-fail2ban-counts-desktops-tests).

1350 

1351<h5 id="recognize-a-test-in-the-ssh-server’s-log">

1352 Reconocer una prueba en el registro del servidor SSH

1353</h5>

1354 

1355Compara las líneas de tu registro con las que escribe un servidor OpenSSH en Linux para una prueba con el `LogLevel` predeterminado, en la fila de la versión de tu servidor. En su lugar, puedes ver las líneas de la última columna si el saludo del servidor llega antes de que Desktop cierre la conexión:

1356 

1357| Versión de OpenSSH | Líneas de una prueba | Líneas si el saludo llega primero |

1358| - | - | - |

1359| 6.6 a 7.9 | Una línea con `Did not receive identification string from 203.0.113.7` | La misma línea |

1360| 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |

1361| 8.3 a 9.4 | `error: kex_exchange_identification: Connection closed by remote host`, luego `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, luego `Connection reset by 203.0.113.7 port 51234` |

1362| 9.5 a 10.2 | `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, luego `Connection reset by 203.0.113.7 port 51234` |

1363| 10.3 a 10.5 | `Connection closed by 203.0.113.7 port 51234 [preauth]` | `error: kex_exchange_identification: read: Connection reset by peer [preauth]`, luego `Connection reset by 203.0.113.7 port 51234 [preauth]` |

1364 

1365Otros programas que abren el puerto y lo cierran pueden dejar las mismas líneas. Donde una línea tenga una dirección, comprueba que sea una desde la que se conecta una computadora con Desktop.

1366 

1367Las líneas de 8.0 a 8.2 no tienen dirección. Para obtener una, establece `LogLevel VERBOSE` en `sshd_config` y ejecuta `sshd -T | grep -i loglevel` como root. Si imprime `loglevel VERBOSE`, recarga el servidor SSH. Luego busca una línea con `Connection from 203.0.113.7 port 51234` antes de la línea de la prueba.

1368 

1369<a id="check-whether-the-ssh-server-itself-refuses-the-address" />

1370 

1371<h5 id="check-whether-the-ssh-server-itself-refuses-the-address">

1372 Comprobar si el propio servidor SSH rechaza la dirección

1373</h5>

1374 

1375Si se rechazan conexiones desde una dirección que comparten muchas computadoras con Desktop, busca en el registro del servidor SSH una línea que termine como esta:

1376 

1377```text theme={null}

1378drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication

1379```

1380 

1381Con el `LogLevel` predeterminado, OpenSSH 9.8 y posterior puede escribir una línea así cuando rechaza una dirección por conexiones que se cerraron sin intentar iniciar sesión, como hacen las pruebas de Desktop. Con la configuración predeterminada, no ves una línea así solo por unas pocas pruebas.

1382 

1383Para evitar el rechazo, establece `PerSourcePenaltyExemptList` en `sshd_config` con las direcciones desde las que se conectan las personas, por ejemplo `PerSourcePenaltyExemptList 203.0.113.7`. El servidor no aplica entonces ninguna de sus penalizaciones a esas direcciones, incluidas las de inicios de sesión fallidos. Para revisar el archivo, ejecuta `sshd -T | grep -i persourcepenalt` como root. Si imprime tu lista, recarga el servidor SSH.

1384 

1385<a id="check-whether-fail2ban-counts-desktops-tests" />

1386 

1387<h5 id="check-whether-fail2ban-counts-desktop’s-tests">

1388 Comprobar si fail2ban cuenta las pruebas de Desktop

1389</h5>

1390 

1391Si fail2ban 0.10.5 o posterior prohibió una dirección desde la que se conecta Desktop, busca el modo de tu jail en `jail.conf`, `jail.local` o en `jail.d/`:

1392 

1393* **Una línea `filter` que indica un modo entre corchetes**, como `filter = sshd[mode=aggressive]`: usa ese modo.

1394* **Solo la línea `filter` de serie**, con `[mode=%(mode)s]`: usa la línea `mode`, o `normal` si no hay ninguna.

1395 

1396Si el modo es `normal`, fail2ban no cuenta las líneas de las pruebas de Desktop, así que busca otra causa de la prohibición.

1397 

1398Para otro modo, copia las líneas de tu propio registro a un archivo en la máquina remota. Copia cada línea completa, desde su fecha hasta su final, y ambas líneas donde una prueba deja dos. Ejecuta allí `fail2ban-regex` con el archivo y el modo de tu jail, por ejemplo `aggressive`:

1399 

1400```bash theme={null}

1401fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"

1402```

1403 

1404Por cada fallo que cuenta fail2ban, el comando imprime la dirección en una línea propia, como `203.0.113.7`. En ese caso, [evita una prohibición](#prevent-a-ban-by-fail2ban). Si no imprime nada, fail2ban no cuenta ninguna de esas líneas en ese modo, así que busca otra causa de la prohibición.

1405 

1406<a id="prevent-a-ban-by-fail2ban" />

1407 

1408<h5 id="prevent-a-ban-by-fail2ban">

1409 Evitar una prohibición de fail2ban

1410</h5>

1411 

1412Para evitar que fail2ban prohíba una dirección por las pruebas de Desktop, cambia uno de dos ajustes del jail, cada uno con un costo:

1413 

1414* **`mode`**: establécelo en `normal` dondequiera que tu jail lo defina, en una línea `mode` o entre los corchetes de una línea como `filter = sshd[mode=aggressive]`. Renuncias a todos los conteos que solo hacen los otros modos, por ejemplo de clientes que se conectan y se van sin intentar iniciar sesión.

1415* **`ignoreip`**: establécelo con las direcciones desde las que se conectan las personas, por ejemplo `ignoreip = 203.0.113.7`. fail2ban no cuenta entonces nada de esas direcciones, incluidos los inicios de sesión fallidos.

1416 

1179<h4 id="use-mcp-servers-set-up-on-the-remote-machine">1417<h4 id="use-mcp-servers-set-up-on-the-remote-machine">

1180 Usar servidores MCP configurados en la máquina remota1418 Usar servidores MCP configurados en la máquina remota

1181</h4>1419</h4>


1682 1920 

1683Para cualquier otro mensaje, revisa los [requisitos de la máquina remota](#remote-machine-requirements-for-ssh-sessions).1921Para cualquier otro mensaje, revisa los [requisitos de la máquina remota](#remote-machine-requirements-for-ssh-sessions).

1684 1922 

1923<a id="get-desktops-logs-for-an-ssh-problem" />

1924 

1925<h3 id="get-desktop’s-logs-for-an-ssh-problem">

1926 Obtener los registros de Desktop para un problema de SSH

1927</h3>

1928 

1929Obtienes `ssh.log`, el registro de Desktop de sus conexiones SSH, dentro de un archivo zip con los registros de Desktop que guardas desde el menú **Help**. Para guardarlo, abre **Help > Troubleshooting** y selecciona el elemento correspondiente a tu sistema:

1930 

1931* **macOS**: **Show Logs in Finder**

1932* **Windows**: **Show Logs in File Explorer**

1933* **Linux**: **Show Logs in File Manager**

1934 

1935Revisa los archivos antes de enviarlos, porque pueden incluir nombres y otros detalles de tu entorno. `<host>` y `<user>` representan nombres que Desktop reemplazó. Desktop no reemplaza todos los nombres, y un nombre de host o de usuario SSH todavía puede aparecer tal como está escrito. Si envías el archivo zip a alguien, indícale qué host falló y cuándo, porque es posible que los registros no lo mencionen.

1936 

1937El archivo zip no contiene el registro del programa auxiliar que Desktop instala en la máquina remota. Para obtener también ese registro, copia `remote-server.log` desde la carpeta del programa auxiliar en [`~/.claude/remote/run/`](#files-and-processes-on-the-remote-machine), dentro del directorio home del usuario que se conectó. Revisa también ese archivo antes de enviarlo.

1938 

1685<h3 id="app-won’t-quit">1939<h3 id="app-won’t-quit">

1686 La aplicación no se cierra1940 La aplicación no se cierra

1687</h3>1941</h3>

env-vars.md +3 −1

Details

225| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Establécela en `0` para evitar que Claude Code abra el navegador automáticamente cuando se publica un nuevo [artefacto](/docs/es/artifacts#create-an-artifact) |225| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Establécela en `0` para evitar que Claude Code abra el navegador automáticamente cuando se publica un nuevo [artefacto](/docs/es/artifacts#create-an-artifact) |

226| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Establécela en `0` para que Claude deje de leer y responder [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact). No tiene efecto cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ha [desactivado los artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.221 o posterior |226| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Establécela en `0` para que Claude deje de leer y responder [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact). No tiene efecto cuando `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ha [desactivado los artefactos](/docs/es/artifacts#availability). Requiere Claude Code v2.1.221 o posterior |

227| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Establécela en `0` para que Claude deje de [responder por su cuenta a los comentarios que se le envían](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Requiere Claude Code v2.1.228 o posterior |227| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Establécela en `0` para que Claude deje de [responder por su cuenta a los comentarios que se le envían](/docs/es/artifacts#let-claude-reply-to-comments-on-its-own). Requiere Claude Code v2.1.228 o posterior |

228| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Establécela en `0` para que Claude deje de aplicar cambios pequeños al archivo de un [artefacto](/docs/es/artifacts#update-an-artifact) como parte de su publicación. Entonces Claude edita el archivo con sus herramientas de edición de archivos y lo publica en un paso aparte. Requiere Claude Code v2.1.300 o posterior |

228| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establécela en `0` para omitir el [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), que contiene la versión del cliente y una huella del prompt, del inicio del prompt del sistema. El almacenamiento en caché en una conexión directa a la API de Anthropic no se ve afectado en ningún caso. En algunas configuraciones de conexión directa, Claude Code mantiene el bloque en las solicitudes del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) incluso si estableces `0`. En [Bloque de atribución del prompt del sistema](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), comprueba qué conexiones y credenciales abarca esto. Antes de v2.1.181, el bloque incluía un token por solicitud en las URL base personalizadas y las conexiones de Microsoft Foundry, así que en esas versiones establécela en `0` cuando tu gateway de LLM almacene en caché según el cuerpo de la solicitud o reenvíe solicitudes a un proveedor de terceros, o cuando te conectes directamente a Microsoft Foundry |229| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Establécela en `0` para omitir el [bloque de atribución](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), que contiene la versión del cliente y una huella del prompt, del inicio del prompt del sistema. El almacenamiento en caché en una conexión directa a la API de Anthropic no se ve afectado en ningún caso. En algunas configuraciones de conexión directa, Claude Code mantiene el bloque en las solicitudes del clasificador del [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) incluso si estableces `0`. En [Bloque de atribución del prompt del sistema](/docs/es/llm-gateway-protocol#system-prompt-attribution-block), comprueba qué conexiones y credenciales abarca esto. Antes de v2.1.181, el bloque incluía un token por solicitud en las URL base personalizadas y las conexiones de Microsoft Foundry, así que en esas versiones establécela en `0` cuando tu gateway de LLM almacene en caché según el cuerpo de la solicitud o reenvíe solicitudes a un proveedor de terceros, o cuando te conectes directamente a Microsoft Foundry |

229| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Eliminada en v2.1.283. Usa `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` en su lugar |230| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Eliminada en v2.1.283. Usa `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` en su lugar |

230| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establece la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) en tokens, de `100000` a `1000000`. Solo acepta un entero simple como `500000`: un valor como `500k` se lee como `500` y se ajusta al mínimo de 100K. La ventana efectiva también está limitada por la ventana de contexto del modelo. Tiene precedencia sobre el comando `/autocompact`, el flag `--autocompact` y el ajuste `autoCompactWindow`. El `used_percentage` de la línea de estado siempre se mide respecto a la ventana de contexto completa del modelo, por lo que, una vez establecida esta variable, ese porcentaje ya no indica cuándo se ejecutará la compactación |231| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Establece la [ventana de compactación automática](/docs/es/model-config#set-the-auto-compact-window) en tokens, de `100000` a `1000000`. Solo acepta un entero simple como `500000`: un valor como `500k` se lee como `500` y se ajusta al mínimo de 100K. La ventana efectiva también está limitada por la ventana de contexto del modelo. Tiene precedencia sobre el comando `/autocompact`, el flag `--autocompact` y el ajuste `autoCompactWindow`. El `used_percentage` de la línea de estado siempre se mide respecto a la ventana de contexto completa del modelo, por lo que, una vez establecida esta variable, ese porcentaje ya no indica cuándo se ejecutará la compactación |


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

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

334| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescribe el tamaño de la ventana de contexto que Claude Code supone para el modelo activo. A partir de la v2.1.193, cómo se aplica depende de cómo resuelve Claude Code el ID del modelo; consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Úsala cuando enrutes a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincida con el tamaño integrado para su nombre |335| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Sobrescribe el tamaño de la ventana de contexto que Claude Code supone para el modelo activo. A partir de la v2.1.193, cómo se aplica depende de cómo resuelve Claude Code el ID del modelo; consulta [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Úsala cuando enrutes a un modelo a través de `ANTHROPIC_BASE_URL` cuya ventana de contexto no coincida con el tamaño integrado para su nombre |

335| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longitud máxima en caracteres de cada descripción de herramienta MCP y de las instrucciones de cada servidor MCP que Claude Code envía al modelo. El valor que establezcas reemplaza ambos [límites predeterminados](/docs/es/mcp#for-mcp-server-authors): 4096, y 16384 para la descripción de una herramienta que Claude carga mediante la búsqueda de herramientas. Claude Code trunca el texto más largo. Acepta un número entero positivo en dígitos simples. Cualquier otro valor se ignora y se aplican los valores predeterminados. Requiere Claude Code v2.1.280 o posterior |336| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Longitud máxima en caracteres de las descripciones de herramientas MCP y de las instrucciones de servidores MCP que Claude Code envía al modelo. El valor que establezcas reemplaza ambos [límites predeterminados](/docs/es/mcp#for-mcp-server-authors): 4096, y 16384 para la descripción de una herramienta que Claude carga mediante la búsqueda de herramientas. Acepta un número entero positivo en dígitos simples. Cualquier otro valor se ignora y se aplican los predeterminados. Requiere Claude Code v2.1.280 o posterior |

336| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establece el número máximo de tokens de salida para la mayoría de las solicitudes. Los valores predeterminados y los límites varían según el modelo; consulta [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code reduce al límite un valor que supere el límite de un modelo. Para un ID de modelo que Claude Code no puede resolver a un modelo que conozca, el valor predeterminado es 32000 y el límite es 128000. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/docs/es/costs#reduce-token-usage) |337| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Establece el número máximo de tokens de salida para la mayoría de las solicitudes. Los valores predeterminados y los límites varían según el modelo; consulta [tokens de salida máximos](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code reduce al límite un valor que supere el límite de un modelo. Para un ID de modelo que Claude Code no puede resolver a un modelo que conozca, el valor predeterminado es 32000 y el límite es 128000. Aumentar este valor reduce la ventana de contexto efectiva disponible antes de que se active la [compactación automática](/docs/es/costs#reduce-token-usage) |

337| `CLAUDE_CODE_MAX_RETRIES` | Sobrescribe el número de veces que se reintentan las solicitudes a la API fallidas (predeterminado: 10). Limitado a 15 a partir de la v2.1.186; a partir de la v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar durante interrupciones más largas, establece en su lugar `CLAUDE_CODE_RETRY_WATCHDOG` |338| `CLAUDE_CODE_MAX_RETRIES` | Sobrescribe el número de veces que se reintentan las solicitudes a la API fallidas (predeterminado: 10). Limitado a 15 a partir de la v2.1.186; a partir de la v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` aumenta el valor predeterminado y elimina el límite. Para sesiones desatendidas que necesitan esperar durante interrupciones más largas, establece en su lugar `CLAUDE_CODE_RETRY_WATCHDOG` |

338| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminada en la v2.1.224 y ahora no tiene efecto. Antes limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite fallaba con `Subagent spawn limit reached`. El [límite de subagentes concurrentes](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) siguen aplicándose |339| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Eliminada en la v2.1.224 y ahora no tiene efecto. Antes limitaba el número total de [subagentes](/docs/es/sub-agents) que Claude podía generar con la herramienta Agent en una sesión (predeterminado: 200); generar más allá del límite fallaba con `Subagent spawn limit reached`. El [límite de subagentes concurrentes](/docs/es/sub-agents#concurrent-subagent-limit) y el [límite de profundidad](/docs/es/sub-agents#let-subagents-spawn-their-own-subagents) siguen aplicándose |


598* Ejecutar [`/skill-doctor`](/docs/es/skills#find-unused-skills) ni abrir su informe en la pestaña **Stats** de `/plugin`599* Ejecutar [`/skill-doctor`](/docs/es/skills#find-unused-skills) ni abrir su informe en la pestaña **Stats** de `/plugin`

599* Sincronizar los [skills](/docs/es/skills#where-synced-skills-load) y [plugins](/docs/es/plugins/loading#synced-plugins) habilitados para tu cuenta de claude.ai en tus sesiones de terminal600* Sincronizar los [skills](/docs/es/skills#where-synced-skills-load) y [plugins](/docs/es/plugins/loading#synced-plugins) habilitados para tu cuenta de claude.ai en tus sesiones de terminal

600* Activar el [mod You should know](/docs/es/interactive-mode#you-should-know-suggestions)601* Activar el [mod You should know](/docs/es/interactive-mode#you-should-know-suggestions)

602* Ver lo que un [mod](/docs/es/plugins/mods/overview#where-mods-run) dibuja en el panel de chat de la extensión de VS Code; los hooks del mod siguen ejecutándose

601* Usar [la herramienta advisor](/docs/es/advisor#requirements)603* Usar [la herramienta advisor](/docs/es/advisor#requirements)

602* Leer o responder [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact)604* Leer o responder [comentarios en un artefacto](/docs/es/artifacts#collect-comments-on-an-artifact)

603* Hacer que Claude lea [el artefacto público de otra organización](/docs/es/artifacts#read-an-artifact-shared-with-you)605* Hacer que Claude lea [el artefacto público de otra organización](/docs/es/artifacts#read-an-artifact-shared-with-you)

errors.md +202 −10

Details

72| `Claude.ai login was rejected — run /login, then /remote-control` | [Autenticación](#remote-control-couldnt-refresh-your-login) |72| `Claude.ai login was rejected — run /login, then /remote-control` | [Autenticación](#remote-control-couldnt-refresh-your-login) |

73| `OAuth token unavailable — run /login to restore Remote Control` | [Autenticación](#remote-control-couldnt-refresh-your-login) |73| `OAuth token unavailable — run /login to restore Remote Control` | [Autenticación](#remote-control-couldnt-refresh-your-login) |

74| `Signed out of Claude — run /login, then /remote-control` | [Autenticación](#remote-control-couldnt-refresh-your-login) |74| `Signed out of Claude — run /login, then /remote-control` | [Autenticación](#remote-control-couldnt-refresh-your-login) |

75| `Remote Control could not renew this computer's connection` | [Autenticación](#remote-control-could-not-renew-this-computers-connection) |

75| `signed-in claude.ai account or organization changed on this machine` | [Autenticación](#remote-control-stopped-because-the-signed-in-account-changed) |76| `signed-in claude.ai account or organization changed on this machine` | [Autenticación](#remote-control-stopped-because-the-signed-in-account-changed) |

76| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Autenticación](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |77| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Autenticación](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

77| `Remote Control stopped — the app running this session is signed out of Claude` | [Autenticación](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |78| `Remote Control stopped — the app running this session is signed out of Claude` | [Autenticación](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |


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

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

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

157| `API Error: an image in the conversation could not be processed and was removed` | [Errores de solicitud](#image-was-too-large) |

156| `Unable to resize image` | [Errores de solicitud](#unable-to-resize-image) |158| `Unable to resize image` | [Errores de solicitud](#unable-to-resize-image) |

157| `Request rejected as unprocessable by the model` | [Errores de solicitud](#request-rejected-as-unprocessable-by-the-model) |159| `Request rejected as unprocessable by the model` | [Errores de solicitud](#request-rejected-as-unprocessable-by-the-model) |

158| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Errores de solicitud](#pdf-errors) |160| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Errores de solicitud](#pdf-errors) |


179| `Effort '<level>' isn't available with thinking turned off on this model` | [Errores de solicitud](#effort-isnt-available-with-thinking-turned-off) |181| `Effort '<level>' isn't available with thinking turned off on this model` | [Errores de solicitud](#effort-isnt-available-with-thinking-turned-off) |

180| `effort '<level>' is not supported when thinking is disabled` | [Errores de solicitud](#effort-isnt-available-with-thinking-turned-off) |182| `effort '<level>' is not supported when thinking is disabled` | [Errores de solicitud](#effort-isnt-available-with-thinking-turned-off) |

181| `max_tokens must be greater than thinking.budget_tokens` | [Errores de solicitud](#thinking-budget-exceeds-output-limit) |183| `max_tokens must be greater than thinking.budget_tokens` | [Errores de solicitud](#thinking-budget-exceeds-output-limit) |

184| `Claude's response exceeded the ... output token maximum` | [Errores de solicitud](#response-exceeded-the-output-token-maximum) |

182| `API Error: 400 due to tool use concurrency issues` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |185| `API Error: 400 due to tool use concurrency issues` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |

183| `API Error: 400 orphaned tool_result in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |186| `API Error: 400 orphaned tool_result in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |

184| `API Error: 400 duplicate tool_use ID in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |187| `API Error: 400 duplicate tool_use ID in conversation history` | [Errores de solicitud](#tool-use-or-thinking-block-mismatch) |


199| `The connection dropped while downloading the update` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |202| `The connection dropped while downloading the update` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

200| `Download timed out: exceeded the total deadline` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |203| `Download timed out: exceeded the total deadline` | [Solucionar problemas de instalación e inicio de sesión](/docs/es/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

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

205| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [Errores de línea de comandos](#couldnt-tell-whether-bg-is-a-flag-or-text) |

202| `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) |206| `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) |

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

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


217| `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) |221| `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) |

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

219| `` `<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) |223| `` `<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) |

224| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Errores de línea de comandos](#sandbox-is-not-supported-by-claude-remote-control) |

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

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

222| `Could not import <server>: <reason>` | [Errores de línea de comandos](#could-not-import-a-server-from-claude-desktop) |227| `Could not import <server>: <reason>` | [Errores de línea de comandos](#could-not-import-a-server-from-claude-desktop) |


233| `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) |238| `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) |

234| `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) |239| `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) |

235| ``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) |240| ``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) |

241| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Errores de línea de comandos](#no-shell-command-was-run) |

236| `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) |242| `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) |

237| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Errores de línea de comandos](#claude-code-cant-read-the-keyboard-here) |243| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Errores de línea de comandos](#claude-code-cant-read-the-keyboard-here) |

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


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

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

369| `hook needs quotes around a path with a space` | [Advertencias de configuración](#hook-needs-quotes-around-a-path-with-a-space) |375| `hook needs quotes around a path with a space` | [Advertencias de configuración](#hook-needs-quotes-around-a-path-with-a-space) |

376| `Instruction file not loaded` | [Advertencias de configuración](#instruction-file-not-loaded) |

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

371| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Advertencias de configuración](#skill-or-command-name-refused) |378| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Advertencias de configuración](#skill-or-command-name-refused) |

372| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Advertencias de configuración](#workspace-has-not-been-trusted) |379| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Advertencias de configuración](#workspace-has-not-been-trusted) |


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

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

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

387| `"<name>" is a reserved MCP server name and was not loaded` | [Advertencias de configuración](#mcp-server-name-is-reserved) |

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

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

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

391| `Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:` | [Advertencias de configuración](#managed-settings-hooks-not-loaded) |

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

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

385| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Advertencias de configuración](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |394| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Advertencias de configuración](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |


389| `... has a wildcard before the rest of the command` | [Advertencias de configuración](#has-a-wildcard-before-the-rest-of-the-command) |398| `... has a wildcard before the rest of the command` | [Advertencias de configuración](#has-a-wildcard-before-the-rest-of-the-command) |

390| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Advertencias de configuración](#denying-bash-also-turns-off-the-powershell-tool) |399| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Advertencias de configuración](#denying-bash-also-turns-off-the-powershell-tool) |

391| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Advertencias de configuración](#the-200k-limit-isnt-enforced) |400| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Advertencias de configuración](#the-200k-limit-isnt-enforced) |

401| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

402| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Corregir la ventana para un gateway o un ID de modelo personalizado](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

392| `[claude-code:unrecognized_model]` | [Advertencias de configuración](#unrecognized-model-id-on-a-request) |403| `[claude-code:unrecognized_model]` | [Advertencias de configuración](#unrecognized-model-id-on-a-request) |

404| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [Advertencias de configuración](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |

393| `Stale sandbox mask files left by a killed session` | [Advertencias de configuración](#stale-sandbox-mask-files-left-by-a-killed-session) |405| `Stale sandbox mask files left by a killed session` | [Advertencias de configuración](#stale-sandbox-mask-files-left-by-a-killed-session) |

394| Las respuestas parecen ser de menor calidad que lo habitual | [Calidad de respuesta](#responses-seem-lower-quality-than-usual) |406| Las respuestas parecen ser de menor calidad que lo habitual | [Calidad de respuesta](#responses-seem-lower-quality-than-usual) |

395 407 


1209 1221 

1210Antes de la 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.1222Antes de la 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.

1211 1223 

1224<h3 id="remote-control-could-not-renew-this-computers-connection">

1225 Remote Control could not renew this computer's connection

1226</h3>

1227 

1228Esta advertencia aparece en la terminal que ejecuta [`claude remote-control`](/docs/es/remote-control#start-a-remote-control-session) cuando el servidor no puede usar tu inicio de sesión de claude.ai para renovar la credencial de su conexión antes de que caduque. La última oración de la advertencia indica cuánto tiempo sigue funcionando la credencial actual, o que ya caducó:

1229 

1230```text theme={null}

1231Remote Control could not renew this computer's connection: claude.ai did not accept the sign-in it uses. Run `claude /login` to sign in again. The connection keeps working for about 26 hours; if it still cannot sign in then, it stops.

1232```

1233 

1234**Qué hacer:**

1235 

1236* Si la advertencia te indica que ejecutes `claude /login`, abre otra terminal en la máquina que ejecuta el servidor, ejecuta `claude /login` allí e inicia sesión con tu cuenta de claude.ai

1237* Si el servidor sigue sin poder iniciar sesión una vez que la credencial de la conexión caducó, imprime un error que contiene `Poll: Authentication failed (401)` y se detiene. Vuelve a iniciar sesión como indica la segunda oración de la advertencia y luego ejecuta de nuevo `claude remote-control` en la terminal donde se detuvo el servidor.

1238 

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

1213 Remote Control se detuvo porque cambió la cuenta con la que iniciaste sesión1240 Remote Control se detuvo porque cambió la cuenta con la que iniciaste sesión

1214</h3>1241</h3>


2279* Desactiva los servidores MCP que no estés usando con `/mcp disable <name>` para quitar sus definiciones de herramientas del contexto2306* Desactiva los servidores MCP que no estés usando con `/mcp disable <name>` para quitar sus definiciones de herramientas del contexto

2280* Recorta los archivos de memoria `CLAUDE.md` grandes, o mueve las instrucciones a [reglas limitadas a rutas](/docs/es/memory#path-specific-rules) que se carguen solo cuando sean relevantes2307* Recorta los archivos de memoria `CLAUDE.md` grandes, o mueve las instrucciones a [reglas limitadas a rutas](/docs/es/memory#path-specific-rules) que se carguen solo cuando sean relevantes

2281* La compactación automática está activada de forma predeterminada y normalmente evita este error. Si la desactivaste en `/config` o con [`DISABLE_AUTO_COMPACT`](/docs/es/env-vars), vuelve a activarla. Si la mantienes desactivada, ejecuta `/compact` tú mismo antes de que se llene la ventana.2308* La compactación automática está activada de forma predeterminada y normalmente evita este error. Si la desactivaste en `/config` o con [`DISABLE_AUTO_COMPACT`](/docs/es/env-vars), vuelve a activarla. Si la mantienes desactivada, ejecuta `/compact` tú mismo antes de que se llene la ventana.

2309* Si el error aparece cerca de 200K tokens en un modelo que acepta más, una causa es un ID de modelo que Claude Code no reconoce. Claude Code asume una ventana de 200K para ese ID, así que para seguir trabajando más allá de ese punto, [indícale la ventana de contexto real del modelo](/docs/es/model-config#correct-the-window-for-a-gateway-or-custom-model-id).

2282 2310 

2283Consulta [Explorar la ventana de contexto](/docs/es/context-window) para ver de forma interactiva cómo se llena el contexto.2311Consulta [Explorar la ventana de contexto](/docs/es/context-window) para ver de forma interactiva cómo se llena el contexto.

2284 2312 


2340```text theme={null}2368```text theme={null}

2341Image was too large. Double press esc to go back and try again with a smaller image.2369Image was too large. Double press esc to go back and try again with a smaller image.

2342API Error: 400 ... image dimensions exceed max allowed size2370API Error: 400 ... image dimensions exceed max allowed size

2371API Error: an image in the conversation could not be processed and was removed.

2343```2372```

2344 2373 

2345Claude Code reemplaza la imagen que no se puede procesar con un marcador de posición de texto y reintenta, por lo que los mensajes posteriores tienen éxito. En versiones anteriores a 2.1.142, una imagen pegada podía permanecer en la conversación y repetir el mismo error en cada mensaje posterior. Para recuperarte en esas versiones, presiona Esc dos veces y retrocede antes del turno en que se agregó la imagen.2374La línea `could not be processed and was removed` significa que la API rechazó una imagen de la conversación, por ejemplo una que supera los límites de tamaño o dimensiones.

2375 

2376Si alguno de estos errores sigue apareciendo, actualiza Claude Code. En versiones anteriores, un error de imagen podía repetirse por motivos como estos:

2377 

2378* Antes de v2.1.299, en una conversación larga con muchas imágenes, Claude Code podía quitar las últimas imágenes que adjuntaste en lugar de la que superaba el límite. La línea `was removed` se repetía entonces en cada turno, y Claude no veía tus imágenes nuevas.

2379* Antes de v2.1.299, en VS Code, la app de Desktop y el Agent SDK, las imágenes que adjuntabas mientras Claude estaba trabajando no recibían el redimensionamiento que reciben otras imágenes adjuntas. Llegaban a la API en su tamaño original, lo que provocaba errores de imagen repetidos en conversaciones largas.

2380* Antes de v2.1.166, una imagen pegada podía permanecer en la conversación, y el mismo error se repetía entonces en cada mensaje posterior

2346 2381 

2347**Qué hacer:**2382**Qué hacer:**

2348 2383 


2800* Aumenta [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/es/env-vars) por encima del presupuesto de pensamiento2835* Aumenta [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/es/env-vars) por encima del presupuesto de pensamiento

2801* Consulta [Pensamiento extendido](/docs/es/model-config#extended-thinking) para ver cómo interactúa el presupuesto con la longitud de la salida2836* Consulta [Pensamiento extendido](/docs/es/model-config#extended-thinking) para ver cómo interactúa el presupuesto con la longitud de la salida

2802 2837 

2838<h3 id="response-exceeded-the-output-token-maximum">

2839 Response exceeded the output token maximum

2840</h3>

2841 

2842La respuesta de Claude alcanzó el mayor número de tokens de salida que permitía la solicitud y se cortó ahí:

2843 

2844```text theme={null}

2845API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.

2846API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.

2847```

2848 

2849La forma que menciona `a request sent without streaming` significa que una solicitud en streaming falló y Claude Code la volvió a enviar sin streaming, lo que limita la respuesta a 64,000 tokens de salida. Antes de v2.1.299, una respuesta cortada en una solicitud reenviada de ese modo terminaba el turno sin este mensaje, como si la respuesta estuviera completa.

2850 

2851**Qué hacer:**

2852 

2853* Si Claude escribió algo de texto antes de que se cortara la respuesta, responde `continue` en una sesión interactiva para pedir el resto. Ese texto permanece en la conversación.

2854* Si el mensaje indica que configures `CLAUDE_CODE_MAX_OUTPUT_TOKENS`, consulta [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/es/env-vars) para saber cómo se limita el valor y [Configurar variables de entorno](/docs/es/env-vars#set-environment-variables) para saber dónde configurarla

2855* Para mantener cada respuesta por debajo del límite, pídele a Claude la salida en partes más pequeñas, como un archivo o una sección por respuesta

2856 

2803<h3 id="tool-use-or-thinking-block-mismatch">2857<h3 id="tool-use-or-thinking-block-mismatch">

2804 Desajuste en bloques de uso de herramientas o de pensamiento2858 Desajuste en bloques de uso de herramientas o de pensamiento

2805</h3>2859</h3>


2936Las medidas de seguridad del modelo marcaron contenido de la conversación como un tema de ciberseguridad. El mensaje nombra el modelo que marcó la solicitud:2990Las medidas de seguridad del modelo marcaron contenido de la conversación como un tema de ciberseguridad. El mensaje nombra el modelo que marcó la solicitud:

2937 2991 

2938```text theme={null}2992```text theme={null}

2939API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2993API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2940```2994```

2941 2995 

2942Si el mensaje incluye la línea `` Details: `[reasoning_extraction]` ``, consulta [Las protecciones marcaron una solicitud del razonamiento de Claude](#safeguards-flagged-a-request-for-claudes-reasoning).2996Si el mensaje incluye la línea `` Details: `[reasoning_extraction]` ``, consulta [Las protecciones marcaron una solicitud del razonamiento de Claude](#safeguards-flagged-a-request-for-claudes-reasoning).


2945 2999 

2946En [Amazon Bedrock](/docs/es/amazon-bedrock), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), una marca de ciberseguridad produce en su lugar el mensaje de [rechazo por la Política de uso](#usage-policy-refusal).3000En [Amazon Bedrock](/docs/es/amazon-bedrock), [Agent Platform de Google Cloud](/docs/es/google-vertex-ai) y [Microsoft Foundry](/docs/es/microsoft-foundry), una marca de ciberseguridad produce en su lugar el mensaje de [rechazo por la Política de uso](#usage-policy-refusal).

2947 3001 

2948La protección en sí funciona del lado del servidor y es anterior a v2.1.203; desde entonces, las versiones del cliente solo han cambiado la redacción del mensaje.

2949De v2.1.203 a v2.1.218, el mensaje decía `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` seguido del mismo enlace al centro de ayuda, y las sesiones interactivas agregaban `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

2950Antes de v2.1.203, decía `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` seguido de un enlace a un formulario de exención.

2951 

2952**Qué hacer:**3002**Qué hacer:**

2953 3003 

2954* Si tu trabajo requiere este contenido, solicita acceso a través del [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)3004* Si tu trabajo requiere este contenido, solicita acceso a través del [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)

2955* Si tu solicitud no trataba sobre un tema de ciberseguridad, ejecuta `/feedback` para reportar el falso positivo3005* Si tu solicitud no trataba sobre un tema de ciberseguridad, ejecuta `/feedback` para reportar el falso positivo

2956* Para seguir trabajando en la misma sesión, presiona Esc dos veces o ejecuta `/rewind` para retroceder a un checkpoint anterior al turno que activó la marca, y luego adopta un enfoque diferente. Consulta [Checkpointing](/docs/es/checkpointing).3006* Para seguir trabajando en la misma sesión, presiona Esc dos veces o ejecuta `/rewind` para retroceder a un checkpoint anterior al turno que activó la marca, y luego adopta un enfoque diferente. Consulta [Checkpointing](/docs/es/checkpointing).

2957 3007 

3008Si el mensaje que ves está redactado como alguno de estos, se trata de la misma marca en una versión anterior de Claude Code:

3009 

3010* De v2.1.219 a v2.1.296, el mensaje también podía incluir `Apply to the Cyber Verification Program to reduce these interruptions.` antes de su oración final

3011* De v2.1.203 a v2.1.218, el mensaje decía `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` seguido del mismo enlace al centro de ayuda. En sesiones interactivas, continuaba con `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

3012* Antes de v2.1.203, decía `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` seguido de un enlace a un formulario de exención

3013 

2958<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">3014<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">

2959 Las protecciones marcaron una solicitud del razonamiento de Claude3015 Las protecciones marcaron una solicitud del razonamiento de Claude

2960</h3>3016</h3>


3012* Quita `-p` o `--print`. `--bg` recibe 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).3068* Quita `-p` o `--print`. `--bg` recibe 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).

3013* 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>"`3069* 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>"`

3014 3070 

3071<h3 id="couldnt-tell-whether-bg-is-a-flag-or-text">

3072 Couldn't tell whether `--bg` is a flag or text

3073</h3>

3074 

3075Ejecutaste `claude` con `--bg` o `--background` en una posición donde Claude Code no pudo determinar si lo usabas como el flag de segundo plano o como texto. El comando no inició nada, imprimió esta línea y salió con el código 1:

3076 

3077```text theme={null}

3078Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>

3079```

3080 

3081Si escribiste `--background`, la línea menciona `--background` en su lugar.

3082 

3083**Qué hacer:**

3084 

3085* Para iniciar una [sesión en segundo plano](/docs/es/agent-view#from-your-shell), vuelve a ejecutar el comando en tu shell con el flag primero: `claude --bg --name nightly-audit "<task>"`

3086 

3015<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">3087<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

3016 Conflicto entre un flag de prompt del sistema y su forma de archivo3088 Conflicto entre un flag de prompt del sistema y su forma de archivo

3017</h3>3089</h3>


3296 3368 

3297Antes 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`.3369Antes 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`.

3298 3370 

3371<h3 id="sandbox-is-not-supported-by-claude-remote-control">

3372 `--sandbox` or `--no-sandbox` is not supported by claude remote-control

3373</h3>

3374 

3375Este error significa que el comando que inicia tu servidor de [Remote Control](/docs/es/remote-control) pasa `--sandbox` o `--no-sandbox` después de `remote-control`, y `claude remote-control` no acepta ninguno de los dos flags. El servidor termina con el código 1 en lugar de iniciarse:

3376 

3377```text theme={null}

3378Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.

3379Error: --no-sandbox is not supported by claude remote-control. The flag had no effect and was removed. Remove it from the command.

3380```

3381 

3382**Qué hacer:**

3383 

3384* Quita el flag del comando, incluso en un script o una definición de servicio que inicie el servidor por ti, y luego vuelve a ejecutarlo

3385* Para ejecutar en el sandbox las sesiones que inicia el servidor, activa el [sandboxing](/docs/es/sandboxing) definiendo [`sandbox.enabled`](/docs/es/settings-reference#sandbox-enabled) como `true` en un [archivo de configuración](/docs/es/settings#where-settings-live)

3386 

3387Ambos flags se eliminaron de `claude remote-control` en v2.1.300, así que un comando escrito para una versión anterior todavía puede incluir uno.

3388 

3299<h3 id="claude-import-is-not-yet-available-in-this-build">3389<h3 id="claude-import-is-not-yet-available-in-this-build">

3300 claude import todavía no está disponible en esta compilación3390 claude import todavía no está disponible en esta compilación

3301</h3>3391</h3>


3542* Un remoto cuyo HEAD del lado del servidor apunta a una rama que nadie ha subido3632* Un remoto cuyo HEAD del lado del servidor apunta a una rama que nadie ha subido

3543* Un repositorio sin remoto `origin`, o uno del que nunca hiciste fetch3633* Un repositorio sin remoto `origin`, o uno del que nunca hiciste fetch

3544 3634 

3545Claude Code muestra el mismo error para cualquier skill que [inyecte 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 disparan antes de que el comando llegue a ejecutarse:3635Claude Code muestra el mismo error para cualquier skill que [inyecte contexto dinámico](/docs/es/skills#when-an-injected-command-fails), y un comando inyectado que falla aborta la invocación de ese skill.

3636 

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

3546 3638 

3547* `Shell command permission check failed for pattern "..."`: la comprobación de permisos del comando no lo permitió. [Comprobaciones de permisos en comandos inyectados](/docs/es/skills#permission-checks-on-injected-commands) explica qué resultados cancelan en cada modo de permisos y cómo aprobar previamente un comando con `allowed-tools`3639* `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`

3548* ``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)3640* ``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)

3641* `No shell command in <name> was run`: uno de los comandos `!` del archivo contiene un carácter de control sin procesar distinto de tabulación o salto de línea, así que ninguno de ellos se ejecuta. Consulta [cómo encontrar y eliminar el carácter](#no-shell-command-was-run)

3549 3642 

3550**Qué hacer:**3643**Qué hacer:**

3551 3644 


3553* 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.3646* 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.

3554* Si el repositorio no tiene remoto, agrega uno con `git remote add origin <url>` y haz fetch antes de crear la ref. 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.3647* Si el repositorio no tiene remoto, agrega uno con `git remote add origin <url>` y haz fetch antes de crear la ref. 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.

3555 3648 

3649<h3 id="no-shell-command-was-run">

3650 No shell command in a skill or command was run

3651</h3>

3652 

3653Uno de los [comandos de contexto dinámico](/docs/es/skills#inject-dynamic-context) `` !`<command>` `` de un archivo de skill o de comando personalizado contiene un carácter de control sin procesar distinto de tabulación o salto de línea. Claude Code rechaza toda la invocación antes de que se ejecute cualquiera de los comandos del archivo.

3654 

3655El mensaje nombra la herramienta de shell que habría ejecutado los comandos, Bash o PowerShell, y termina con el comando rechazado. Cada uno de esos caracteres se reemplaza por `�` para que puedas ver dónde está:

3656 

3657```text theme={null}

3658No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.

3659build.sh --target�dist

3660```

3661 

3662**Qué hacer:**

3663 

3664* Encuentra cada `�` en el comando citado al final del mensaje. Elimina el carácter que representa del archivo de skill o de comando, o de los argumentos u opciones que se sustituyen en el archivo.

3665 

3556<h3 id="input-must-be-provided-when-using-print">3666<h3 id="input-must-be-provided-when-using-print">

3557 Se debe proporcionar una entrada al usar `--print`3667 Se debe proporcionar una entrada al usar `--print`

3558</h3>3668</h3>


3694 3804 

3695* **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 anterior3805* **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

3696* **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>`)``3806* **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>`)``

3697* **Pasaste una rama base que no estaba en tu clon**: Claude Code la obtuvo de origin antes de comparar. La sugerencia dice ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; cuando Claude Code no puede determinar si tu clon es superficial, sugiere `git fetch --unshallow origin` en su lugar. Antes de v2.1.221, la sugerencia proponía `git fetch --unshallow origin` para toda rama base obtenida, y en un clon completo ese comando falla con `fatal: --unshallow on a complete repository does not make sense`.3807* **Pasaste una rama base que no estaba en tu clon**: Claude Code la obtuvo de origin antes de comparar. La sugerencia dice ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; cuando Claude Code no puede determinar si tu clon es superficial, 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`.

3698 3808 

3699**Qué hacer:**3809**Qué hacer:**

3700 3810 


4124 Marketplace name is another spelling of a reserved name4234 Marketplace name is another spelling of a reserved name

4125</h3>4235</h3>

4126 4236 

4127El nombre del marketplace no es en sí mismo un nombre reservado, pero Claude Code lo trata como otra ortografía de uno. [Reserved names](/docs/es/plugins/marketplace-reference#reserved-name-spellings) enumera qué ortografías cuentan como un nombre reservado. Claude Code rechaza tal nombre cuando agrega el marketplace:4237El nombre del marketplace no es en sí mismo un nombre reservado, pero Claude Code lo trata como otra ortografía de uno. [Nombres reservados](/docs/es/plugins/marketplace-reference#reserved-name-spellings) enumera qué ortografías cuentan como un nombre reservado. Claude Code rechaza tal nombre cuando agrega el marketplace:

4128 4238 

4129```text theme={null}4239```text theme={null}

4130Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.4240Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.


5499 5609 

5500* En el `command` del hook que ejecuta el script que nombra la notificación, encierra la ruta entre comillas dobles. En un archivo JSON, escríbelo como `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.5610* En el `command` del hook que ejecuta el script que nombra la notificación, encierra la ruta entre comillas dobles. En un archivo JSON, escríbelo como `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.

5501 5611 

5612<h3 id="instruction-file-not-loaded">

5613 Instruction file not loaded

5614</h3>

5615 

5616Este aviso en la vista de conversación de una sesión interactiva significa que un [archivo de memoria](/docs/es/memory#how-claude-md-files-load) que existe no se cargó. Hay una restricción de lectura vigente.

5617 

5618```text theme={null}

5619Instruction file not loaded (a Read deny rule covers it):

5620path: .claude/rules/shared.md

5621```

5622 

5623El paréntesis nombra el motivo, por ejemplo:

5624 

5625* **`a Read deny rule covers it`**: una [regla deny](/docs/es/permissions#read-and-edit) de `Read` coincide con la ruta del archivo tal como está escrita o con el destino al que lleva un enlace en ella

5626* **`it's read from outside your working directories, where reads are blocked`**: el archivo se resuelve fuera de los [directorios de trabajo](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) mientras [`permissions.blockReadsOutsideWorkingDirectories`](/docs/es/settings-reference#permissions-blockreadsoutsideworkingdirectories) está activado

5627* **`where it leads couldn't be worked out`**: por ejemplo, el archivo es un enlace que lleva de vuelta a sí mismo, directamente o a través de otros enlaces

5628 

5629Cuando el propio archivo de memoria de un subdirectorio no se puede cargar mientras Claude trabaja con archivos allí, las mismas líneas aparecen en la conversación durante el turno. Cuando se retienen más archivos de los que nombran las líneas, una línea final cuenta el resto, como `and 3 more instruction files not loaded`.

5630 

5631**Qué hacer:**

5632 

5633* Nada, si la restricción es intencionada: la sesión se ejecuta sin las instrucciones de ese archivo.

5634* Para cargar un archivo retenido porque `a Read deny rule covers it`, [elimina o acota esa regla](/docs/es/permissions#manage-permissions). Luego inicia una nueva sesión.

5635* Para cargar un archivo retenido porque `it's read from outside your working directories, where reads are blocked`, muévelo a él o al destino de su enlace dentro de los directorios de trabajo. Luego inicia una nueva sesión.

5636* Para cargar un archivo retenido porque `where it leads couldn't be worked out`, comprueba si el archivo es un enlace que lleva de vuelta a sí mismo. Si lo es, apunta el enlace a un archivo que exista o pon un archivo normal en su lugar. Luego inicia una nueva sesión.

5637 

5638Antes de v2.1.292, el aviso nombraba el archivo al final de la misma línea, después del motivo.

5639 

5502<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">5640<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

5503 Una skill, comando o flujo de trabajo no se cargó porque su nombre está reservado5641 Una skill, comando o flujo de trabajo no se cargó porque su nombre está reservado

5504</h3>5642</h3>


5683 5821 

5684Antes de v2.1.257, **Reconnect** y re-habilitar en `/mcp` podían conectar un servidor que una actualización de política a mitad de sesión bloqueó.5822Antes de v2.1.257, **Reconnect** y re-habilitar en `/mcp` podían conectar un servidor que una actualización de política a mitad de sesión bloqueó.

5685 5823 

5824<h3 id="mcp-server-name-is-reserved">

5825 El nombre del servidor MCP está reservado

5826</h3>

5827 

5828Este mensaje nombra uno de tus servidores MCP, cuyo nombre está entre los que Claude Code reserva, como los nombres de sus servidores integrados:

5829 

5830```text theme={null}

5831"workspace" is a reserved MCP server name and was not loaded

5832```

5833 

5834**Qué hacer:**

5835 

5836* Renombra el servidor donde lo defines, por ejemplo de `workspace` a `my-workspace`

5837* Para otros nombres reservados que debes evitar, consulta [MCP configuration warnings](/docs/es/mcp#configuration-warnings)

5838 

5686<h3 id="managed-settings-document-could-not-be-parsed">5839<h3 id="managed-settings-document-could-not-be-parsed">

5687 El documento de configuración administrada no se pudo analizar5840 El documento de configuración administrada no se pudo analizar

5688</h3>5841</h3>


5737 5890 

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

5739 5892 

5893<h3 id="managed-settings-hooks-not-loaded">

5894 Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded

5895</h3>

5896 

5897Este bloque de stderr de una ejecución `-p` significa que una fuente de [configuración administrada](/docs/es/managed-settings) contiene una entrada de hook que Claude Code no puede cargar. Ese hook no se ejecuta, y cuando una línea indica que el campo `hooks` de la fuente se ignora, no se ejecuta ninguno de los hooks de esa fuente.

5898 

5899Cada línea nombra la fuente, el campo cuando lo hay, y el problema, como un `type` de hook desconocido o un hook declarado fuera de la clave `hooks`:

5900 

5901```text theme={null}

5902Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:

5903 <source> (<field>): <message>

5904```

5905 

5906**Qué hacer:**

5907 

5908* Si administras la fuente, corrige o elimina cada entrada que enumera el bloque. [Hook configuration](/docs/es/hooks#configuration) muestra la forma que Claude Code espera bajo `hooks`.

5909* Si la fuente de una línea es `parent managed settings`, la aplicación que inició Claude Code pasó esa entrada como [configuración principal](/docs/es/managed-settings#parent-settings-from-embedding-hosts), así que repórtalo al desarrollador de esa aplicación

5910* De lo contrario, envía el bloque a tu administrador

5911 

5912Antes de v2.1.300, una ejecución `-p` enumeraba este caso bajo el encabezado `Managed settings failed to load; policies from the failed source are NOT in effect:`.

5913 

5740<h3 id="otelheadershelper-failed">5914<h3 id="otelheadershelper-failed">

5741 otelHeadersHelper falló5915 otelHeadersHelper falló

5742</h3>5916</h3>


5955 6129 

5956Antes de v2.1.233, Claude Code no escribía ninguna línea cuando enviaba una solicitud para un ID de modelo que no reconocía.6130Antes de v2.1.233, Claude Code no escribía ninguna línea cuando enviaba una solicitud para un ID de modelo que no reconocía.

5957 6131 

6132<h3 id="sandbox-allow-entries-are-ignored-under-a-managed-lock">

6133 Las entradas allow del sandbox se ignoran bajo un bloqueo administrado

6134</h3>

6135 

6136Esta advertencia en `/status` y `claude doctor` significa que la configuración administrada establece [`allowManagedReadPathsOnly`](/docs/es/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) o [`allowManagedDomainsOnly`](/docs/es/settings-reference#sandbox-network-allowmanageddomainsonly), por lo que las entradas [`allowRead`](/docs/es/settings-reference#sandbox-filesystem-allowread) o [`allowedDomains`](/docs/es/settings-reference#sandbox-network-alloweddomains) del archivo que nombra no se aplican:

6137 

6138```text wrap theme={null}

6139sandbox.filesystem.allowRead is ignored — managed settings set allowManagedReadPathsOnly, so only allowRead paths from managed settings are honored. The 3 entries in /home/you/.claude/settings.json will NOT apply (see https://code.claude.com/docs/en/settings#sandbox-settings).

6140```

6141 

6142Para el bloqueo de red, la advertencia nombra `sandbox.network.allowedDomains` y `allowManagedDomainsOnly`, y dice `only allowed domains (and WebFetch domain rules) from managed settings are honored`.

6143 

6144**Qué hacer:**

6145 

6146* No es necesario que actúes ante la advertencia

6147* Si necesitas esas rutas o dominios y la configuración administrada de tu organización establece el bloqueo, pide a tu administrador que los agregue a esa configuración. La advertencia permanece hasta que también elimines las entradas del archivo nombrado.

6148* Para quitar la advertencia, elimina las entradas del archivo nombrado. En un archivo que compartes, como el `.claude/settings.json` de un proyecto, puedes dejar las entradas para los compañeros de equipo que no tienen el bloqueo y dejar que la advertencia siga apareciendo.

6149 

5958<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">6150<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">

5959 Archivos de máscara de sandbox obsoletos dejados por una sesión eliminada6151 Archivos de máscara de sandbox obsoletos dejados por una sesión eliminada

5960</h3>6152</h3>

Details

287 <Tip>Usa `disable-model-invocation: true` para skills con efectos secundarios. Esto ahorra contexto y garantiza que solo se ejecuten cuando los invocas por su nombre.</Tip>287 <Tip>Usa `disable-model-invocation: true` para skills con efectos secundarios. Esto ahorra contexto y garantiza que solo se ejecuten cuando los invocas por su nombre.</Tip>

288 </Tab>288 </Tab>

289 289 

290 <Tab title="MCP servers">290 <Tab title="Servidores MCP">

291 **Cuándo:** Inicio de sesión.291 **Cuándo:** Inicio de sesión.

292 292 

293 **Qué se carga:** Los nombres de herramientas y las instrucciones de los servidores conectados. Los esquemas JSON completos permanecen diferidos hasta que Claude necesita una herramienta específica.293 **Qué se carga:** Los nombres de herramientas y las instrucciones de los servidores conectados. Los esquemas JSON completos permanecen diferidos hasta que Claude necesita una herramienta específica.


297 <Tip>Ejecuta `/mcp` para ver el estado de conexión de cada servidor. Ejecuta `/context all` para ver cuántos tokens usa cada herramienta MCP cargada. Claude Code [se reconecta automáticamente a los servidores remotos](/docs/es/mcp#automatic-reconnection) si se desconectan, y puedes desconectar los servidores que no estés usando activamente.</Tip>297 <Tip>Ejecuta `/mcp` para ver el estado de conexión de cada servidor. Ejecuta `/context all` para ver cuántos tokens usa cada herramienta MCP cargada. Claude Code [se reconecta automáticamente a los servidores remotos](/docs/es/mcp#automatic-reconnection) si se desconectan, y puedes desconectar los servidores que no estés usando activamente.</Tip>

298 </Tab>298 </Tab>

299 299 

300 <Tab title="Code intelligence">300 <Tab title="Inteligencia de código">

301 **Cuándo:** Después de editar archivos, y bajo demanda cuando Claude navega por el código.301 **Cuándo:** Después de editar archivos, y bajo demanda cuando Claude navega por el código.

302 302 

303 **Qué se carga:** Errores de tipo y advertencias después de cada edición de archivo. Información de definiciones, referencias y tipos cuando Claude busca un símbolo.303 **Qué se carga:** Errores de tipo y advertencias después de cada edición de archivo. Información de definiciones, referencias y tipos cuando Claude busca un símbolo.

Details

57 </Step>57 </Step>

58 58 

59 <Step title="Habilitar Code Review">59 <Step title="Habilitar Code Review">

60 Ve a [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) y habilita [Code Review](/docs/es/code-review#set-up-code-review) para tus repositorios de GHES usando la misma configuración que github.com.60 Ve a [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) y habilita [Code Review](/docs/es/code-review-setup) para tus repositorios de GHES usando la misma configuración que github.com.

61 </Step>61 </Step>

62</Steps>62</Steps>

63 63 

Details

222| `T{char}` | Saltar justo después de la ocurrencia anterior del carácter en la línea actual |222| `T{char}` | Saltar justo después de la ocurrencia anterior del carácter en la línea actual |

223| `;` | Repetir último movimiento f/F/t/T |223| `;` | Repetir último movimiento f/F/t/T |

224| `,` | Repetir último movimiento f/F/t/T en orden inverso |224| `,` | Repetir último movimiento f/F/t/T en orden inverso |

225| `%` | Saltar al corchete `()`, `[]` o `{}` correspondiente, comenzando desde el siguiente corchete en la línea actual cuando el cursor no está sobre un corchete. Requiere Claude Code v2.1.301 o posterior |

225| `/` | Abrir búsqueda de historial inverso, igual que `Ctrl+R`. El prompt de búsqueda vacío muestra una sugerencia: presione `Esc` luego `i` luego `/` para abrir el menú de comandos en su lugar |226| `/` | Abrir búsqueda de historial inverso, igual que `Ctrl+R`. El prompt de búsqueda vacío muestra una sugerencia: presione `Esc` luego `i` luego `/` para abrir el menú de comandos en su lugar |

226 227 

227<Note>228<Note>


243| `dj`/`dk` | Eliminar la línea actual y la línea debajo o arriba |244| `dj`/`dk` | Eliminar la línea actual y la línea debajo o arriba |

244| `dgg`/`dG` | Eliminar desde la línea actual hasta la primera o última línea |245| `dgg`/`dG` | Eliminar desde la línea actual hasta la primera o última línea |

245| `d0`/`c0`/`y0` | Eliminar, cambiar o yanquear desde el cursor hacia atrás hasta el principio de la línea. Requiere Claude Code v2.1.281 o posterior |246| `d0`/`c0`/`y0` | Eliminar, cambiar o yanquear desde el cursor hacia atrás hasta el principio de la línea. Requiere Claude Code v2.1.281 o posterior |

247| `d%`/`c%`/`y%` | Eliminar, cambiar o yanquear desde el cursor hasta el corchete al que salta `%`, incluido. Requiere Claude Code v2.1.301 o posterior |

246| `cc` | Cambiar línea |248| `cc` | Cambiar línea |

247| `C` | Cambiar hasta el final de la línea |249| `C` | Cambiar hasta el final de la línea |

248| `cw`/`ce`/`cb` | Cambiar palabra/hasta el final/hacia atrás |250| `cw`/`ce`/`cb` | Cambiar palabra/hasta el final/hacia atrás |

mcp.md +1 −1

Details

1632 1632 

1633Antes de v2.1.296, el límite más corto era de 2.048 caracteres, y antes de v2.1.295 se aplicaba a todas las descripciones de herramientas, incluidas las que se cargan a través de la búsqueda de herramientas.1633Antes de v2.1.296, el límite más corto era de 2.048 caracteres, y antes de v2.1.295 se aplicaba a todas las descripciones de herramientas, incluidas las que se cargan a través de la búsqueda de herramientas.

1634 1634 

1635Para cambiar los límites para cada servidor MCP en tu sesión, establece [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/es/env-vars#variables) en un número de caracteres. El número que establezcas reemplaza ambos límites: `8192`, por ejemplo, aumenta el límite más corto y reduce el más largo. Esta variable requiere Claude Code v2.1.280 o posterior.1635Las descripciones y las instrucciones de algunos de los servidores MCP que Anthropic aloja en `api.anthropic.com` llegan completas a Claude. Para cambiar los límites para los demás servidores MCP de tu sesión, establece [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/es/env-vars#variables) en un número de caracteres. El número que establezcas reemplaza ambos límites: `8192`, por ejemplo, aumenta el límite más corto y reduce el más largo. Esta variable requiere Claude Code v2.1.280 o posterior.

1636 1636 

1637<h4 id="per-tool-alwaysload">1637<h4 id="per-tool-alwaysload">

1638 Marcar una herramienta para que se cargue por adelantado o permanezca diferida1638 Marcar una herramienta para que se cargue por adelantado o permanezca diferida

Details

378 ```powershell theme={null}378 ```powershell theme={null}

379 $env:MCP_TIMEOUT = "60000"; claude379 $env:MCP_TIMEOUT = "60000"; claude

380 ```380 ```

381 

382 Antes de v2.1.299, algunas conexiones a servidores HTTP que estaban activos agotaban el tiempo de espera al iniciar independientemente de `MCP_TIMEOUT`. Si usas una de esas versiones y un servidor HTTP que está activo sigue agotando el tiempo de espera después de aumentar el límite, [actualiza Claude Code](/docs/es/setup#update-claude-code).

381 </Accordion>383 </Accordion>

382 384 

383 <Accordion title="Server already exists">385 <Accordion title="Server already exists">

memory.md +1 −0

Details

648Para depurar:648Para depurar:

649 649 

650* Ejecuta `/context` y revisa la lista bajo **Memory files** para verificar los archivos CLAUDE.md y CLAUDE.local.md que deberían cargarse al iniciar. Si falta uno allí, Claude no puede verlo. Usa `/memory` para abrir y editar los archivos.650* Ejecuta `/context` y revisa la lista bajo **Memory files** para verificar los archivos CLAUDE.md y CLAUDE.local.md que deberían cargarse al iniciar. Si falta uno allí, Claude no puede verlo. Usa `/memory` para abrir y editar los archivos.

651* Si aparece un aviso `Instruction file not loaded`, consulta [qué significa y qué hacer al respecto](/docs/es/errors#instruction-file-not-loaded).

651* Un `CLAUDE.md` en un subdirectorio de tu directorio de trabajo no aparece bajo **Memory files**, porque se carga bajo demanda en lugar de al iniciar. Cuando se carga, aparece en la terminal una línea `Loaded` con su ruta. Para probar uno nuevo, créalo desde tu shell en lugar de pedirle a Claude que lo escriba, y luego pídele a Claude que lea un archivo en ese subdirectorio.652* Un `CLAUDE.md` en un subdirectorio de tu directorio de trabajo no aparece bajo **Memory files**, porque se carga bajo demanda en lugar de al iniciar. Cuando se carga, aparece en la terminal una línea `Loaded` con su ruta. Para probar uno nuevo, créalo desde tu shell en lugar de pedirle a Claude que lo escriba, y luego pídele a Claude que lea un archivo en ese subdirectorio.

652* Verifica que el CLAUDE.md relevante esté en una ubicación que se cargue para tu sesión (consulta [Elige dónde colocar los archivos CLAUDE.md](#choose-where-to-put-claude-md-files)).653* Verifica que el CLAUDE.md relevante esté en una ubicación que se cargue para tu sesión (consulta [Elige dónde colocar los archivos CLAUDE.md](#choose-where-to-put-claude-md-files)).

653* Haz instrucciones más específicas. "Usar indentación de 2 espacios" funciona mejor que "formatear código bien".654* Haz instrucciones más específicas. "Usar indentación de 2 espacios" funciona mejor que "formatear código bien".

model-config.md +20 −0

Details

895 Corregir la ventana para un gateway o ID de modelo personalizado895 Corregir la ventana para un gateway o ID de modelo personalizado

896</h3>896</h3>

897 897 

898Cualquiera de estas advertencias de inicio significa que Claude Code no reconoce el ID de modelo de tu sesión, por lo que no puede determinar la ventana de contexto del modelo y asume 200K tokens:

899 

900```text theme={null}

901⚠ Model "my-gateway-opus" isn't recognized · context assumed to be 200k tokens · ...

902Claude Code doesn't recognize the model "my-gateway-opus", so it assumes a context window of 200k tokens. Update Claude Code, or see https://code.claude.com/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id to set the window.

903```

904 

905Claude Code [compacta automáticamente](#default-auto-compact-thresholds) la conversación en los 200K asumidos, por lo que si la ventana de contexto real del modelo es de 200K, no hay nada que corregir. De lo contrario, indícale a Claude Code la ventana real de la forma que se ajuste a tu ID:

906 

907* **Un modelo más reciente que tu versión de Claude Code**: ejecuta `claude update` en tu shell. Si Claude Code reconoce el ID después de la actualización, no necesitas configurar nada más.

908* **El nombre que tu gateway o proveedor da a un modelo que Claude Code conoce**: agrega una entrada de [`modelOverrides`](#override-model-ids-per-version) que asigne el ID de modelo de Anthropic a tu ID, como `"claude-opus-4-8": "my-gateway-opus"`. En su lugar, puedes incluir tu ID en una fila de [`modelPicker`](/docs/es/settings-reference#fields-for-modelpicker) con `behavesAs` establecido en ese modelo. En cualquier caso, Claude Code trata entonces el ID como ese modelo.

909* **Un modelo con una ventana de 1M**: agrega `[1m]` al final del ID donde estableces el modelo, como `claude --model 'my-gateway-opus[1m]'` en tu shell. Si [desactivaste el contexto de 1M](#turn-off-1m-context), obtienes la misma ventana con o sin el sufijo.

910* **Cualquier otra ventana**: establece [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/es/env-vars) al tamaño de la ventana en tokens en el entorno que inicia Claude Code, como `CLAUDE_CODE_MAX_CONTEXT_TOKENS=400000`. Para un ID no reconocido que no comienza con `claude-` y no tiene el sufijo `[1m]`, la variable tiene efecto por sí sola. Para cualquier otro ID, consulta primero [a qué ID se aplica](#which-ids-claude_code_max_context_tokens-applies-to).

911 

912Una vez que Claude Code reconoce el ID o usa la ventana que le indicaste, la advertencia ya no aparece cuando inicias una sesión con ese ID.

913 

914<h4 id="which-ids-claude_code_max_context_tokens-applies-to">

915 A qué ID se aplica `CLAUDE_CODE_MAX_CONTEXT_TOKENS`

916</h4>

917 

898En un [gateway LLM](/docs/es/llm-gateway) u otro despliegue personalizado, Claude Code puede asumir una ventana de contexto para el ID del modelo que difiere de la ventana real del modelo, independientemente de si resuelve el ID a un modelo Claude. Establece [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/es/env-vars) a la ventana que Claude Code debe asumir en su lugar.918En un [gateway LLM](/docs/es/llm-gateway) u otro despliegue personalizado, Claude Code puede asumir una ventana de contexto para el ID del modelo que difiere de la ventana real del modelo, independientemente de si resuelve el ID a un modelo Claude. Establece [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/es/env-vars) a la ventana que Claude Code debe asumir en su lugar.

899 919 

900Cómo se aplica la variable depende del ID. Claude Code trata un ID como una grafía de proveedor o personalizada cuando no comienza con `claude-`, sin distinguir mayúsculas de minúsculas, o cuando lleva un sufijo que Claude Code elimina al leer el ID, como la fecha `@YYYYMMDD` utilizada en Google Cloud's Agent Platform. Antes de v2.1.259, Claude Code no contaba un sufijo eliminado, por lo que un ID `claude-` no reconocido con un sufijo de fecha se trataba como un nombre `claude-` simple.920Cómo se aplica la variable depende del ID. Claude Code trata un ID como una grafía de proveedor o personalizada cuando no comienza con `claude-`, sin distinguir mayúsculas de minúsculas, o cuando lleva un sufijo que Claude Code elimina al leer el ID, como la fecha `@YYYYMMDD` utilizada en Google Cloud's Agent Platform. Antes de v2.1.259, Claude Code no contaba un sufijo eliminado, por lo que un ID `claude-` no reconocido con un sufijo de fecha se trataba como un nombre `claude-` simple.

Details

6 6 

7> Aprende cómo habilitar y configurar OpenTelemetry para Claude Code.7> Aprende cómo habilitar y configurar OpenTelemetry para Claude Code.

8 8 

9Rastrea el uso de Claude Code, costos y actividad de herramientas en toda tu organización exportando datos de telemetría a través de OpenTelemetry (OTel). Claude Code exporta métricas como datos de series temporales a través del protocolo estándar de métricas, eventos a través del protocolo de registros/eventos, y opcionalmente trazas distribuidas a través del [protocolo de trazas](#traces-beta).9Rastrea el uso de Claude Code, costos y actividad de herramientas en toda tu organización exportando datos de telemetría a través de OpenTelemetry (OTel). Claude Code exporta métricas como datos de series temporales a través del protocolo estándar de métricas, eventos a través del protocolo de registros/eventos, y opcionalmente [trazas distribuidas a través de OpenTelemetry](#traces-beta).

10 

11<Note>

12 Para la API de Claude o Managed Agents, consulta [OpenTelemetry para la API de Claude](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

13</Note>

10 14 

11<h2 id="quick-start">15<h2 id="quick-start">

12 Inicio rápido16 Inicio rápido

Details

84* **La política de red cubre `$.http.fetch`.**84* **La política de red cubre `$.http.fetch`.**

85 85 

86 * **La política de tu organización no permite WebFetch**: Claude Code también rechaza todas las solicitudes `$.http.fetch` de cualquier mod. Consulta [Disponibilidad de WebFetch](/docs/es/tools-reference#webfetch-availability).86 * **La política de tu organización no permite WebFetch**: Claude Code también rechaza todas las solicitudes `$.http.fetch` de cualquier mod. Consulta [Disponibilidad de WebFetch](/docs/es/tools-reference#webfetch-availability).

87 * **Desactivas la herramienta WebFetch con [`CLAUDE_CODE_DISABLE_WEB_FETCH`](/docs/es/env-vars#variables) o una [regla de denegación](/docs/es/permissions#tool-specific-permission-rules) de `WebFetch`, en la configuración administrada o en cualquier otro archivo de configuración**: los mods aún pueden hacer solicitudes `$.http.fetch`.

88 

89 Para detenerlas en todos los mods que instalen tus usuarios, [impide que se carguen los mods instalados por los usuarios](#stop-user-installed-mods-from-loading), o intercepta `http.fetch` con un hook en un [mod de políticas](#enforce-a-policy-with-a-mod-of-your-own) y rechaza las solicitudes de los mods de los usuarios. Dale a ese hook un [controlador `.catch`](/docs/es/plugins/mods/events#handle-a-hook-that-fails) que también rechace, porque Claude Code omite un hook que falla y entonces la solicitud sigue adelante. Si solo [restringes qué plugins pueden instalar los usuarios](/docs/es/plugins/org#restrict-what-users-can-install), se cargan menos mods, pero los que permites aún hacen estas solicitudes.

87 * **Configuras [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars)**: un mod que tú o tus usuarios instalen aún puede hacer estas solicitudes. La variable solo detiene los [mods integrados en Claude Code](/docs/es/plugins/mods/overview#mods-built-into-claude-code), además de cualquier solicitud `$.http.fetch` que lleve las credenciales de Anthropic de la sesión. Antes de la v2.1.288, la variable detenía todas las solicitudes `$.http.fetch` de cualquier mod.90 * **Configuras [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/es/env-vars)**: un mod que tú o tus usuarios instalen aún puede hacer estas solicitudes. La variable solo detiene los [mods integrados en Claude Code](/docs/es/plugins/mods/overview#mods-built-into-claude-code), además de cualquier solicitud `$.http.fetch` que lleve las credenciales de Anthropic de la sesión. Antes de la v2.1.288, la variable detenía todas las solicitudes `$.http.fetch` de cualquier mod.

88 91 

89 Ninguna de las dos cubre un programa que el mod inicia con `$.process.run`, que accede a la red con el propio acceso del usuario.92 Ninguna de estas opciones cubre un programa que el mod inicia con `$.process.run`, que accede a la red con el propio acceso del usuario.

90* **Los controles de plugins cubren los mods.** Un mod es un plugin, así que la [configuración que restringe lo que los usuarios pueden instalar](/docs/es/plugins/org#restrict-what-users-can-install), como `strictKnownMarketplaces`, decide si puede instalarse en absoluto.93* **Los controles de plugins cubren los mods.** Un mod es un plugin, así que la [configuración que restringe lo que los usuarios pueden instalar](/docs/es/plugins/org#restrict-what-users-can-install), como `strictKnownMarketplaces`, decide si puede instalarse en absoluto.

91* **Los mods no pueden cambiar la solicitud de permiso.** Un mod puede cambiar el estilo de gran parte de la interfaz de Claude Code, pero no de la solicitud de permiso, así que no puede cambiar lo que muestra una solicitud. Un mod aún puede aprobar o denegar una llamada a herramienta antes de que aparezca la solicitud, como se describe en [Conoce lo que ocurre de forma predeterminada](#know-what-happens-by-default).94* **Los mods no pueden cambiar la solicitud de permiso.** Un mod puede cambiar el estilo de gran parte de la interfaz de Claude Code, pero no de la solicitud de permiso, así que no puede cambiar lo que muestra una solicitud. Un mod aún puede aprobar o denegar una llamada a herramienta antes de que aparezca la solicitud, como se describe en [Conoce lo que ocurre de forma predeterminada](#know-what-happens-by-default).

92* **Las solicitudes de confianza van primero.** En una sesión interactiva en un directorio en el que el usuario aún no ha confiado, ningún mod se carga hasta que responde a la solicitud de confianza.95* **Las solicitudes de confianza van primero.** En una sesión interactiva en un directorio en el que el usuario aún no ha confiado, ningún mod se carga hasta que responde a la solicitud de confianza.

Details

234| `$.ui.toast(text)` | Una notificación emergente con el nombre del mod que desaparece después de unos segundos. Es un cuadro en la parte superior derecha en el [renderizado de pantalla completa](/docs/es/fullscreen), y una línea a la derecha debajo del prompt en el renderizador clásico. |234| `$.ui.toast(text)` | Una notificación emergente con el nombre del mod que desaparece después de unos segundos. Es un cuadro en la parte superior derecha en el [renderizado de pantalla completa](/docs/es/fullscreen), y una línea a la derecha debajo del prompt en el renderizador clásico. |

235| `$.ui.log(text)` | Una línea atenuada en la transcripción que Claude no lee. Comienza con `●` y el nombre del mod, como en `● my-mod: build finished`. |235| `$.ui.log(text)` | Una línea atenuada en la transcripción que Claude no lee. Comienza con `●` y el nombre del mod, como en `● my-mod: build finished`. |

236 236 

237En la [extensión de VS Code](/docs/es/plugins/mods/interface#draw-in-the-vs-code-extension), las líneas de estado y las notificaciones emergentes se muestran encima del cuadro del prompt, y las líneas de registro, en la conversación.

238 

237<h3 id="start-a-turn-from-a-background-job">239<h3 id="start-a-turn-from-a-background-job">

238 Iniciar un turno desde un trabajo en segundo plano240 Iniciar un turno desde un trabajo en segundo plano

239</h3>241</h3>

Details

226| `Spinner`, `ToolProgress`, `TurnDuration` | Líneas de estado de un turno: la línea que se anima mientras Claude trabaja, la línea de progreso en vivo de una herramienta en ejecución y la línea que cierra un turno |226| `Spinner`, `ToolProgress`, `TurnDuration` | Líneas de estado de un turno: la línea que se anima mientras Claude trabaja, la línea de progreso en vivo de una herramienta en ejecución y la línea que cierra un turno |

227| `InfoNotice`, `SessionMode`, `PromptHint` | Líneas de estado bajo el logotipo, las etiquetas de modo en el pie y la línea de sugerencia bajo el prompt |227| `InfoNotice`, `SessionMode`, `PromptHint` | Líneas de estado bajo el logotipo, las etiquetas de modo en el pie y la línea de sugerencia bajo el prompt |

228 228 

229`Pane`, `AskUserQuestion`, `Spinner`, `UserMessage`, `AssistantMessage` y los puntos de llamadas a herramientas funcionan en la terminal, la aplicación Desktop y la extensión de VS Code. La [tabla de puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) indica dónde se genera cada uno de los demás.

230 

229En un punto que Claude Code ya dibuja, tu hook puede cambiar un detalle, reemplazar el dibujo o dejarlo como está. Selecciona una pestaña para ver cada opción aplicada al spinner. Los ejemplos leen una variable `calls` que otro hook cuenta, como en el [mod del tutorial](/docs/es/plugins/mods/create#write-a-mod-yourself).231En un punto que Claude Code ya dibuja, tu hook puede cambiar un detalle, reemplazar el dibujo o dejarlo como está. Selecciona una pestaña para ver cada opción aplicada al spinner. Los ejemplos leen una variable `calls` que otro hook cuenta, como en el [mod del tutorial](/docs/es/plugins/mods/create#write-a-mod-yourself).

230 232 

231<Tabs>233<Tabs>


297 299 

298La solicitud de permiso no es un punto de renderizado, así que un mod no puede cambiar lo que muestra. El diálogo de preguntas, `AskUserQuestion`, sí lo es, así que un mod puede cambiarlo. Un árbol para el diálogo debe contener la referencia exactamente una vez, con tus elementos encima. De lo contrario, Claude Code dibuja su propio diálogo.300La solicitud de permiso no es un punto de renderizado, así que un mod no puede cambiar lo que muestra. El diálogo de preguntas, `AskUserQuestion`, sí lo es, así que un mod puede cambiarlo. Un árbol para el diálogo debe contener la referencia exactamente una vez, con tus elementos encima. De lo contrario, Claude Code dibuja su propio diálogo.

299 301 

300La terminal y la aplicación Desktop no generan los mismos puntos. `Pane`, `AbovePrompt`, `Spinner` y los puntos de la transcripción funcionan en ambas. Algunas otras líneas de estado solo se generan en la terminal. La [tabla de puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) indica dónde se genera cada uno.

301 

302<h3 id="open-a-pane-at-the-right-time">302<h3 id="open-a-pane-at-the-right-time">

303 Abre un panel en el momento adecuado303 Abre un panel en el momento adecuado

304</h3>304</h3>


328| `rows` | La altura que se solicita cuando el panel está encima del prompt. El valor predeterminado es un tercio del espacio. |328| `rows` | La altura que se solicita cuando el panel está encima del prompt. El valor predeterminado es un tercio del espacio. |

329| `columns` | El ancho que se solicita cuando el panel está junto a la transcripción |329| `columns` | El ancho que se solicita cuando el panel está junto a la transcripción |

330 330 

331La [extensión de VS Code](#draw-in-the-vs-code-extension) ignora `rows` y `columns` y ajusta el tamaño del panel por sí misma.

332 

331`focus`, `closeOnEscape` y `holdToasts` son opcionales y solo aceptan `true`. Para no usar uno, omítelo. Pasar `false` genera un error como `ui.open: focus is true or left out`. Para establecer uno de ellos de forma condicional, agrega el campo solo cuando se cumpla la condición. Esta llamada solicita el foco del teclado solo cuando `items` no está vacío:333`focus`, `closeOnEscape` y `holdToasts` son opcionales y solo aceptan `true`. Para no usar uno, omítelo. Pasar `false` genera un error como `ui.open: focus is true or left out`. Para establecer uno de ellos de forma condicional, agrega el campo solo cuando se cumpla la condición. Esta llamada solicita el foco del teclado solo cuando `items` no está vacío:

332 334 

333```javascript theme={null}335```javascript theme={null}


356 358 

357Cuando el panel aparece, `$.ui.open` se resuelve como `{ isPlaced: true }`. Cuando el panel está en espera, `isPlaced` es `false` y `reason` es una cadena que explica el motivo. Un panel en espera aparece cuando el usuario lo abre o amplía la terminal. Para avisar que algo está disponible sin abrir un panel, llama a `$.ui.toast('Your message')`, que muestra una notificación toast.359Cuando el panel aparece, `$.ui.open` se resuelve como `{ isPlaced: true }`. Cuando el panel está en espera, `isPlaced` es `false` y `reason` es una cadena que explica el motivo. Un panel en espera aparece cuando el usuario lo abre o amplía la terminal. Para avisar que algo está disponible sin abrir un panel, llama a `$.ui.toast('Your message')`, que muestra una notificación toast.

358 360 

361<h3 id="draw-in-the-vs-code-extension">

362 Dibuja en la extensión de VS Code

363</h3>

364 

365En la extensión de VS Code, lo que dibuja un mod aparece en el panel de chat con la versión 2.1.299 o posterior de la extensión, en una sesión que [obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). En un hook `ui.render` para el panel, `e.surface` es `vscode`. Para comprobar qué puntos y elementos dibuja el panel, y qué props ignora, consulta las tablas de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y de [elementos](/docs/es/plugins/mods/reference#elements).

366 

367Para que un mod funcione en el panel además de en la terminal, ten en cuenta estas diferencias:

368 

369* **Paneles**: en un panel de 800 píxeles de ancho o más, los paneles se acoplan junto a la conversación, `e.props.placement` es `'dock'` y `e.viewport.isFullscreen` es `true`. En un panel más estrecho, los paneles se dibujan encima del cuadro del prompt, `placement` es `'inline'` y un panel muestra 12 filas antes de desplazarse.

370* **Toasts y líneas de estado**: se ubican en una sola pila directamente encima del cuadro del prompt, junto con los paneles cuando el panel es estrecho, con una línea de estado por mod. La pila se oculta mientras se muestra una solicitud de permiso o un diálogo.

371* **Etiquetas**: el panel enmarca lo que un mod dibuja o reescribe y lo etiqueta con el nombre del plugin, como en **From the token-chart plugin** o **Edited by the token-chart plugin**.

372* **Teclado**: los botones no tienen teclas de acceso rápido, así que el usuario hace clic en un botón o presiona Enter sobre él una vez que tiene el foco.

373* **Foco del teclado**: el panel concede la solicitud `focus: true` de un panel solo cuando el panel tiene el foco, Claude está inactivo sin ninguna pregunta pendiente y el cuadro del prompt está vacío.

374* **El diálogo de preguntas**: en `AskUserQuestion`, el panel conserva su propia tarjeta de pregunta y dibuja tus elementos encima de ella. Las props que pasas a `next` no cambian la tarjeta.

375* **Sugerencias de prompt**: `$.prompt.suggest` se resuelve con `isShown: false` y no muestra nada, porque el panel reserva el texto de sugerencia atenuado del cuadro del prompt para las sugerencias propias de Claude.

376* **Límites de texto**: el panel corta una línea de estado a los 200 caracteres o dos filas, y un toast a los 500 caracteres.

377 

359<h2 id="build-a-tree-from-elements">378<h2 id="build-a-tree-from-elements">

360 Construye un árbol a partir de elementos379 Construye un árbol a partir de elementos

361</h2>380</h2>

362 381 

363Lo que devuelve un hook `ui.render` es un árbol de elementos: una descripción de lo que se debe dibujar, hecha de cajas, texto y controles anidados unos dentro de otros. Tú describes el dibujo, y Claude Code lo renderiza en la terminal o en la aplicación Desktop.382Lo que devuelve un hook `ui.render` es un árbol de elementos: una descripción de lo que se debe dibujar, hecha de cajas, texto y controles anidados unos dentro de otros. Tú describes el dibujo, y Claude Code lo renderiza en la aplicación que el usuario tenga abierta: la terminal, la aplicación Desktop o la extensión de VS Code.

364 383 

365Para obtener los elementos, llama a `$.ui.resolve(e)` en tu hook, como en `const { Box, Text, Button } = $.ui.resolve(e)`. Cada elemento es una función. Le pasas props, y pones los elementos y cadenas que van dentro de él en `children`.384Para obtener los elementos, llama a `$.ui.resolve(e)` en tu hook, como en `const { Box, Text, Button } = $.ui.resolve(e)`. Cada elemento es una función. Le pasas props, y pones los elementos y cadenas que van dentro de él en `children`.

366 385 


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

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

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

443| `Input`, `Select` | Un campo de texto y una lista desplegable | Terminal, Desktop |462| `Input`, `Select` | Un campo de texto y una lista desplegable | Terminal, Desktop, VS Code |

444| `Svg` | Un documento SVG | Desktop |463| `Svg` | Un documento SVG | Desktop, VS Code |

445| `Client` | Una región dibujada por un segundo archivo tuyo, para animación y entrada del puntero. Ese archivo no recibe la API de mods. Llega a tus hooks publicando datos, que llegan como un evento `ui.message`. Si no logra cargarse, dibujarse o ejecutarse, tus hooks reciben un evento [`ui.fault`](/docs/es/plugins/mods/reference#interface). | Terminal, Desktop |464| `Client` | Una región dibujada por un segundo archivo tuyo, para animación y entrada del puntero. Ese archivo no recibe la API de mods. Llega a tus hooks publicando datos, que llegan como un evento `ui.message`. Si no logra cargarse, dibujarse o ejecutarse, tus hooks reciben un evento [`ui.fault`](/docs/es/plugins/mods/reference#interface). | Terminal, Desktop |

446| `Raster`, `Image` | Una [cuadrícula de celdas de colores](#draw-a-grid-of-colored-cells) y una imagen | Terminal |465| `Raster`, `Image` | Una [cuadrícula de celdas de colores](#draw-a-grid-of-colored-cells) y una imagen | Terminal |

447 466 


452En una sesión iniciada con `--plugin-dir`, una línea de la transcripción lo indica, por ejemplo `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. El [registro de depuración](/docs/es/plugins/mods/troubleshoot#read-the-debug-log) lo registra como `ui.render (Pane): a hook returned a tree that does not validate` con el mismo motivo. No aparece nada más en la sesión, así que cuando un dibujo no se muestre, revisa esa línea o el registro.471En una sesión iniciada con `--plugin-dir`, una línea de la transcripción lo indica, por ejemplo `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. El [registro de depuración](/docs/es/plugins/mods/troubleshoot#read-the-debug-log) lo registra como `ui.render (Pane): a hook returned a tree that does not validate` con el mismo motivo. No aparece nada más en la sesión, así que cuando un dibujo no se muestre, revisa esa línea o el registro.

453 472 

454<h3 id="link-in-the-desktop-app">473<h3 id="link-in-the-desktop-app">

455 `Link` en la aplicación Desktop474 `Link` en la aplicación Desktop y VS Code

456</h3>475</h3>

457 476 

458En la aplicación Desktop, un `Link` se dibuja como texto sin formato a menos que su `href` cumpla estos requisitos:477En la aplicación Desktop y la extensión de VS Code, un `Link` se dibuja como texto sin formato a menos que su `href` cumpla estos requisitos:

459 478 

460* **Esquema y host**: una URL `https:`, o una URL `http://localhost` como `http://localhost:3000`479* **Esquema y host**: una URL `https:`, o una URL `http://localhost` como `http://localhost:3000`

461* **Sin `@`**: escribe un `@` en la ruta o la consulta como `%40`480* **Sin `@`**: escribe un `@` en la ruta o la consulta como `%40`


477 496 

478Para un mapa de calor, un minigráfico o un tablero de juego en la terminal, dibuja un solo `Raster` y no un `Box` por cada celda. Un `Raster` recibe una `key`, su tamaño en `columns` y `rows`, y `cells`, una cadena base64 que empaqueta todas las celdas. Cada celda son tres números: el punto de código del carácter, su color y su color de fondo. Un color es un valor RGB de 24 bits en hexadecimal, como `0xc62828` para un rojo. El valor `0x01000000`, uno por encima de ese rango, significa el predeterminado de la terminal.497Para un mapa de calor, un minigráfico o un tablero de juego en la terminal, dibuja un solo `Raster` y no un `Box` por cada celda. Un `Raster` recibe una `key`, su tamaño en `columns` y `rows`, y `cells`, una cadena base64 que empaqueta todas las celdas. Cada celda son tres números: el punto de código del carácter, su color y su color de fondo. Un color es un valor RGB de 24 bits en hexadecimal, como `0xc62828` para un rojo. El valor `0x01000000`, uno por encima de ese rango, significa el predeterminado de la terminal.

479 498 

480La aplicación Desktop no tiene `Raster`, así que comprueba `e.surface` y dibuja texto allí. Este cuerpo de panel dibuja un mapa de calor de tres por dos:499Las aplicaciones distintas de la terminal no tienen `Raster`, así que comprueba `e.surface` y dibuja texto allí. Este cuerpo de panel dibuja un mapa de calor de tres por dos:

481 500 

482```javascript theme={null}501```javascript theme={null}

483// The value that means "use the terminal's default color"502// The value that means "use the terminal's default color"


535 554 

536Tu mod nunca lee el teclado por sí mismo. El usuario pulsa una tecla, Claude Code decide a cuál de tus controles va dirigida y se ejecuta el callback de ese control. Aparte de una [tecla de acceso rápido numérica en la banda](/docs/es/plugins/mods/reference#elements), eso solo ocurre mientras tu panel o banda tiene el foco del teclado. El resto del tiempo, las teclas van al prompt.555Tu mod nunca lee el teclado por sí mismo. El usuario pulsa una tecla, Claude Code decide a cuál de tus controles va dirigida y se ejecuta el callback de ese control. Aparte de una [tecla de acceso rápido numérica en la banda](/docs/es/plugins/mods/reference#elements), eso solo ocurre mientras tu panel o banda tiene el foco del teclado. El resto del tiempo, las teclas van al prompt.

537 556 

557En la [extensión de VS Code](#draw-in-the-vs-code-extension), los botones no tienen teclas de acceso rápido: el usuario hace clic en un botón o pulsa Enter sobre él, y escribe en los campos.

558 

538<h4 id="how-a-pane-gets-keyboard-focus">559<h4 id="how-a-pane-gets-keyboard-focus">

539 Cómo obtiene un panel el foco del teclado560 Cómo obtiene un panel el foco del teclado

540</h4>561</h4>


570 Establecer una tecla de acceso rápido y el primer foco591 Establecer una tecla de acceso rápido y el primer foco

571</h4>592</h4>

572 593 

573Estas props de un control deciden cómo llega el teclado a él:

574 

575* **`hotkey`**: para que el usuario pueda pulsar un `Button` con una sola tecla, dale una `hotkey` de un dígito o una letra minúscula, como en `hotkey: 'a'`594* **`hotkey`**: para que el usuario pueda pulsar un `Button` con una sola tecla, dale una `hotkey` de un dígito o una letra minúscula, como en `hotkey: 'a'`

576* **`autoFocus`**: para elegir qué control tiene el foco cuando se abre el panel, añádele `autoFocus: true`. La prop solo acepta `true`, así que omítela en los demás controles.595* **`autoFocus`**: para elegir qué control tiene el foco cuando se abre el panel, añádele `autoFocus: true`. En la [extensión de VS Code](#draw-in-the-vs-code-extension), `autoFocus` no hace nada: el control se dibuja como si lo hubieras omitido, y no necesitas cambiar nada. La prop solo acepta `true`, así que omítela en los demás controles.

577 596 

578Cómo se muestra una tecla de acceso rápido depende del botón y de la app:597Cómo se muestra una tecla de acceso rápido depende del botón y de la app:

579 598 

580| Botón | En la terminal | En la app de escritorio |599| Botón | En la terminal | En la app de escritorio | En la extensión de VS Code |

581| :- | :- | :- |600| :- | :- | :- | :- |

582| Con corchetes, el predeterminado | `[ Add one ]`, sin mostrar la tecla de acceso rápido | La etiqueta con una pequeña tecla al lado |601| Con corchetes, el predeterminado | `[ Add one ]`, sin mostrar la tecla de acceso rápido | La etiqueta con una pequeña tecla al lado | La etiqueta, y la tecla de acceso rápido no hace nada |

583| Con `plain: true` | `1: One` | La etiqueta con una pequeña tecla al lado |602| Con `plain: true` | `1: One` | La etiqueta con una pequeña tecla al lado | La etiqueta, y la tecla de acceso rápido no hace nada |

584 603 

585En la terminal, nombra la tecla en la etiqueta de un botón con corchetes, o usa `plain: true`, para que el usuario vea qué pulsar. La [referencia de elementos](/docs/es/plugins/mods/reference#elements) tiene las demás reglas de `Button`: `action`, las teclas de acceso rápido numéricas en la banda y dos botones con la misma tecla de acceso rápido.604En la terminal, nombra la tecla en la etiqueta de un botón con corchetes, o usa `plain: true`, para que el usuario vea qué pulsar. La [referencia de elementos](/docs/es/plugins/mods/reference#elements) tiene las demás reglas de `Button`: `action`, las teclas de acceso rápido numéricas en la banda y dos botones con la misma tecla de acceso rápido.

586 605 

Details

24* **Ejecutar tu propio código con un comando**: un `/command` que ejecuta tu función de inmediato, sin un turno de Claude, incluso mientras Claude está trabajando. Consulta [Agregar un comando o una herramienta](/docs/es/plugins/mods/api#add-a-command-or-a-tool).24* **Ejecutar tu propio código con un comando**: un `/command` que ejecuta tu función de inmediato, sin un turno de Claude, incluso mientras Claude está trabajando. Consulta [Agregar un comando o una herramienta](/docs/es/plugins/mods/api#add-a-command-or-a-tool).

25* **Compartir datos entre hooks**: los hooks de un mod comparten las variables de su archivo, así que lo que un hook registra, otro puede mostrarlo. Por ejemplo, un hook puede contar las llamadas a herramientas mientras otro muestra el recuento junto al indicador de actividad, o uno puede leer el uso de tokens de cada solicitud mientras otro lo grafica en un panel. Consulta [Reaccionar a eventos](/docs/es/plugins/mods/events).25* **Compartir datos entre hooks**: los hooks de un mod comparten las variables de su archivo, así que lo que un hook registra, otro puede mostrarlo. Por ejemplo, un hook puede contar las llamadas a herramientas mientras otro muestra el recuento junto al indicador de actividad, o uno puede leer el uso de tokens de cada solicitud mientras otro lo grafica en un panel. Consulta [Reaccionar a eventos](/docs/es/plugins/mods/events).

26 26 

27Los mods funcionan en la CLI de Claude Code y en la pestaña Code de la aplicación Claude Desktop. Consulta [Dónde se ejecutan los mods](#where-mods-run) para entender cómo se comportan en otros lugares, como en la extensión de VS Code, `claude -p` y las sesiones en la nube. Si un hook de configuración, un skill o un servidor MCP ya hace lo que necesitas, [compáralos](#compare-mods-settings-hooks-skills-and-mcp-servers) antes de escribir un mod. Para administrar mods para una organización, consulta [Administrar mods para tu organización](/docs/es/plugins/mods/admin).27Los mods funcionan en la CLI de Claude Code, en la pestaña Code de la aplicación Claude Desktop y en la extensión de VS Code. Consulta [Dónde se ejecutan los mods](#where-mods-run) para entender cómo se comportan en otros lugares, como en `claude -p` y las sesiones en la nube. Si un hook de configuración, un skill o un servidor MCP ya hace lo que necesitas, [compáralos](#compare-mods-settings-hooks-skills-and-mcp-servers) antes de escribir un mod. Para administrar mods para una organización, consulta [Administrar mods para tu organización](/docs/es/plugins/mods/admin).

28 28 

29<h2 id="get-a-mod">29<h2 id="get-a-mod">

30 Obtén un mod30 Obtén un mod


212 Dónde se ejecutan los mods212 Dónde se ejecutan los mods

213</h3>213</h3>

214 214 

215Los hooks de un mod se ejecutan en todo tipo de sesión que cargue el plugin, sea cual sea el proveedor que sirva el modelo, incluidos Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry. El dibujo es más limitado: solo la terminal y la app de escritorio muestran los paneles, las bandas y las filas reemplazadas de un mod. Esta tabla lista cada lugar donde podrías ejecutar Claude Code:215Los hooks de un mod se ejecutan en todo tipo de sesión que cargue el plugin, sea cual sea el proveedor que sirva el modelo, incluidos Amazon Bedrock, Agent Platform de Google Cloud y Microsoft Foundry. El dibujo es más limitado: lo que dibuja un mod aparece en la terminal, la app de escritorio y la extensión de VS Code. Esta tabla lista cada lugar donde podrías ejecutar Claude Code:

216 216 

217| Dónde ejecutas Claude Code | Los hooks se ejecutan | Lo que dibuja el mod aparece |217| Dónde ejecutas Claude Code | Los hooks se ejecutan | Lo que dibuja el mod aparece |

218| :- | :- | :- |218| :- | :- | :- |

219| `claude` en una terminal, incluida la terminal integrada de un editor y el plugin de JetBrains | Sí | Sí |219| `claude` en una terminal, incluida la terminal integrada de un editor y el plugin de JetBrains | Sí | Sí |

220| La pestaña Code de la app de escritorio, excepto en una sesión de WSL | Sí | Sí, excepto los elementos que la [tabla de elementos](/docs/es/plugins/mods/reference#elements) marca como exclusivos de la terminal |220| La pestaña Code de la app de escritorio, excepto en una sesión de WSL | Sí | Sí, excepto los elementos que la [tabla de elementos](/docs/es/plugins/mods/reference#elements) marca como exclusivos de la terminal |

221| Una [sesión de WSL](/docs/es/desktop-wsl) en la app de escritorio | No, porque los plugins no están disponibles en las sesiones de WSL | No |221| Una [sesión de WSL](/docs/es/desktop-wsl) en la app de escritorio | No, porque los plugins no están disponibles en las sesiones de WSL | No |

222| El panel de chat de la extensión de VS Code | Sí | No |222| El panel de chat de la extensión de VS Code | Sí | Sí, con la versión 2.1.299 o posterior de la extensión, en una sesión que [obtiene feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). Las tablas de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y de [elementos](/docs/es/plugins/mods/reference#elements) marcan lo que dibuja el panel. |

223| `claude -p` y el [Agent SDK](/docs/es/agent-sdk/overview) | Sí | No |223| `claude -p` y el [Agent SDK](/docs/es/agent-sdk/overview) | Sí | No |

224| [Remote Control](/docs/es/remote-control) desde claude.ai o la app móvil | Sí, en la sesión de tu máquina | En la terminal de tu máquina |224| [Remote Control](/docs/es/remote-control) desde claude.ai o la app móvil | Sí, en la sesión de tu máquina | En la terminal de tu máquina |

225| Una [sesión en la nube](/docs/es/claude-code-on-the-web) | Sí, para un plugin que [llega a la sesión en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup) | No |225| Una [sesión en la nube](/docs/es/claude-code-on-the-web) | Sí, para un plugin que [llega a la sesión en la nube](/docs/es/cloud-environments#what-carries-over-from-your-setup) | No |

Details

6 6 

7> Referencia completa de los mods de Claude Code: estructura del módulo de hooks, eventos, métodos de la API de mods, puntos de renderizado, elementos por superficie, límites y configuración.7> Referencia completa de los mods de Claude Code: estructura del módulo de hooks, eventos, métodos de la API de mods, puntos de renderizado, elementos por superficie, límites y configuración.

8 8 

9Consulta cualquier evento que un [mod](/docs/es/plugins/mods/overview) puede manejar, cualquier método de la API de mods que puede llamar o cualquier punto de renderizado en el que puede dibujar, para la CLI de Claude Code y la app de escritorio a partir de la v2.1.290. Cada entrada indica el nombre y una descripción de una línea, y enlaza a la sección de la guía que lo explica cuando existe.9Consulta cualquier evento que un [mod](/docs/es/plugins/mods/overview) puede manejar, cualquier método de la API de mods que puede llamar o cualquier punto de renderizado en el que puede dibujar. Las entradas cubren la CLI de Claude Code y la app de escritorio a partir de la v2.1.290, y la extensión de VS Code a partir de la v2.1.299. Cada entrada indica el nombre y una descripción de una línea, y enlaza a la sección de la guía que lo explica cuando existe.

10 10 

11<Note>11<Note>

12 La referencia completa son las [declaraciones de TypeScript para mods](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) de Claude Code, que describen cada evento, método y elemento, con ejemplos. La copia en GitHub puede ser más antigua que la versión de Claude Code que tienes instalada. Cuando ambas no coincidan, confía en [la copia que Claude Code escribe para tu versión](/docs/es/plugins/mods/create#get-the-types-for-your-build).12 La referencia completa son las [declaraciones de TypeScript para mods](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) de Claude Code, que describen cada evento, método y elemento, con ejemplos. La copia en GitHub puede ser más antigua que la versión de Claude Code que tienes instalada. Cuando ambas no coincidan, confía en [la copia que Claude Code escribe para tu versión](/docs/es/plugins/mods/create#get-the-types-for-your-build).


255 Puntos de renderizado255 Puntos de renderizado

256</h2>256</h2>

257 257 

258Un punto de renderizado es un punto de extensión en la interfaz de Claude Code. Cada fila es un valor de `e.component` en un hook `ui.render`, con los campos de `e.props` y las apps que lo renderizan. `e.surface` es `terminal` o `desktop`. [Cambiar lo que Claude Code ya dibuja](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) muestra lo que un hook puede hacer en un punto de renderizado, con un ejemplo de cada opción.258Un punto de renderizado es un punto de extensión en la interfaz de Claude Code. Cada fila es un valor de `e.component` en un hook `ui.render`, con los campos de `e.props` y las apps que lo renderizan. `e.surface` indica la app que está dibujando, como `terminal`, `desktop` o `vscode`. [Cambiar lo que Claude Code ya dibuja](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) muestra lo que un hook puede hacer en un punto de renderizado, con un ejemplo de cada opción.

259 

260Renderizar en la extensión de VS Code requiere la versión 2.1.299 o posterior de la extensión y una sesión que [obtenga los feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). [Dibujar en la extensión de VS Code](/docs/es/plugins/mods/interface#draw-in-the-vs-code-extension) enumera lo que la extensión dibuja de forma diferente.

259 261 

260| Punto de renderizado | `e.props` | `e.requestId` | Se renderiza en |262| Punto de renderizado | `e.props` | `e.requestId` | Se renderiza en |

261| :- | :- | :- | :- |263| :- | :- | :- | :- |

262| [`Pane`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | El `id` del panel | Terminal, Desktop |264| [`Pane`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | El `id` del panel | Terminal, Desktop, VS Code |

263| [`AbovePrompt`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una instancia | Terminal, Desktop |265| [`AbovePrompt`](/docs/es/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Una instancia | Terminal, Desktop |

264| `UserMessage` | `text`, `origin`, `isExpanded`, y `task` o `from` según el origen | El id del mensaje | Terminal, Desktop |266| `UserMessage` | `text`, `origin`, `isExpanded`, y `task` o `from` según el origen | El id del mensaje | Terminal, Desktop, VS Code |

265| `AssistantMessage` | El texto de la respuesta | El id del mensaje | Terminal, Desktop |267| `AssistantMessage` | El texto de la respuesta | El id del mensaje | Terminal, Desktop, VS Code |

266| `ToolUse`, `ToolResult`, `ToolGroup` | El nombre, la entrada y el resultado de la herramienta | El id de la llamada a herramienta | Terminal, Desktop |268| `ToolUse`, `ToolResult`, `ToolGroup` | El nombre, la entrada y el resultado de la herramienta | El id de la llamada a herramienta | Terminal, Desktop, VS Code |

267| `CommandOutput` | `command`, `text` | El id del mensaje | Terminal, Desktop |269| `CommandOutput` | `command`, `text` | El id del mensaje | Terminal, Desktop |

268| [`AskUserQuestion`](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) | La pregunta y las opciones | El id de la llamada a herramienta | Terminal, Desktop |270| [`AskUserQuestion`](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) | La pregunta y las opciones | El id de la llamada a herramienta | Terminal, Desktop, VS Code |

269| `ToolProgress` | `kind` | El id de la llamada a herramienta | Terminal |271| `ToolProgress` | `kind` | El id de la llamada a herramienta | Terminal |

270| [`Spinner`](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | El id del agente | Terminal, Desktop |272| [`Spinner`](/docs/es/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | El id del agente | Terminal, Desktop, VS Code |

271| `TurnDuration` | `word`, `durationMs` | El id del mensaje | Terminal |273| `TurnDuration` | `word`, `durationMs` | El id del mensaje | Terminal |

272| `InfoNotice` | `text`, `command` | El id del mensaje | Terminal |274| `InfoNotice` | `text`, `command` | El id del mensaje | Terminal |

273| `SessionMode` | `modes` | Una instancia | Terminal, Desktop |275| `SessionMode` | `modes` | Una instancia | Terminal, Desktop |

274| `PromptHint` | `isDraft`, `isWorking`, `hint` | Una instancia | Terminal, Desktop |276| `PromptHint` | `isDraft`, `isWorking`, `hint` | Una instancia | Terminal, Desktop |

275 277 

276`e.viewport` contiene `columns`, `rows` e `isFullscreen`. No está presente hasta que la app ha medido su ventana. Su `rows` es la altura de toda la ventana, no la de tu panel.278`e.viewport` contiene `columns`, `rows` e `isFullscreen`. En la terminal y en la app Desktop, no está presente hasta que la app ha medido su ventana. Ahí, su `rows` es la altura de toda la ventana, no la de tu panel. En la extensión de VS Code, siempre está presente.

277 279 

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

279 281 

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

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

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

283 285 

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

285 287 


289 291 

290Los elementos son los bloques de construcción de un árbol que devuelve un hook `ui.render`, y los obtienes de `$.ui.resolve(e)`. [Crea un árbol a partir de elementos](/docs/es/plugins/mods/interface#build-a-tree-from-elements) muestra los más comunes junto con cómo los dibuja la terminal, y la [galería de interfaces](/docs/es/plugins/mods/gallery) tiene capturas de pantalla de la mayoría. Una marca de verificación significa que la aplicación puede dibujar el elemento.292Los elementos son los bloques de construcción de un árbol que devuelve un hook `ui.render`, y los obtienes de `$.ui.resolve(e)`. [Crea un árbol a partir de elementos](/docs/es/plugins/mods/interface#build-a-tree-from-elements) muestra los más comunes junto con cómo los dibuja la terminal, y la [galería de interfaces](/docs/es/plugins/mods/gallery) tiene capturas de pantalla de la mayoría. Una marca de verificación significa que la aplicación puede dibujar el elemento.

291 293 

292| Elemento | Props principales | Terminal | Escritorio |294| Elemento | Props principales | Terminal | Escritorio | VS Code |

293| :- | :- | :-: | :-: |295| :- | :- | :-: | :-: | :-: |

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

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

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

297| [`Link`](/docs/es/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consulta [Límites](#limits). | ✓ | ✓ |299| [`Link`](/docs/es/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Consulta [Límites](#limits). | ✓ | ✓ | ✓ |

298| [`Code`](/docs/es/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ |300| [`Code`](/docs/es/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |

299| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ |301| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |

300| [`Input`](/docs/es/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ |302| [`Input`](/docs/es/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ | ✓ |

301| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ |303| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ | ✓ |

302| `Svg` | Un documento SVG, hasta 131,072 caracteres | | ✓ |304| `Svg` | Un documento SVG, hasta 131,072 caracteres | | ✓ | ✓ |

303| [`Client`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ |305| [`Client`](/docs/es/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ | |

304| [`Raster`](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` hasta 512, `rows` hasta 256, `cells`. Consulta [Dibuja una cuadrícula de celdas de colores](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | |306| [`Raster`](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` hasta 512, `rows` hasta 256, `cells`. Consulta [Dibuja una cuadrícula de celdas de colores](/docs/es/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | | |

305| `Image` | Bytes PNG o RGBA de hasta 2 MiB, o una ruta de archivo, `columns` y `rows` hasta 255, y texto `alt`. | ✓ | |307| `Image` | Bytes PNG o RGBA de hasta 2 MiB, o una ruta de archivo, `columns` y `rows` hasta 255, y texto `alt`. | ✓ | | |

306 308 

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

308 310 

311La extensión de VS Code ignora algunas props de los elementos y dibuja el elemento como si las hubieras omitido:

312 

313* **`Box`**: `position` y `hover`

314* **`Button`**: `hotkey`, `plain`, `autoFocus` y `action`, así que allí el usuario presiona un botón con un clic, o con Enter una vez que tiene el foco

315* **`Code`**: `language`, `path`, `startLine`, `format` y `wrap`, así que el código se dibuja sin colores ni números de línea, y un bloque `format: 'diff'` muestra el texto sin procesar del diff

316* **`Input` y `Select`**: `autoFocus`

317 

309<h3 id="box-border-styles">318<h3 id="box-border-styles">

310 Estilos de borde de `Box`319 Estilos de borde de `Box`

311</h3>320</h3>

Details

289 Los atajos de teclado no hacen nada289 Los atajos de teclado no hacen nada

290</h3>290</h3>

291 291 

292Tu panel no tiene el foco del teclado.292Tu panel no tiene el foco del teclado, o el dibujo está en la extensión de VS Code, donde los botones no tienen atajos de teclado. Haz lo que corresponda:

293 293 

294Presiona Ctrl+X y luego Tab, o haz clic en el panel. Ábrelo con `focus: true` desde un comando.294* **Sin foco del teclado**: presiona Ctrl+X y luego Tab, o haz clic en el panel. Para que el panel tome el foco al abrirse, ábrelo con `focus: true` desde un comando.

295* **En la extensión de VS Code**: haz clic en el botón, o presiona Enter sobre él cuando tenga el foco

295 296 

296<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">297<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app-or-vs-code">

297 Un dibujo funciona en la terminal y no en la app de escritorio298 Un dibujo funciona en la terminal y no en la app de escritorio ni en VS Code

298</h3>299</h3>

299 300 

300El punto de renderizado o el elemento no está disponible allí.301O bien esa app no dibuja el punto de renderizado o el elemento, o bien la sesión es una en la que la extensión de VS Code no dibuja nada para los mods. Los demás hooks del mod se siguen ejecutando. Revisa estas causas:

301 302 

302Consulta las tablas de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y [elementos](/docs/es/plugins/mods/reference#elements).303* **El punto de renderizado o el elemento no se dibuja en esa app**: busca tu punto de renderizado en la tabla de [puntos de renderizado](/docs/es/plugins/mods/reference#render-sites) y tus elementos en la tabla de [elementos](/docs/es/plugins/mods/reference#elements). Para un elemento que la app no tiene, revisa `e.surface` en el hook y devuelve un árbol que la app pueda dibujar.

304* **La extensión de VS Code es anterior a 2.1.299**: el panel de chat dibuja para los mods a partir de la [versión de la extensión](/docs/es/vs-code#install-the-extension) 2.1.299. Revisa la versión en la vista Extensions de VS Code y actualiza la extensión ahí.

305* **La sesión de VS Code no obtiene los feature flags**: dibujar en el panel de chat lo requiere. Las sesiones en Amazon Bedrock, Agent Platform de Google Cloud o Microsoft Foundry, o a través de un [gateway de apps de Claude](/docs/es/claude-apps-gateway), lo omiten, entre otras que se enumeran en [Funciones que necesitan obtener feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). Para ver el dibujo en una sesión así, ejecuta `claude` en una terminal, como la terminal integrada de VS Code.

303 306 

304<h2 id="an-edit-or-a-value-is-lost">307<h2 id="an-edit-or-a-value-is-lost">

305 Se pierde una edición o un valor308 Se pierde una edición o un valor

Details

72 | `-d`, `--debug[=<filter>]` | Active el registro de depuración para el servidor, opcionalmente filtrado por categoría. Pase un filtro solo en la forma `=`, como `--debug=api,hooks`. Requiere Claude Code v2.1.282 o posterior. |72 | `-d`, `--debug[=<filter>]` | Active el registro de depuración para el servidor, opcionalmente filtrado por categoría. Pase un filtro solo en la forma `=`, como `--debug=api,hooks`. Requiere Claude Code v2.1.282 o posterior. |

73 | `--debug-file <path>` | Escriba registros de depuración en el archivo dado. |73 | `--debug-file <path>` | Escriba registros de depuración en el archivo dado. |

74 | `--verbose` | Mostrar registros detallados de conexión y sesión. |74 | `--verbose` | Mostrar registros detallados de conexión y sesión. |

75 | `--sandbox`, `--no-sandbox` | Eliminados en v2.1.300. Si pasas cualquiera de los dos flags, el servidor [sale con un error](/docs/es/errors#sandbox-is-not-supported-by-claude-remote-control) en lugar de iniciarse. |

75 76 

76 Si pasa una bandera global `claude` antes de `remote-control`, o un script contenedor agrega una, Claude Code no lleva la bandera a las sesiones que crea el servidor. Claude Code deja pasar la bandera solo cuando se sabe que dejarla no cambia lo que esas sesiones pueden hacer, como `--verbose` o `--model`. Para cualquier otra bandera, como `--settings`, Claude Code [se niega a iniciar](/docs/es/errors#not-carried-over-to-the-sessions-remote-control-starts) y nombra la bandera a eliminar.77 Si pasa una bandera global `claude` antes de `remote-control`, o un script contenedor agrega una, Claude Code no lleva la bandera a las sesiones que crea el servidor. Claude Code deja pasar la bandera solo cuando se sabe que dejarla no cambia lo que esas sesiones pueden hacer, como `--verbose` o `--model`. Para cualquier otra bandera, como `--settings`, Claude Code [se niega a iniciar](/docs/es/errors#not-carried-over-to-the-sessions-remote-control-starts) y nombra la bandera a eliminar.

77 78 

skills.md +8 −2

Details

720 720 

721También puedes apilar varios skills al inicio de un mensaje. Escribir `/write-tests /fix-issue 123` carga ambos skills y pasa el texto final `123` como `$ARGUMENTS` a cada uno de ellos.721También puedes apilar varios skills al inicio de un mensaje. Escribir `/write-tests /fix-issue 123` carga ambos skills y pasa el texto final `123` como `$ARGUMENTS` a cada uno de ellos.

722 722 

723Claude Code expande el primer skill más hasta cinco más apilados después de él. La expansión se detiene en el primer token que no es un skill invocable por el usuario en línea, por lo que un skill que se ejecuta como un [subagente bifurcado](#run-skills-in-a-subagent), como [`/code-review`](/docs/es/code-review#review-a-diff-locally), o uno cuyos argumentos pueden en sí mismos comenzar con un comando slash, como `/loop`, también termina la ejecución allí. Ese token y todo lo que viene después se convierte en el texto de argumento para cada skill expandido. `/code-review` se ejecuta como un subagente bifurcado desde v2.1.218; en versiones anteriores se ejecutaba en línea y se apilaba.723Claude Code expande el primer skill más hasta cinco más apilados después de él. La expansión se detiene en el primer token que no es un skill invocable por el usuario en línea, por lo que un skill que se ejecuta como un [subagente bifurcado](#run-skills-in-a-subagent), como [`/code-review`](/docs/es/code-review-local), o uno cuyos argumentos pueden en sí mismos comenzar con un comando de barra, como `/loop`, también termina la ejecución allí. Ese token y todo lo que viene después se convierte en el texto de argumento para cada skill expandido. `/code-review` se ejecuta como un subagente bifurcado desde v2.1.218; en versiones anteriores se ejecutaba en línea y se apilaba.

724 724 

725Para acceder a argumentos individuales por posición, usa `$ARGUMENTS[N]` o la forma más corta `$N`:725Para acceder a argumentos individuales por posición, usa `$ARGUMENTS[N]` o la forma más corta `$N`:

726 726 


832 832 

833Con el shell `bash` predeterminado, agregue `|| true` a cualquier otro comando que espere que salga con un código distinto de cero. Un script de verificación que sale con 1 cuando encuentra problemas es un ejemplo.833Con el shell `bash` predeterminado, agregue `|| true` a cualquier otro comando que espere que salga con un código distinto de cero. Un script de verificación que sale con 1 cuando encuentra problemas es un ejemplo.

834 834 

835<h4 id="control-characters-in-injected-commands">

836 Caracteres de control en comandos inyectados

837</h4>

838 

839`No shell command in <name> was run` significa que uno de los comandos `!` del archivo contiene un carácter de control sin procesar distinto de tabulación o salto de línea, por lo que no se ejecuta ninguno de ellos. Consulta [cómo encontrar y eliminar el carácter](/docs/es/errors#no-shell-command-was-run).

840 

835<h4 id="permission-checks-on-injected-commands">841<h4 id="permission-checks-on-injected-commands">

836 Verificaciones de permisos en comandos inyectados842 Verificaciones de permisos en comandos inyectados

837</h4>843</h4>


865 871 

866Un fork en segundo plano también se ejecuta con el [conjunto de herramientas más estrecho que se aplica a los subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background): el subagente de la skill es un tipo de agente regular, por lo que la exención para subagentes que bifurcan la conversación no lo cubre. Si los pasos de su skill dependen de una herramienta fuera de ese conjunto, establezca `background: false` para mantener el conjunto completo de herramientas.872Un fork en segundo plano también se ejecuta con el [conjunto de herramientas más estrecho que se aplica a los subagentes en segundo plano](/docs/es/sub-agents#run-subagents-in-foreground-or-background): el subagente de la skill es un tipo de agente regular, por lo que la exención para subagentes que bifurcan la conversación no lo cubre. Si los pasos de su skill dependen de una herramienta fuera de ese conjunto, establezca `background: false` para mantener el conjunto completo de herramientas.

867 873 

868Una skill bifurcada que se ejecuta en segundo plano aplica sus ediciones fuera de los [checkpoints](/docs/es/checkpointing) de su sesión, por lo que `/rewind` no las deshace; use git para revertirlas.874Un skill bifurcado que se ejecuta en segundo plano aplica sus ediciones fuera de los [checkpoints](/docs/es/checkpointing#subagent-edits-not-restored) de tu sesión. Después de uno, `/rewind` restaura solo los archivos que Claude ya había editado en tu conversación. Las ediciones del skill en otros archivos se mantienen, así que usa git para revertirlas.

869 875 

870<Warning>876<Warning>

871 `context: fork` solo tiene sentido para skills con instrucciones explícitas. Si su skill contiene directrices como "use estas convenciones de API" sin una tarea, el subagente recibe las directrices pero sin un prompt procesable, y regresa sin salida significativa.877 `context: fork` solo tiene sentido para skills con instrucciones explícitas. Si su skill contiene directrices como "use estas convenciones de API" sin una tarea, el subagente recibe las directrices pero sin un prompt procesable, y regresa sin salida significativa.

ultrareview.md +1 −1

Details

18* **Cobertura más amplia**: una flota más grande de agentes revisores explora el cambio en paralelo, lo que expone problemas que una revisión local podría perder18* **Cobertura más amplia**: una flota más grande de agentes revisores explora el cambio en paralelo, lo que expone problemas que una revisión local podría perder

19* **Sin uso de recursos locales**: la revisión se ejecuta completamente en un sandbox en la nube, por lo que su terminal permanece libre para otro trabajo mientras se ejecuta19* **Sin uso de recursos locales**: la revisión se ejecuta completamente en un sandbox en la nube, por lo que su terminal permanece libre para otro trabajo mientras se ejecuta

20 20 

21Ultrareview requiere autenticación con una cuenta de claude.ai porque se ejecuta como una sesión en la nube en la infraestructura de Anthropic. Si iniciaste sesión solo con una clave de API, ejecuta `/login` y autentícate primero con claude.ai. Ultrareview no está disponible cuando se usa Claude Code con Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, y no está disponible para organizaciones que han habilitado Zero Data Retention o que tienen aplicada la [configuración HIPAA](/docs/es/hipaa-setup). Cuando ultrareview no está disponible, `/code-review ultra` ejecuta en su lugar una revisión local en tu sesión.21Ultrareview requiere autenticación con una cuenta de claude.ai porque se ejecuta como una sesión en la nube en la infraestructura de Anthropic. Si iniciaste sesión solo con una clave de API, ejecuta `/login` y autentícate primero con claude.ai. Ultrareview no está disponible cuando se usa Claude Code con Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry, y no está disponible para organizaciones que han habilitado Zero Data Retention o que tienen aplicada la [configuración HIPAA](/docs/es/hipaa-setup). En estos casos, `/code-review ultra` ejecuta en su lugar una revisión local en tu sesión. Las organizaciones que usan [claves de cifrado administradas por el cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) no pueden ejecutar ultrareview. Para revisar tus cambios localmente, ejecuta `/code-review`.

22 22 

23<h2 id="run-ultrareview-from-the-cli">23<h2 id="run-ultrareview-from-the-cli">

24 Ejecuta ultrareview desde la CLI24 Ejecuta ultrareview desde la CLI

vs-code.md +170 −96

Details

108</Tip>108</Tip>

109 109 

110<h2 id="use-the-prompt-box">110<h2 id="use-the-prompt-box">

111 Usar el cuadro de solicitud111 Usar el cuadro de prompt

112</h2>112</h2>

113 113 

114El cuadro de solicitud admite varias características:114El cuadro de prompt admite varias funciones:

115 115 

116* **Modos de permiso**: haga clic en el indicador de modo en la parte inferior del cuadro de solicitud para cambiar los modos de permiso. Con Claude Code v2.1.283 o posterior, Auto es el modo de permiso inicial integrado, y en versiones anteriores solo en planes Pro, Max y Team. Consulte [cómo la extensión elige el modo de permiso inicial](/docs/es/permission-modes#switch-permission-modes) para saber qué cambia eso y todos los modos de permiso que ofrece el indicador.116* **Modos de permisos**: haz clic en el indicador de modo en la parte inferior del cuadro de prompt para cambiar de modo de permisos. Con Claude Code v2.1.283 o posterior, Auto es el modo de permisos inicial integrado; en versiones anteriores, solo en los planes Pro, Max y Team. Consulta [cómo elige la extensión el modo de permisos inicial](/docs/es/permission-modes#switch-permission-modes) para saber qué lo cambia y conocer todos los modos de permisos que ofrece el indicador.

117 * **Auto**: un clasificador revisa la mayoría de las acciones en lugar de pedirle permiso. Consulte [modo auto](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para saber qué revisa y bloquea.117 * **Auto**: un clasificador revisa la mayoría de las acciones en lugar de preguntarte. Consulta [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) para saber qué revisa y qué bloquea.

118 * **Manual**: Claude solicita permiso antes de ediciones de archivos y la mayoría de comandos de shell.118 * **Manual**: Claude pide permiso antes de editar archivos y de ejecutar la mayoría de los comandos de shell.

119 * **Plan**: Claude describe lo que hará y espera aprobación antes de hacer cambios. VS Code abre automáticamente el plan como un documento Markdown completo donde puede agregar comentarios en línea para dar retroalimentación antes de que Claude comience.119 * **Plan**: Claude describe lo que hará y espera tu aprobación antes de hacer cambios. VS Code abre automáticamente el plan como un documento Markdown completo donde puedes agregar comentarios en línea para dar retroalimentación antes de que Claude comience.

120 120 

121 También puede escribir `/plan` en el cuadro de solicitud. Requiere Claude Code v2.1.280 o posterior.121 También puedes escribir `/plan` en el cuadro de prompt. Requiere Claude Code v2.1.280 o posterior.

122 122 

123 * `/plan`: cambia al modo plan. Si ya está en modo plan, muestra el plan actual en su lugar.123 * `/plan`: cambia al modo plan. Si ya estás en modo plan, muestra el plan actual.

124 * `/plan` con una tarea, como `/plan fix the auth bug`: cambia al modo plan e inicia la planificación de esa tarea.124 * `/plan` con una tarea, como `/plan fix the auth bug`: cambia al modo plan y comienza a planificar esa tarea.

125 * `/plan open`: cuando ya está en modo plan, abre el archivo del plan en el editor.125 * `/plan open`: cuando ya estás en modo plan, abre el archivo del plan en el editor.

126 * **Edit automatically**: Claude realiza ediciones sin preguntar.126 * **Editar automáticamente**: Claude hace ediciones sin preguntar.

127* **Model**: selecciona **Switch model…** en el menú de comandos para cambiar el modelo durante la sesión. También puedes hacer clic en el nombre del modelo en la parte inferior del cuadro de prompt para abrir el mismo selector. Con Claude Code v2.1.284 o posterior, escribir `/model` por sí solo en el cuadro de prompt también abre el selector.127* **Modelo**: selecciona **Switch model…** en el menú de comandos para cambiar el modelo a mitad de la sesión. También puedes hacer clic en el nombre del modelo en la parte inferior del cuadro de prompt para abrir el mismo selector. Con Claude Code v2.1.284 o posterior, escribir `/model` por sí solo en el cuadro de prompt también abre el selector.

128 128 

129 Cuando el modelo actual admite [niveles de esfuerzo](/docs/es/model-config#adjust-effort-level), el selector también muestra una fila **Effort** y el botón del nombre del modelo muestra el nivel seleccionado. Cuando elige un nivel distinto de `max`, Claude Code lo guarda para el modelo actual como su predeterminado, bajo [`modelSettings`](/docs/es/settings-reference#modelsettings) en su configuración de usuario; `max` se aplica solo a la sesión actual. El botón del nombre del modelo y la fila **Effort** requieren Claude Code v2.1.257 o posterior.129 Cuando el modelo actual admite [niveles de esfuerzo](/docs/es/model-config#adjust-effort-level), el selector también muestra una fila **Effort** y el botón del nombre del modelo muestra el nivel seleccionado. Cuando eliges un nivel distinto de `max`, Claude Code lo guarda como tu predeterminado para el modelo actual, en [`modelSettings`](/docs/es/settings-reference#modelsettings) de tu configuración de usuario; `max` se aplica solo a la sesión actual. El botón del nombre del modelo y la fila **Effort** requieren Claude Code v2.1.257 o posterior.

130 130 

131 Cuando los [flujos de trabajo dinámicos](/docs/es/workflows) están habilitados y el modelo actual lo admite, aparece un conmutador **Ultracode** bajo la fila **Effort**. Actívelo para que Claude planifique un [flujo de trabajo](/docs/es/workflows#let-claude-decide-with-ultracode) para cada tarea sustancial en esta sesión, en el nivel de esfuerzo seleccionado. Mientras esté activado, el botón del nombre del modelo muestra `· Ultracode` después del nivel. El conmutador requiere Claude Code v2.1.284 o posterior.131 Cuando los [flujos de trabajo dinámicos](/docs/es/workflows) están habilitados y el modelo actual los admite, aparece un interruptor **Ultracode** debajo de la fila **Effort**. Actívalo para que Claude planifique un [flujo de trabajo](/docs/es/workflows#let-claude-decide-with-ultracode) para cada tarea sustancial de esta sesión, con el nivel de esfuerzo seleccionado. Mientras está activado, el botón del nombre del modelo muestra `· Ultracode` después del nivel. El interruptor requiere Claude Code v2.1.284 o posterior.

132* **Command menu**: haga clic en `/` o escriba `/` para abrir el menú de comandos. Las opciones incluyen adjuntar archivos, cambiar modelos y alternar el pensamiento extendido.132* **Menú de comandos**: haz clic en `/` o escribe `/` para abrir el menú de comandos. Las opciones incluyen adjuntar archivos, cambiar de modelo y activar o desactivar el pensamiento extendido.

133 133 

134 La sección Customize proporciona acceso a servidores MCP, comandos, estilos de salida, hooks, memoria, instrucciones, permisos y plugins. Los elementos con un icono de terminal se abren en la terminal integrada.134 La sección Customize incluye entradas como servidores MCP, comandos, estilos de salida, hooks, memoria, instrucciones, permisos y plugins. Los elementos con un ícono de terminal se abren en la terminal integrada.

135 135 

136 * Para examinar comandos como `/usage` o [`/remote-control`](/docs/es/remote-control), seleccione **Slash commands** en la sección Customize. Un diálogo los enumera con un cuadro de filtro. Elija uno para ejecutarlo. Escribir `/` en el cuadro de solicitud aún sugiere comandos en línea. Requiere Claude Code v2.1.257 o posterior.136 * Para explorar comandos como `/usage` o [`/remote-control`](/docs/es/remote-control), selecciona **Slash commands** en la sección Customize. Un cuadro de diálogo los enumera con un cuadro de filtro. Elige uno para ejecutarlo. Escribir `/` en el cuadro de prompt sigue sugiriendo comandos en línea. Requiere Claude Code v2.1.257 o posterior.

137 137 

138 Escribir `/skills` también abre este diálogo. Cada fila de [skill](/docs/es/skills) muestra su [visibilidad](/docs/es/skills#override-skill-visibility-from-settings), como **On** u **Name only**. Haga clic en la visibilidad para cambiarla, excepto en filas marcadas como **locked**, como skills de plugins. El atajo `/skills` y los controles de visibilidad requieren Claude Code v2.1.280 o posterior.138 Escribir `/skills` también abre este cuadro de diálogo. Cada fila de [skill](/docs/es/skills) muestra su [visibilidad](/docs/es/skills#override-skill-visibility-from-settings), como **On** o **Name only**. Haz clic en la visibilidad para cambiarla, excepto en las filas marcadas como **locked**, como los skills de plugins. El atajo `/skills` y los controles de visibilidad requieren Claude Code v2.1.280 o posterior.

139 * Seleccione **Output styles** en la sección Customize para elegir un [estilo de salida](/docs/es/output-styles), incluidos sus estilos personalizados. Requiere Claude Code v2.1.257 o posterior.139 * Selecciona **Output styles** en la sección Customize para elegir un [estilo de salida](/docs/es/output-styles), incluidos tus estilos personalizados. Requiere Claude Code v2.1.257 o posterior.

140 140 

141 Para crear un estilo personalizado en su lugar, seleccione **Build a custom style** desde el menú **Output styles**. Claude Code escribe el [archivo de estilo](/docs/es/output-styles#create-a-custom-output-style) para usted a nivel de proyecto o usuario. Requiere Claude Code v2.1.261 o posterior.141 Para crear un estilo personalizado, selecciona **Build a custom style** en el menú **Output styles**. Claude Code escribe el [archivo de estilo](/docs/es/output-styles#create-a-custom-output-style) por ti a nivel de proyecto o de usuario. Requiere Claude Code v2.1.261 o posterior.

142 * Seleccione **Hooks** en la sección Customize para ver los [hooks](/docs/es/hooks) cargados en la sesión, agrupados por evento. Puede agregar, editar o eliminar hooks guardados en sus archivos de configuración de usuario, proyecto y local. Los hooks de otras fuentes, como configuración administrada o plugins, son de solo lectura. Requiere Claude Code v2.1.269 o posterior.142 * Selecciona **Hooks** en la sección Customize para ver los [hooks](/docs/es/hooks) cargados en la sesión, agrupados por evento. Puedes agregar, editar o eliminar hooks guardados en tus archivos de configuración de usuario, de proyecto y local. Los hooks de otras fuentes, como la configuración administrada o los plugins, son de solo lectura. Requiere Claude Code v2.1.269 o posterior.

143 * Seleccione **Permissions** en la sección Customize para ver las [reglas de permiso](/docs/es/permissions) de la sesión, agrupadas en Allow, Ask y Deny. Puede agregar reglas a su configuración de usuario, proyecto o local y eliminar reglas guardadas allí. Las reglas de otras fuentes, como configuración administrada o aprobaciones realizadas solo para esta sesión, son de solo lectura. Requiere Claude Code v2.1.269 o posterior.143 * Selecciona **Permissions** en la sección Customize para ver las [reglas de permisos](/docs/es/permissions) de la sesión, agrupadas en Allow, Ask y Deny. Puedes agregar reglas a tu configuración de usuario, de proyecto o local y eliminar las reglas guardadas allí. Las reglas de otras fuentes, como la configuración administrada o las aprobaciones hechas solo para esta sesión, son de solo lectura. Requiere Claude Code v2.1.269 o posterior.

144 * Seleccione **Memory** en la sección Customize para activar o desactivar la [memoria automática](/docs/es/memory#auto-memory). Mientras esté activada, también puede examinar las memorias que Claude ha guardado y revelar las carpetas que las almacenan en su administrador de archivos. Requiere Claude Code v2.1.274 o posterior.144 * Selecciona **Memory** en la sección Customize para activar o desactivar la [memoria automática](/docs/es/memory#auto-memory). Mientras está activada, también puedes explorar las memorias que Claude ha guardado y mostrar en tu administrador de archivos las carpetas que las almacenan. Requiere Claude Code v2.1.274 o posterior.

145 145 

146 Haga clic en una memoria guardada para leerla en el diálogo, donde puede editar el texto, eliminar la memoria o abrir su archivo en el editor. Ver, editar y eliminar una memoria en el diálogo requieren Claude Code v2.1.275 o posterior.146 Haz clic en una memoria guardada para leerla en el cuadro de diálogo, donde puedes editar el texto, eliminar la memoria o abrir su archivo en el editor. Ver, editar y eliminar una memoria en el cuadro de diálogo requiere Claude Code v2.1.275 o posterior.

147 * Seleccione **Instructions** en la sección Customize para editar los [archivos CLAUDE.md](/docs/es/memory#claude-md-files) que Claude lee. Elija un archivo para abrirlo en el editor. Si el archivo aún no existe, Claude Code lo crea primero. Requiere Claude Code v2.1.274 o posterior.147 * Selecciona **Instructions** en la sección Customize para editar los [archivos CLAUDE.md](/docs/es/memory#claude-md-files) que lee Claude. Elige un archivo para abrirlo en el editor. Si el archivo aún no existe, Claude Code lo crea primero. Requiere Claude Code v2.1.274 o posterior.

148 * Seleccione **Status** en la sección Customize, o escriba `/status`, para verificar la versión de Claude Code de la sesión, cuenta, modelo y detalles del servidor MCP. Requiere Claude Code v2.1.280 o posterior.148 * Selecciona **Status** en la sección Customize, o escribe `/status`, para consultar la versión de Claude Code, la cuenta, el modelo y los detalles de los servidores MCP de la sesión. Requiere Claude Code v2.1.280 o posterior.

149 * Seleccione **Sandbox** en la sección Customize, o escriba `/sandbox`, para ver si los comandos Bash de Claude se ejecutan [sandboxed](/docs/es/sandboxing). Puede cambiar el modo sandbox y agregar [comandos excluidos](/docs/es/settings-reference#sandbox-excludedcommands) allí. Requiere Claude Code v2.1.280 o posterior.149 * Selecciona **Sandbox** en la sección Customize, o escribe `/sandbox`, para ver si los comandos de Bash de Claude se ejecutan [en el sandbox](/docs/es/sandboxing). Allí puedes cambiar el modo del sandbox y agregar [comandos excluidos](/docs/es/settings-reference#sandbox-excludedcommands). Requiere Claude Code v2.1.280 o posterior.

150 * Seleccione **Claude in Chrome** en la sección Customize, o escriba `/chrome`, para verificar y administrar la conexión de [Claude in Chrome](/docs/es/chrome). Ambos requieren iniciar sesión con una cuenta de claude.ai. Requiere Claude Code v2.1.280 o posterior.150 * Selecciona **Claude in Chrome** en la sección Customize, o escribe `/chrome`, para comprobar y administrar la conexión de [Claude in Chrome](/docs/es/chrome). Ambas opciones requieren iniciar sesión con una cuenta de claude.ai. Requiere Claude Code v2.1.280 o posterior.

151 * Seleccione **Export conversation** en la sección Context, o escriba `/export`, para copiar la conversación como texto sin formato o guardarla en un archivo. Agregue un nombre de archivo, como `/export notes.txt`, para omitir el diálogo y elegir dónde guardar el archivo. Requiere Claude Code v2.1.280 o posterior.151 * Selecciona **Export conversation** en la sección Context, o escribe `/export`, para copiar la conversación como texto sin formato o guardarla en un archivo. Agrega un nombre de archivo, como `/export notes.txt`, para omitir el cuadro de diálogo y elegir dónde guardar el archivo. Requiere Claude Code v2.1.280 o posterior.

152 * La sección Settings incluye **Enable Remote Control for all sessions**, que establece [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) para controlar si [las nuevas sesiones interactivas se conectan a Remote Control automáticamente](/docs/es/remote-control#enable-remote-control-for-all-sessions). Requiere Claude Code v2.1.203 o posterior.152 * La sección Settings incluye **Enable Remote Control for all sessions**, que establece [`remoteControlAtStartup`](/docs/es/settings-reference#remotecontrolatstartup) para controlar si [las nuevas sesiones interactivas se conectan automáticamente a Remote Control](/docs/es/remote-control#enable-remote-control-for-all-sessions). Requiere Claude Code v2.1.203 o posterior.

153 153 

154 Cuando activa o desactiva el conmutador en una ventana de VS Code, el cambio se aplica a las sesiones ya abiertas en esa ventana de VS Code, no solo a las sesiones que inicia después. Si lo desactiva, las sesiones abiertas se desconectan. Con Claude Code v2.1.261 o posterior, el cambio también llega a las sesiones abiertas en sus otras ventanas de VS Code.154 Cuando activas o desactivas el interruptor en una ventana de VS Code, el cambio se aplica a las sesiones ya abiertas en esa ventana de VS Code, no solo a las sesiones que inicies después. Si lo desactivas, las sesiones abiertas se desconectan. Con Claude Code v2.1.261 o posterior, el cambio también llega a las sesiones abiertas en tus otras ventanas de VS Code.

155 * La sección Settings también incluye **Focus view**, que oculta llamadas de herramientas, resultados de herramientas y pensamiento detrás de filas expandibles, dejando sus solicitudes y las respuestas de Claude. Actívelo allí, con `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux), o desde la Paleta de comandos con **Claude Code: Toggle Focus view**. El cambio se aplica a todas las sesiones abiertas y persiste entre sesiones. Requiere Claude Code v2.1.221 o posterior.155 * La sección Settings también incluye **Focus view**, que oculta las llamadas a herramientas, los resultados de herramientas y el pensamiento detrás de filas expandibles, y deja visibles tus prompts y las respuestas de Claude. Actívala o desactívala allí, con `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux), o desde la paleta de comandos con **Claude Code: Toggle Focus view**. El cambio se aplica a todas las sesiones abiertas y se conserva entre sesiones. Requiere Claude Code v2.1.221 o posterior.

156 156 

157 La lista de tareas más reciente de Claude permanece visible, al igual que el texto de una pregunta pendiente de Claude; esto requiere Claude Code v2.1.225 o posterior. Mientras Claude ejecuta [subagentes](/docs/es/sub-agents), filas de progreso en vivo con su actividad más reciente aparecen bajo el grupo de llamadas de herramientas que las inició. Esto requiere Claude Code v2.1.269 o posterior.157 La lista de tareas pendientes más reciente de Claude sigue visible, al igual que el texto sobre el que pregunta una pregunta pendiente de Claude; esto requiere Claude Code v2.1.225 o posterior. Mientras Claude ejecuta [subagentes](/docs/es/sub-agents), aparecen filas de progreso en vivo con su actividad más reciente debajo del grupo de llamadas a herramientas que los inició. Esto requiere Claude Code v2.1.269 o posterior.

158 * Para cerrar sesión en su cuenta de Anthropic, seleccione **Sign out** en la sección Settings, o escriba `/logout`. En un [proveedor de terceros](#use-third-party-providers), el menú no ofrece ninguno de los dos. Requiere Claude Code v2.1.277 o posterior.158 * Para cerrar sesión en tu cuenta de Anthropic, selecciona **Sign out** en la sección Settings o escribe `/logout`. Con un [proveedor externo](#use-third-party-providers), el menú no ofrece ninguna de las dos opciones. Requiere Claude Code v2.1.277 o posterior.

159 * Para reportar un error, haga clic en **Report a problem** en la parte inferior del menú, o escriba `/bug` o `/feedback` con una descripción opcional que rellene previamente el informe. Cuando envía el informe y está conectado a Anthropic en una conexión de primera parte, Claude Code lo envía a Anthropic. Requiere Claude Code v2.1.229 o posterior.159 * Para informar un error, haz clic en **Report a problem** en la parte inferior del menú, o escribe `/bug` o `/feedback` con una descripción opcional que rellena previamente el informe. Cuando envías el informe y has iniciado sesión en Anthropic con una conexión propia de Anthropic, Claude Code lo envía a Anthropic. Requiere Claude Code v2.1.229 o posterior.

160 160 

161 En un proveedor de terceros, o sin credenciales de Anthropic, nada se envía. El diálogo lo dice antes de que escriba. Enviar guarda el informe como un [archivo local bajo `~/.claude/feedback-bundles/`](/docs/es/data-usage#telemetry-services) con patrones de clave API y token conocidos redactados. Envíe ese archivo a su representante de cuenta de Anthropic o adjúntelo a una solicitud de soporte. La confirmación nombra el archivo e incluye un botón **Show folder**. Guardar el informe en su computadora requiere Claude Code v2.1.284 o posterior.161 Con un proveedor externo, o sin credenciales de Anthropic, no se envía nada. El cuadro de diálogo lo indica antes de que escribas. Al enviarlo, el informe se guarda como un [archivo local en `~/.claude/feedback-bundles/`](/docs/es/data-usage#telemetry-services) con los patrones conocidos de claves de API y tokens censurados. Envía ese archivo a tu representante de cuenta de Anthropic o adjúntalo a una solicitud de soporte. La confirmación indica el nombre del archivo e incluye un botón **Show folder**. Guardar el informe en tu computadora requiere Claude Code v2.1.284 o posterior.

162 162 

163 Si la política de su organización desactiva la retroalimentación del producto, **Report a problem** no aparece en el menú, y `/bug` y `/feedback` muestran un aviso `Feedback is turned off by your organization's policy or this environment's settings.` en lugar de abrir el informe. Con Claude Code v2.1.284 o posterior, si establece la variable de entorno `DISABLE_FEEDBACK_COMMAND` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, la retroalimentación también se desactiva y abrir el informe muestra ese aviso en su lugar.163 Si la política de tu organización desactiva los comentarios sobre el producto, **Report a problem** no aparece en el menú, y `/bug` y `/feedback` muestran el aviso `Feedback is turned off by your organization's policy or this environment's settings.` en lugar de abrir el informe. Con Claude Code v2.1.284 o posterior, si estableces la variable de entorno `DISABLE_FEEDBACK_COMMAND` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, los comentarios también se desactivan y al abrir el informe se muestra ese aviso.

164* **Side questions**: escriba `/btw` seguido de una pregunta para preguntar sobre su sesión [sin agregar a la conversación](/docs/es/interactive-mode#side-questions-with-%2Fbtw). La respuesta se abre en un panel junto al chat, donde puede hacer preguntas de seguimiento. El hilo sobrevive a las recargas de ventana. Claude Code mantiene los 20 intercambios más nuevos y expira los hilos almacenados en el cronograma [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siempre que Claude Code pueda [determinar de forma segura el período de retención](/docs/es/claude-directory#cleaned-up-automatically). Para borrar un hilo, haga clic en el icono de papelera en el panel. Requiere Claude Code v2.1.227 o posterior.164* **Preguntas al margen**: escribe `/btw` seguido de una pregunta para preguntar sobre tu sesión [sin agregarla a la conversación](/docs/es/interactive-mode#side-questions-with-%2Fbtw). La respuesta se abre en un panel junto al chat, donde puedes hacer preguntas de seguimiento. El hilo se conserva al recargar la ventana. Claude Code conserva los 20 intercambios más recientes y hace caducar los hilos almacenados según el calendario de [`cleanupPeriodDays`](/docs/es/settings-reference#cleanupperioddays), siempre que Claude Code pueda [determinar de forma segura el período de retención](/docs/es/claude-directory#cleaned-up-automatically). Para borrar un hilo, haz clic en el ícono de papelera del panel. Requiere Claude Code v2.1.227 o posterior.

165* **Copy a response**: pase el cursor sobre una respuesta y haga clic en **Copy response** para copiarla al portapapeles, o escriba `/copy` para copiar la respuesta más reciente. `/copy 2` copia la segunda más reciente. Requiere Claude Code v2.1.277 o posterior.165* **Copiar una respuesta**: pasa el cursor sobre una respuesta y haz clic en **Copy response** para copiarla al portapapeles, o escribe `/copy` para copiar la respuesta más reciente. `/copy 2` copia la penúltima. Requiere Claude Code v2.1.277 o posterior.

166* **Bookmarks**: pasa el cursor sobre una respuesta y haz clic en **Bookmark response** para guardarla, o haz clic en **Remove bookmark** en una respuesta guardada para quitarla.166* **Marcadores**: pasa el cursor sobre una respuesta y haz clic en **Bookmark response** para guardarla, o haz clic en **Remove bookmark** en una respuesta guardada para quitarla.

167 167 

168 Para revisar las respuestas guardadas, abre el panel Bookmarks: haz clic en el icono de marcador en la parte superior del panel de Claude Code, selecciona **Bookmarks** en la sección Context del menú de comandos o escribe `/bookmarks`. Requiere Claude Code v2.1.286 o posterior.168 Para revisar las respuestas guardadas, abre el panel Bookmarks: haz clic en el ícono de marcador en la parte superior del panel de Claude Code, selecciona **Bookmarks** en la sección Context del menú de comandos o escribe `/bookmarks`. Requiere Claude Code v2.1.286 o posterior.

169* **Archivos que Claude te envía**: cuando la sesión está conectada a [Remote Control](/docs/es/remote-control#start-a-remote-control-session) y Claude te envía archivos con la [herramienta `SendUserFile`](/docs/es/tools-reference), la conversación muestra una fila como **Sent report.md, chart.png**. Haz clic en el nombre de un archivo para abrirlo en el editor.169* **Archivos que Claude te envía**: cuando la sesión está conectada a [Remote Control](/docs/es/remote-control#start-a-remote-control-session) y Claude te envía archivos con la [herramienta `SendUserFile`](/docs/es/tools-reference), la conversación muestra una fila como **Sent report.md, chart.png**. Haz clic en el nombre de un archivo para abrirlo en el editor.

170* **Context indicator**: el cuadro de solicitud muestra cuánta ventana de contexto de Claude está utilizando. Claude se compacta automáticamente cuando es necesario, o puede ejecutar `/compact` manualmente.170* **Indicador de contexto**: el cuadro de prompt muestra cuánto de la ventana de contexto de Claude estás usando. Claude compacta automáticamente cuando es necesario, o puedes ejecutar `/compact` manualmente.

171* **Prompt cache clock**: un icono de reloj junto al indicador de contexto estima cuánto tiempo le queda a la [caché de solicitud](/docs/es/prompt-caching) de la conversación antes de que expire. Cuenta regresiva desde la [vida útil](/docs/es/prompt-caching#cache-lifetime) de cinco minutos o una hora de la caché, y cada respuesta que usa la caché reinicia la cuenta regresiva. Aparte de la compactación, las [acciones que invalidan la caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) no restablecen el reloj, por lo que aún puede mostrar minutos restantes después de cambiar modelos.171* **Reloj de la caché de prompts**: un ícono de reloj junto al indicador de contexto estima cuánto tiempo le queda a la [caché de prompts](/docs/es/prompt-caching) de la conversación antes de caducar. Hace una cuenta regresiva desde la [vida útil](/docs/es/prompt-caching#cache-lifetime) de cinco minutos o de una hora de la caché, y cada respuesta que usa la caché reinicia la cuenta regresiva. Aparte de la compactación, las [acciones que invalidan la caché](/docs/es/prompt-caching#actions-that-invalidate-the-cache) no reinician el reloj, así que puede seguir mostrando minutos restantes después de que cambies de modelo.

172 * Hasta que se agote la cuenta regresiva, el icono muestra los minutos restantes, como **12m**.172 * Hasta que se agota la cuenta regresiva, el ícono muestra los minutos restantes, como **12m**.

173 * Cuando se agota la cuenta regresiva, los minutos desaparecen y el icono se vuelve rojo, o el color de error de su tema, hasta la siguiente respuesta. Es probable que la caché haya expirado, así que espere una respuesta más lenta y costosa a su próximo mensaje mientras se reconstruye la caché. Si la vida útil de cinco minutos sigue agotándose entre sus mensajes, consulte [Elija el TTL usted mismo](/docs/es/prompt-caching#choose-the-ttl-yourself).173 * Cuando se agota la cuenta regresiva, los minutos desaparecen y el ícono se vuelve rojo, o del color de error de tu tema, hasta la siguiente respuesta. Es probable que la caché haya caducado, así que espera una respuesta más lenta y costosa a tu siguiente mensaje mientras la caché se reconstruye. Si la vida útil de cinco minutos se sigue agotando entre tus mensajes, consulta [Elegir el TTL tú mismo](/docs/es/prompt-caching#choose-the-ttl-yourself).

174 * Justo después de que la conversación se [compacte](/docs/es/prompt-caching#compacting-the-conversation), el icono también se vuelve rojo sin minutos hasta la siguiente respuesta, porque la caché aún no cubre la conversación compactada.174 * Justo después de que la conversación se [compacta](/docs/es/prompt-caching#compacting-the-conversation), el ícono también se vuelve rojo sin minutos hasta la siguiente respuesta, porque la caché aún no cubre la conversación compactada.

175* **Agent map**: cuando la conversación incluye [subagentes](/docs/es/sub-agents), un recuento de agentes como **2 agents** aparece en la parte inferior del cuadro de solicitud. Su punto muestra si algún subagente está trabajando o esperando su permiso.175* **Mapa de agentes**: cuando la conversación incluye [subagentes](/docs/es/sub-agents), aparece un recuento de agentes como **2 agents** en la parte inferior del cuadro de prompt. Su punto indica si algún subagente está trabajando o esperando tu permiso.

176 176 

177 Haga clic en el recuento de agentes para abrir el mapa de agentes, que dibuja los subagentes de la conversación como un árbol bajo el agente principal, cada uno con su estado, tiempo transcurrido y recuento de tokens. Haga clic en un subagente para ver su solicitud y llamadas de herramientas, abrir su transcripción de solo lectura, o detenerlo mientras se ejecuta. Requiere Claude Code v2.1.269 o posterior.177 Haz clic en el recuento de agentes para abrir el mapa de agentes, que dibuja los subagentes de la conversación como un árbol bajo el agente principal, cada uno con su estado, tiempo transcurrido y recuento de tokens. Haz clic en un subagente para ver su prompt y sus llamadas a herramientas, abrir su transcripción de solo lectura o detenerlo mientras se ejecuta. Requiere Claude Code v2.1.269 o posterior.

178 178 

179 El mapa también enumera las otras [tareas en segundo plano](/docs/es/tools-reference#background-commands) de la sesión, como comandos de shell en segundo plano y [monitores](/docs/es/tools-reference#monitor-tool), debajo de los agentes. Haga clic en una fila para abrir la tarjeta de la tarea y detenerla allí.179 El mapa también enumera las demás [tareas en segundo plano](/docs/es/tools-reference#background-commands) de la sesión, como los comandos de shell en segundo plano y los [monitores](/docs/es/tools-reference#monitor-tool), debajo de los agentes. Haz clic en una fila para abrir la tarjeta de la tarea y detenerla allí.

180 180 

181 Para abrir el mapa cuando no se muestra un recuento de agentes, como cuando Claude ha iniciado un shell en segundo plano pero sin subagentes, escriba `/tasks` en el cuadro de solicitud. Las tareas en segundo plano en el mapa y el `/tasks` escrito requieren Claude Code v2.1.277 o posterior.181 Para abrir el mapa cuando no se muestra ningún recuento de agentes, como cuando Claude ha iniciado un shell en segundo plano pero ningún subagente, escribe `/tasks` en el cuadro de prompt. Las tareas en segundo plano en el mapa y el comando `/tasks` escrito requieren Claude Code v2.1.277 o posterior.

182 182 

183 Con Claude Code v2.1.286 o posterior, cuando haces clic en **Stop** o presionas `Esc`, el turno actual termina. Los agentes en segundo plano siguen ejecutándose hasta que terminan o hasta que los detienes desde el mapa.183 Con Claude Code v2.1.286 o posterior, cuando haces clic en **Stop** o presionas `Esc`, el turno actual termina. Los agentes en segundo plano siguen ejecutándose hasta que terminan o los detienes desde el mapa.

184* **Extended thinking**: permite que Claude dedique más tiempo a razonar problemas complejos. Actívelo a través del menú de comandos (`/`). El razonamiento de Claude aparece en la conversación como bloques contraídos: haga clic en un bloque para leerlo, o presione `Ctrl+O` para expandir o contraer cada bloque de pensamiento en la sesión. Consulte [Extended thinking](/docs/es/model-config#extended-thinking) para obtener detalles.184* **Pensamiento extendido**: permite que Claude dedique más tiempo a razonar problemas complejos. Actívalo desde el menú de comandos (`/`). El razonamiento de Claude aparece en la conversación como bloques contraídos: haz clic en un bloque para leerlo, o presiona `Ctrl+O` para expandir o contraer todos los bloques de pensamiento de la sesión. Consulta [Pensamiento extendido](/docs/es/model-config#extended-thinking) para más detalles.

185* **Multi-line input**: presione `Shift+Enter` para agregar una nueva línea sin enviar. Esto también funciona en la entrada de texto libre "Other" de los diálogos de preguntas.185* **Entrada de varias líneas**: presiona `Shift+Enter` para agregar una nueva línea sin enviar. Esto también funciona en la entrada de texto libre "Other" de los cuadros de diálogo de preguntas.

186 186 

187<h3 id="reference-files-and-folders">187<h3 id="reference-files-and-folders">

188 Archivos y carpetas de referencia188 Hacer referencia a archivos y carpetas

189</h3>189</h3>

190 190 

191Use menciones con @ para dar a Claude contexto sobre archivos o carpetas específicos. Cuando escribe `@` seguido de un nombre de archivo o carpeta, Claude lee ese contenido y puede responder preguntas sobre él o hacer cambios en él. Claude Code admite coincidencia difusa, por lo que puede escribir nombres parciales para encontrar lo que necesita:191Usa menciones con @ para darle a Claude contexto sobre archivos o carpetas específicos. Cuando escribes `@` seguido del nombre de un archivo o carpeta, Claude lee ese contenido y puede responder preguntas sobre él o hacerle cambios. Claude Code admite coincidencia aproximada, así que puedes escribir nombres parciales para encontrar lo que necesitas:

192 192 

193```text wrap theme={null}193```text wrap theme={null}

194Explain the logic in @auth (fuzzy matches auth.js, AuthService.ts, etc.)194Explain the logic in @auth (fuzzy matches auth.js, AuthService.ts, etc.)

195What's in @src/components/ (include a trailing slash for folders)195What's in @src/components/ (include a trailing slash for folders)

196```196```

197 197 

198Para archivos PDF grandes, puede pedirle a Claude que lea páginas específicas en lugar del archivo completo: una sola página, un rango como páginas 1-10, o un rango abierto como página 3 en adelante. Leer páginas específicas requiere [poppler-utils](/docs/es/tools-reference#read-tool-behavior) en la máquina donde se ejecuta Claude Code.198Para PDF grandes, puedes pedirle a Claude que lea páginas específicas en lugar del archivo completo: una sola página, un rango como las páginas 1-10 o un rango abierto como de la página 3 en adelante. Leer páginas específicas requiere [poppler-utils](/docs/es/tools-reference#read-tool-behavior) en la máquina donde se ejecuta Claude Code.

199 199 

200Cuando selecciona texto en el editor, Claude puede ver su código resaltado automáticamente. El pie de página del cuadro de solicitud muestra cuántas líneas están seleccionadas. Presione `Option+K` (Mac) / `Alt+K` (Windows/Linux) para insertar una mención con @ con la ruta del archivo y números de línea (por ejemplo, `@app.ts#5-10`). Haga clic en la **X** en el indicador de selección para eliminarlo para que Claude no reciba la selección. El indicador reaparece cuando selecciona otro texto.200Cuando seleccionas texto en el editor, Claude puede ver automáticamente el código resaltado. El pie del cuadro de prompt muestra cuántas líneas están seleccionadas. Presiona `Option+K` (Mac) / `Alt+K` (Windows/Linux) para insertar una mención con @ con la ruta del archivo y los números de línea (por ejemplo, `@app.ts#5-10`). Haz clic en la **X** del indicador de selección para quitarla y que Claude no reciba la selección. El indicador vuelve a aparecer cuando seleccionas otro texto.

201 201 

202La extensión retiene el texto seleccionado de algunos archivos. Cuando el archivo está dentro de su espacio de trabajo y coincide con su configuración `files.exclude` o `search.exclude`, Claude recibe como máximo la ruta del archivo y no el texto que seleccionó. Lo mismo se aplica a un archivo que git ignora, siempre que la configuración `search.useIgnoreFiles` de VS Code y la configuración [`respectGitIgnore`](#extension-settings) de la extensión estén ambas activadas, que es el predeterminado. Este filtro cubre solo el panel de chat: cuando Claude Code se ejecuta en la terminal integrada, la CLI envía su texto seleccionado sea cual sea el archivo, así que agregue una [regla de denegación `Read`](#the-built-in-ide-mcp-server) para evitar que Claude vea el contenido de un archivo allí.202La extensión no envía a Claude el texto seleccionado de algunos archivos. Cuando el archivo está dentro de tu espacio de trabajo y coincide con tus ajustes `files.exclude` o `search.exclude`, Claude recibe como máximo la ruta del archivo y no el texto que seleccionaste. Lo mismo se aplica a un archivo que git ignora, siempre que el ajuste `search.useIgnoreFiles` de VS Code y el [ajuste `respectGitIgnore`](#extension-settings) de la extensión estén ambos activados, que es lo predeterminado. Este filtro solo cubre el panel de chat: cuando Claude Code se ejecuta en la terminal integrada, la CLI envía el texto seleccionado sea cual sea el archivo, así que agrega una [regla de denegación de `Read`](#the-built-in-ide-mcp-server) para evitar que Claude vea allí el contenido de un archivo.

203 203 

204Claude también ve qué archivo tiene abierto en el editor, incluso cuando nada está seleccionado, y el cuadro de solicitud muestra su nombre. Para agregar solo su texto seleccionado, desactive la [configuración Attach Open File](vscode://settings/claudeCode.attachOpenFile). La configuración requiere Claude Code v2.1.271 o posterior.204Claude también ve qué archivo tienes abierto en el editor, incluso cuando no hay nada seleccionado, y el cuadro de prompt muestra su nombre. Para agregar solo el texto seleccionado, desactiva el [ajuste Attach Open File](vscode://settings/claudeCode.attachOpenFile). El ajuste requiere Claude Code v2.1.271 o posterior.

205 205 

206También puede adjuntar imágenes y archivos a su mensaje:206También puedes adjuntar imágenes y archivos a tu mensaje:

207 207 

208* Para adjuntar una imagen, péguela desde su portapapeles en el cuadro de solicitud.208* Para adjuntar una imagen, pégala desde el portapapeles en el cuadro de prompt.

209* Para adjuntar archivos, mantenga presionado `Shift` mientras arrastra archivos al cuadro de solicitud.209* Para adjuntar archivos, mantén presionada la tecla `Shift` mientras los arrastras al cuadro de prompt.

210* Para eliminar un adjunto del contexto, haga clic en la X en él.210* Para quitar un adjunto del contexto, haz clic en la X que aparece sobre él.

211 211 

212<h3 id="paste-text">212<h3 id="paste-text">

213 Pegar texto213 Pegar texto

214</h3>214</h3>

215 215 

216El texto que pega permanece visible en el cuadro de solicitud, en lugar de contraerse a un marcador de posición como lo hace [en la terminal](/docs/es/terminal-config#paste-large-content). En sesiones donde Claude Code [marca texto pegado](/docs/es/terminal-config#how-claude-treats-pasted-text), Claude aún ve un pegado grande como texto que pegó en lugar de escribir.216El texto que pegas permanece visible en el cuadro de prompt, en lugar de contraerse en un marcador de posición como ocurre [en la terminal](/docs/es/terminal-config#paste-large-content). En las sesiones en las que Claude Code [marca el texto pegado](/docs/es/terminal-config#how-claude-treats-pasted-text), Claude sigue viendo un pegado grande como texto que pegaste y no que escribiste.

217 217 

218Claude Code también elimina [caracteres Unicode invisibles](/docs/es/interactive-mode#invisible-characters-in-prompts) del texto que pega en el cuadro de solicitud y de cualquier otra cosa que envíe:218Claude Code también elimina los [caracteres Unicode invisibles](/docs/es/interactive-mode#invisible-characters-in-prompts) del texto que pegas en el cuadro de prompt y de cualquier otra cosa que envíes:

219 219 

220* Si aparece un aviso como `Removed 3 invisible characters from the pasted text` cuando pega, el texto se insertó sin esos caracteres.220* Si aparece un aviso como `Removed 3 invisible characters from the pasted text` al pegar, el texto se insertó sin esos caracteres.

221* Si aparece un aviso sobre caracteres eliminados cuando envía, nada fue enviado. El texto limpio está de vuelta en el cuadro de solicitud. Envíe de nuevo para enviar el texto como se muestra.221* Si aparece un aviso sobre caracteres eliminados al enviar, no se envió nada. El texto limpio vuelve al cuadro de prompt. Envía de nuevo para enviar el texto tal como se muestra.

222 

223<h3 id="latex-math-in-responses">

224 Matemáticas LaTeX en las respuestas

225</h3>

226 

227El panel de chat muestra las matemáticas LaTeX de las respuestas de Claude como fórmulas renderizadas. La representación de matemáticas requiere Claude Code v2.1.301 o posterior. En el [modo terminal](#switch-to-terminal-mode), las matemáticas no se renderizan. El panel renderiza tanto las matemáticas en bloque como las matemáticas en línea:

228 

229* **Matemáticas en bloque**: un bloque `$$ … $$` o `\[ … \]` en una o varias líneas propias, y un bloque de código delimitado con `math` como lenguaje

230* **Matemáticas en línea**: `$…$` o `\(…\)` que se abre y se cierra en la misma línea, como `$E = mc^2$` o `\(a^2 + b^2 = c^2\)`

231 

232El panel intenta distinguir las matemáticas de otros usos de los mismos caracteres, por lo que texto como `$HOME`, un precio como `$5` o `sed 's/\(foo\)/\1/'` no se renderiza. Tampoco el texto dentro de un fragmento de código en línea ni dentro de cualquier bloque de código distinto de un bloque `math` delimitado. Si una fórmula se muestra tal como está escrita cuando esperabas verla renderizada, consulta [Una fórmula se muestra como LaTeX sin procesar](#a-formula-shows-as-raw-latex).

233 

234Cuando seleccionas y copias texto que incluye una fórmula renderizada, obtienes el código fuente TeX de la fórmula entre delimitadores `$…$` o `$$…$$` en lugar de los símbolos dibujados. [**Copy response**](#use-the-prompt-box) y `/copy` te dan la respuesta tal como la escribió Claude, incluido el código fuente TeX.

222 235 

223<h3 id="resume-past-conversations">236<h3 id="resume-past-conversations">

224 Reanudar conversaciones pasadas237 Reanudar conversaciones anteriores

225</h3>238</h3>

226 239 

227Haga clic en el botón **Session history** en la parte superior del panel de Claude Code para acceder a su historial de conversaciones. Puede buscar por palabra clave o examinar por tiempo.240Haz clic en el botón **Session history** en la parte superior del panel de Claude Code para acceder a tu historial de conversaciones. Puedes buscar por palabra clave o explorar por fecha.

228 241 

229Haga clic en cualquier conversación para reanudarla con el historial de mensajes completo. Si la conversación ya está abierta en otra pestaña de la ventana actual, hacer clic en ella cambia a esa pestaña. Para obtener más información sobre cómo reanudar sesiones, consulte [Manage sessions](/docs/es/sessions).242Haz clic en cualquier conversación para reanudarla con el historial completo de mensajes. Si la conversación ya está abierta en otra pestaña de la ventana actual, al hacer clic se cambia a esa pestaña. Si los mensajes aparecen en blanco al principio, consulta [por qué están en blanco y cuándo aparecen](#a-resumed-conversation-is-blank-at-first). Para más información sobre cómo reanudar sesiones, consulta [Administrar sesiones](/docs/es/sessions).

230 243 

231* **Session titles**: las nuevas sesiones reciben títulos generados por IA basados en su primer mensaje.244* **Títulos de sesión**: las sesiones nuevas reciben títulos generados por IA según tu primer mensaje.

232* **Rename and archive**: pase el cursor sobre una sesión para revelar estas acciones. Cambie el nombre para darle un título descriptivo, o archive para moverla al grupo **Archived sessions** en la parte inferior de la lista.245* **Renombrar y archivar**: pasa el cursor sobre una sesión para mostrar estas acciones. Renómbrala para darle un título descriptivo o archívala para moverla al grupo **Archived sessions** en la parte inferior de la lista.

233 246 

234Si la conversación está abierta en otro proceso de Claude Code, como `claude` en una terminal u otra ventana de VS Code, aparece un aviso en lugar del cuadro de prompt: `This conversation is still open somewhere else. Using it in two places at once can mix up its messages.` Para continuar aquí, cierra la conversación en el otro lugar y luego haz clic en **Open here anyway**. Si haces clic sin cerrarla, la conversación queda abierta en ambos lugares. Con [`claudeProcessWrapper`](#extension-settings) configurado, la extensión omite esta comprobación y abre la conversación directamente.247Si la conversación está abierta en otro proceso de Claude Code, como `claude` en una terminal u otra ventana de VS Code, aparece un aviso en lugar del cuadro de prompt: `This conversation is still open somewhere else. Using it in two places at once can mix up its messages.` Para continuar aquí, cierra la conversación en el otro lugar y luego haz clic en **Open here anyway**. Si haces clic sin cerrarla, la conversación queda abierta en ambos lugares. Con [`claudeProcessWrapper`](#extension-settings) establecido, la extensión omite esta comprobación y abre la conversación directamente.

235 248 

236De forma predeterminada, una sesión sin actividad durante 14 días se mueve a **Archived sessions** automáticamente, a menos que esté abierta, no leída o en un [grupo](#organize-sessions-into-groups). El archivado automático requiere Claude Code v2.1.265 o posterior. Para cambiar el período o desactivarlo, abra la [configuración Archive Inactive Sessions](vscode://settings/claudeCode.archiveInactiveSessions) y seleccione un número de días o **Never**.249De forma predeterminada, una sesión sin actividad durante 14 días se mueve automáticamente a **Archived sessions**, a menos que esté abierta, sin leer o en un [grupo](#organize-sessions-into-groups). El archivado automático requiere Claude Code v2.1.265 o posterior. Para cambiar el período o desactivarlo, abre el [ajuste Archive Inactive Sessions](vscode://settings/claudeCode.archiveInactiveSessions) y selecciona un número de días o **Never**.

237 250 

238Para restaurar una sesión archivada, expanda **Archived sessions** y haga clic en **Unarchive session**. Para restaurar todas las sesiones archivadas a la vez, pase el cursor sobre el encabezado **Archived sessions** en la lista de sesiones en la Barra de actividades y haga clic en su icono de desarchivado, lo que requiere Claude Code v2.1.277 o posterior. Antes de v2.1.257, la acción era **Delete session**, que ocultaba una sesión sin forma de restaurarla. Las sesiones que eliminó aparecen bajo **Archived sessions** después de actualizar.251Para restaurar una sesión archivada, expande **Archived sessions** y haz clic en **Unarchive session**. Para restaurar todas las sesiones archivadas a la vez, pasa el cursor sobre el encabezado **Archived sessions** en la lista de sesiones de la barra de actividades y haz clic en su ícono de desarchivar, lo que requiere Claude Code v2.1.277 o posterior. Antes de v2.1.257, la acción era **Delete session**, que ocultaba una sesión sin forma de restaurarla. Las sesiones que eliminaste entonces aparecen en **Archived sessions** después de actualizar.

239 252 

240Cuando la conversación que reanudas terminó en modo plan, Claude Code restaura el modo plan. Requiere Claude Code v2.1.246 o posterior. Claude Code no lo restaura en estos casos:253Cuando la conversación que reanudas terminó en modo plan, Claude Code restaura el modo plan. Requiere Claude Code v2.1.246 o posterior. Claude Code no lo restaura en estos casos:

241 254 

242* La extensión [elige el modo de permiso inicial](/docs/es/permission-modes#switch-permission-modes) de `claudeCode.initialPermissionMode` o una selección que se transfiere de una conversación anterior255* La extensión [elige el modo de permisos inicial](/docs/es/permission-modes#switch-permission-modes) a partir de `claudeCode.initialPermissionMode` o de una elección que se conserva de una conversación anterior

243* Tiene `claudeCode.claudeProcessWrapper` configurado256* Tienes configurado `claudeCode.claudeProcessWrapper`

244* Una [regla de denegación](/docs/es/permissions#manage-permissions) elimina la herramienta [`ExitPlanMode`](/docs/es/tools-reference)257* Una [regla de denegación](/docs/es/permissions#manage-permissions) elimina la herramienta [`ExitPlanMode`](/docs/es/tools-reference)

245 258 

246<h3 id="resume-cloud-sessions-from-claude-ai">259<h3 id="resume-cloud-sessions-from-claude-ai">

247 Reanudar sesiones en la nube desde Claude.ai260 Reanudar sesiones en la nube desde Claude.ai

248</h3>261</h3>

249 262 

250Si ejecuta [sesiones en la nube](/docs/es/claude-code-on-the-web), puede reanudarlas directamente en VS Code. Esto requiere iniciar sesión con **Claude.ai Subscription**, no Anthropic Console.263Si ejecutas [sesiones en la nube](/docs/es/claude-code-on-the-web), puedes reanudarlas directamente en VS Code. Esto requiere iniciar sesión con **Claude.ai Subscription**, no con Anthropic Console.

251 264 

252<Steps>265<Steps>

253 <Step title="Open session history">266 <Step title="Abrir el historial de sesiones">

254 Haga clic en el botón **Session history** en la parte superior del panel de Claude Code.267 Haz clic en el botón **Session history** en la parte superior del panel de Claude Code.

255 </Step>268 </Step>

256 269 

257 <Step title="Select the Web tab">270 <Step title="Seleccionar la pestaña Web">

258 El diálogo muestra dos pestañas: Local y Web. Haga clic en **Web** para ver sesiones de claude.ai.271 El cuadro de diálogo muestra dos pestañas: Local y Web. Haz clic en **Web** para ver las sesiones de claude.ai.

259 </Step>272 </Step>

260 273 

261 <Step title="Select a session to resume">274 <Step title="Seleccionar una sesión para reanudar">

262 Examine o busque sus sesiones. Haga clic en una para continuar la conversación localmente.275 Explora o busca entre las sesiones. Haz clic en una para continuar la conversación localmente.

263 </Step>276 </Step>

264</Steps>277</Steps>

265 278 

266<Note>279<Note>

267 Cuando la carpeta que tiene abierta es un repositorio de GitHub, la pestaña Web muestra solo sesiones de ese repositorio.280 Cuando la carpeta que tienes abierta es un repositorio de GitHub, la pestaña Web muestra solo las sesiones de ese repositorio.

268 281 

269 Cuando reanuda una sesión en la nube, la extensión descarga una copia del historial de conversaciones; los cambios no se sincronizan de vuelta a claude.ai.282 Cuando reanudas una sesión en la nube, la extensión descarga una copia del historial de la conversación; los cambios no se sincronizan de vuelta con claude.ai.

270</Note>283</Note>

271 284 

272La pestaña Web también enumera sus sesiones de [Remote Control](/docs/es/remote-control). Si hace clic en una que se ejecutó en la carpeta que tiene abierta, la extensión abre esa conversación local en su lugar de descargar una copia, y enfoca la pestaña que ya la muestra si existe una. Si la extensión no puede descartar que otro proceso de Claude tenga la conversación abierta, obtiene una copia descargada en su lugar.285La pestaña Web también enumera tus sesiones de [Remote Control](/docs/es/remote-control). Si haces clic en una que se ejecutó en la carpeta que tienes abierta, la extensión abre esa conversación local en lugar de descargar una copia, y enfoca la pestaña que ya la muestra si existe. Si la extensión no puede descartar que otro proceso de Claude tenga la conversación abierta, obtienes una copia descargada.

273 286 

274Si alguna parte de una conversación no se descarga, aparece un error y no se guarda ninguna copia. Seleccione la sesión de nuevo para reintentar. Si selecciona una sesión que aún no tiene conversación para descargar, un error le dice dónde continuar en su lugar.287Si alguna parte de una conversación no se descarga, aparece un error y no se guarda ninguna copia. Selecciona la sesión de nuevo para reintentar. Si seleccionas una sesión que todavía no tiene conversación para descargar, un error te indica dónde continuarla.

275 288 

276<h3 id="check-account-and-usage">289<h3 id="check-account-and-usage">

277 Verificar cuenta y uso290 Consultar la cuenta y el uso

278</h3>291</h3>

279 292 

280Ejecute `/usage` para abrir el diálogo Account & usage. Muestra su cuenta conectada, y el uso que reporta difiere según el inicio de sesión:293Ejecuta `/usage` para abrir el cuadro de diálogo Account & usage. Muestra la cuenta con la que iniciaste sesión, y el uso que informa varía según el tipo de inicio de sesión:

281 294 

282* **claude.ai plan**: barras de uso para los límites de su plan, como la sesión actual y la semana. Cada barra muestra cuánto tiempo falta para que se restablezca su límite.295* **Plan de claude.ai**: barras de uso para los límites de tu plan, como la sesión actual y la semana. Cada barra muestra cuánto falta para que se restablezca su límite.

283 296 

284 El diálogo también desglosa qué está contribuyendo a los límites de su plan. Marca comportamientos que representan el 10% o más del uso reciente, como fallos de caché, contexto largo, sesiones pesadas en subagentes o altamente paralelas, cada una con un consejo para reducirlo. Las tablas de atribución muestran cuánto uso provino de cada skill, subagente, plugin y servidor MCP.297 El cuadro de diálogo también desglosa qué contribuye a los límites de tu plan. Señala los comportamientos que representan el 10 % o más del uso reciente, como los fallos de caché, el contexto largo y las sesiones con muchos subagentes o muy paralelas, cada uno con un consejo para reducirlo. Las tablas de atribución muestran cuánto uso provino de cada skill, subagente, plugin y servidor MCP.

285 298 

286 Use el conmutador Day y Week para cambiar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir de sesiones locales en esta máquina, por lo que el uso de otros dispositivos o claude.ai no se incluye.299 Usa el selector Day y Week para alternar entre las últimas 24 horas y los últimos 7 días. Las cifras son aproximadas y se calculan a partir de las sesiones locales de esta máquina, por lo que no se incluye el uso de otros dispositivos ni de claude.ai.

287* **Other sign-ins**: cuando los límites de plan no se aplican a su inicio de sesión, como en un [proveedor de terceros](#use-third-party-providers) o con una clave API, la sección Usage muestra el costo de la sesión y el uso de tokens en su lugar. El `/usage` de la CLI muestra los mismos totales en su [bloque Session](/docs/es/costs#track-your-costs). La lista de sesiones en la Barra de actividades también muestra los totales de la sesión activa bajo su encabezado **Account & usage**. Requiere Claude Code v2.1.277 o posterior.300* **Otros inicios de sesión**: cuando los límites del plan no se aplican a tu inicio de sesión, como con un [proveedor externo](#use-third-party-providers) o con una clave de API, la sección Usage muestra en su lugar el costo y el uso de tokens de la propia sesión. El `/usage` de la CLI muestra los mismos totales en su [bloque Session](/docs/es/costs#track-your-costs). La lista de sesiones de la barra de actividades también muestra los totales de la sesión activa debajo de su encabezado **Account & usage**. Requiere Claude Code v2.1.277 o posterior.

288 301 

289Para obtener más información sobre cómo rastrear y reducir el uso, consulte [Track your costs](/docs/es/costs#track-your-costs).302Para más información sobre cómo hacer seguimiento del uso y reducirlo, consulta [Hacer seguimiento de tus costos](/docs/es/costs#track-your-costs).

290 303 

291<h2 id="customize-your-workflow">304<h2 id="customize-your-workflow">

292 Personaliza tu flujo de trabajo305 Personaliza tu flujo de trabajo


321* **Pestaña del editor**: la conversación vuelve con su pestaña.334* **Pestaña del editor**: la conversación vuelve con su pestaña.

322* **Barra lateral**: la conversación vuelve si enviaste un mensaje o Claude respondió en ella en los últimos 10 minutos. Si no vuelve, reanuda la conversación desde [Historial de sesiones](#resume-past-conversations).335* **Barra lateral**: la conversación vuelve si enviaste un mensaje o Claude respondió en ella en los últimos 10 minutos. Si no vuelve, reanuda la conversación desde [Historial de sesiones](#resume-past-conversations).

323 336 

324Si otro proceso de Claude Code todavía tiene la conversación abierta, se te pregunta antes de que se abra aquí, con el mismo aviso **Open here anyway** que cuando la [reanudas desde el historial de sesiones](#resume-past-conversations).337Si otro proceso de Claude Code todavía tiene la conversación abierta, se te pregunta antes de que se abra aquí, con el mismo aviso **Open here anyway** que cuando la [reanudas desde el historial de sesiones](#resume-past-conversations). Si los mensajes aparecen en blanco al principio, consulta [por qué están en blanco y cuándo aparecen](#a-resumed-conversation-is-blank-at-first).

325 338 

326Si la recarga interrumpió a Claude a mitad de un paso, Claude continúa ese paso cuando la conversación vuelve, y un aviso en el chat marca la continuación. Requiere Claude Code v2.1.274 o posterior. Si el paso fue interrumpido hace más de una hora o la sesión está abierta en otro lugar, la conversación vuelve inactiva en su lugar.339Si la recarga interrumpió a Claude a mitad de un paso, Claude continúa ese paso cuando la conversación vuelve, y un aviso en el chat marca la continuación. Requiere Claude Code v2.1.274 o posterior. Si el paso fue interrumpido hace más de una hora o la sesión está abierta en otro lugar, la conversación vuelve inactiva en su lugar.

327 340 

328Para desactivar la continuación, abre la [configuración Continue After Reload](vscode://settings/claudeCode.continueAfterReload) y desmárcala. Establecer [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars#variables) o cualquier otra variable `CLAUDE_CODE_RESUME_` en el entorno de VS Code o en el [ajuste `environmentVariables`](#extension-settings) no tiene efecto en el panel, porque la extensión elimina esas variables antes de iniciar las sesiones del panel.341Para desactivar la continuación, abre la [configuración Continue After Reload](vscode://settings/claudeCode.continueAfterReload) y desmárcala. Establecer [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/es/env-vars#variables) o cualquier otra variable `CLAUDE_CODE_RESUME_` en el entorno de VS Code o en el [ajuste `environmentVariables`](#extension-settings) no tiene efecto en el panel, porque la extensión elimina esas variables antes de iniciar las sesiones del panel.

329 342 

343<h4 id="a-conversation-was-not-reopened">

344 No se reabrió una conversación

345</h4>

346 

347Después de una recarga, un chat nuevo con un aviso como este encima de su cuadro de prompt significa que el panel dejó tu conversación cerrada porque las dos últimas aperturas de la conversación no terminaron:

348 

349```text theme={null}

350“Fix the login bug” was not reopened. It did not finish opening the last 2 times, and opening it again may stop Claude Code from responding here.

351```

352 

353Una apertura no termina cuando el panel falla o deja de responder mientras carga la conversación, o cuando recargas o cierras la ventana dentro de unos tres segundos después de que se abre. No se pierde nada: la conversación no cambia y permanece en [Historial de sesiones](#resume-past-conversations).

354 

355* **Para abrirla de todos modos**: haz clic en **Open it anyway** o elige la conversación desde el Historial de sesiones. Si se abre y el panel sigue funcionando, vuelve después de las recargas posteriores como de costumbre. Si el panel deja de responder de nuevo, recarga la ventana para volver a un chat nuevo con el aviso.

356* **Para dejarla cerrada**: sigue trabajando en el chat nuevo. El aviso desaparece en cuanto envías un prompt.

357 

330<h3 id="run-multiple-conversations">358<h3 id="run-multiple-conversations">

331 Ejecuta múltiples conversaciones359 Ejecuta múltiples conversaciones

332</h3>360</h3>


464 492 

465Para obtener más información sobre el sistema de plugins, consulte [Plugins](/docs/es/plugins/overview) y [Plugin marketplaces](/docs/es/plugins/overview).493Para obtener más información sobre el sistema de plugins, consulte [Plugins](/docs/es/plugins/overview) y [Plugin marketplaces](/docs/es/plugins/overview).

466 494 

495<h3 id="plugins-that-draw-in-the-panel">

496 Plugins que dibujan en el panel

497</h3>

498 

499Un plugin que contiene un [mod](/docs/es/plugins/mods/overview) puede dibujar en el panel de chat. Dibujar requiere la versión 2.1.299 o posterior de la extensión y una sesión que [obtenga feature flags](/docs/es/env-vars#features-that-need-feature-flag-fetching). De un plugin así puedes ver:

500 

501* Un panel junto a la conversación o encima del cuadro de prompt

502* Una notificación emergente o una línea de estado encima del cuadro de prompt

503* Un mensaje o una llamada a herramienta dibujados a la manera propia del plugin

504 

505Cuando un plugin que instalaste agrega o cambia algo en el panel, una etiqueta lo nombra, con frases como estas:

506 

507* **From the token-chart plugin**: el plugin dibujó o imprimió esto, o esta tarjeta es el plugin preguntándote algo

508* **Edited by the token-chart plugin**: el plugin cambió algo que Claude Code dibuja, como una llamada a herramienta

509* **Prompt from the token-chart plugin**: el plugin envió este mensaje en tu nombre

510 

511Para impedir que un plugin dibuje, desactiva el plugin en el [diálogo de plugins](#install-plugins).

512 

467<h2 id="automate-browser-tasks-with-chrome">513<h2 id="automate-browser-tasks-with-chrome">

468 Automatizar tareas del navegador con Chrome514 Automatizar tareas del navegador con Chrome

469</h2>515</h2>


898 944 

899Alternativamente, revinculle la extensión a una tecla diferente: abra el editor de [Atajos de teclado](https://code.visualstudio.com/docs/configure/keybindings) de VS Code (`Cmd+K Cmd+S`), busque `Claude Code: Focus input`, y asigne un nuevo atajo.945Alternativamente, revinculle la extensión a una tecla diferente: abra el editor de [Atajos de teclado](https://code.visualstudio.com/docs/configure/keybindings) de VS Code (`Cmd+K Cmd+S`), busque `Claude Code: Focus input`, y asigne un nuevo atajo.

900 946 

947<h3 id="a-resumed-conversation-is-blank-at-first">

948 Una conversación reanudada aparece en blanco al principio

949</h3>

950 

951Cuando [reanudas una conversación anterior](#resume-past-conversations) o una [vuelve después de una recarga](#continue-conversations-after-a-reload), sus mensajes pueden permanecer en blanco mientras se inicia el proceso de Claude Code de la conversación. Después de aproximadamente un segundo, aparece `Waiting for your plugins…` en el espacio vacío.

952 

953No necesitas hacer nada. Los mensajes aparecen una vez que el proceso se ha iniciado y ha confirmado que ningún plugin necesita revisarlos primero, o después de 20 segundos si el inicio tarda más.

954 

955<h3 id="the-panel-stops-responding-each-time-a-reload-reopens-a-conversation">

956 El panel deja de responder cada vez que una recarga vuelve a abrir una conversación

957</h3>

958 

959Si todo el panel falla, se congela o solo muestra `Something went wrong` cada vez que recargas y tu conversación vuelve, actualiza la extensión a la v2.1.301 o posterior. Luego recarga la ventana o reinicia VS Code de nuevo. Después de que la conversación no termine de abrirse dos veces seguidas, obtienes un chat nuevo en su lugar, con un aviso de que [no se volvió a abrir](#a-conversation-was-not-reopened).

960 

961<h3 id="a-formula-shows-as-raw-latex">

962 Una fórmula se muestra como LaTeX sin procesar

963</h3>

964 

965Si nada de las matemáticas en las respuestas de Claude se compone tipográficamente, verifica la versión de la extensión en la vista Extensiones, porque la [representación de matemáticas](#latex-math-in-responses) requiere la versión 2.1.301 o posterior. Si usas el [modo terminal](#switch-to-terminal-mode), que no compone matemáticas sin importar la versión, desmarca el [ajuste Use Terminal](vscode://settings/claudeCode.useTerminal) para que Claude Code se abra en el panel de chat.

966 

967Si una fórmula se muestra tal como está escrita mientras que otras cercanas sí se componen, revisa si se debe a alguna de estas causas:

968 

969* **Se lee como algo distinto de matemáticas**: el texto `$…$` que se lee como una palabra se queda tal como está escrito, como `$O(n log n)$`. El texto `$…$` que empieza con un dígito, como `$30$` o `$1/N$`, también se queda tal como está escrito, a menos que un carácter como `=`, `+` o `^` lo marque como matemáticas. En su lugar, pídele a Claude un bloque `$$` en sus propias líneas, que el panel compone sin esta comprobación.

970* **Tiene espacios de relleno, es largo o está dividido en varias líneas**: `$ x^2 $` con espacios dentro de los signos de dólar, el contenido `$…$` de más de 60 caracteres y `$…$` o `\(…\)` divididos en dos líneas no se componen. En su lugar, pídele a Claude un bloque `$$` en sus propias líneas, que no tiene ninguno de estos límites.

971* **El TeX no se puede componer**: una fórmula con un error de sintaxis, una definición de macro como `\newcommand` o `\def`, o un `%` sin escapar se muestra tal como está escrita. Pídele a Claude que la reescriba con el error corregido, sin la macro o con `\%` para el signo de porcentaje.

972* **Es demasiado grande**: una fórmula de más de 8,192 caracteres, o una que se dibujaría mucho más grande que su código fuente, se muestra tal como está escrita. Pídele a Claude que la divida en fórmulas más pequeñas o que la escriba de forma más compacta.

973* **Sigue a una gran cantidad de matemáticas**: dentro de un bloque de texto de una respuesta, el panel compone las fórmulas en orden hasta un límite. Una fórmula posterior que superaría el límite se muestra tal como está escrita. Pídele a Claude que vuelva a enviar por separado la fórmula que necesitas.

974 

901<h3 id="claude-code-never-responds">975<h3 id="claude-code-never-responds">

902 Claude Code nunca responde976 Claude Code nunca responde

903</h3>977</h3>

Details

103Si ya conectaste GitHub en el navegador, `/web-setup` te advierte que continuar reemplaza esa conexión para tus sesiones en la nube.103Si ya conectaste GitHub en el navegador, `/web-setup` te advierte que continuar reemplaza esa conexión para tus sesiones en la nube.

104 104 

105<Note>105<Note>

106 Las organizaciones con [Retención de datos cero](/docs/es/zero-data-retention) habilitada, o con la [configuración HIPAA](/docs/es/hipaa-setup) aplicada, no pueden usar `/web-setup` u otras características de sesión en la nube. Si la CLI de GitHub no está instalada o no está autenticada, Claude Code abre el flujo de incorporación del navegador en su lugar.106 Las organizaciones con [Retención de datos cero](/docs/es/zero-data-retention) habilitada, o con la [configuración HIPAA](/docs/es/hipaa-setup) aplicada, no pueden usar `/web-setup` u otras características de sesión en la nube. Las organizaciones que usan [claves de cifrado administradas por el cliente](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) tampoco pueden iniciar sesiones en la nube. Si la CLI de GitHub no está instalada o no está autenticada, Claude Code abre el flujo de incorporación del navegador en su lugar.

107</Note>107</Note>

108 108 

109<Steps>109<Steps>


126 /web-setup126 /web-setup

127 ```127 ```

128 128 

129 Confirma el mensaje para enviar tu token de `gh` a tu cuenta de Claude. Si tiene éxito, Claude Code imprime `Connected as <tu-nombre-de-usuario-github>` y abre [claude.ai/code](https://claude.ai/code) en tu navegador. Si aún no tienes un entorno en la nube, `/web-setup` crea uno con acceso a red Trusted y sin script de configuración. Puedes [editar el entorno o agregar variables](/docs/es/cloud-environments#configure-your-environment) después. Una vez que `/web-setup` se complete, puedes iniciar sesiones en la nube desde tu terminal con [`--cloud`](/docs/es/claude-code-on-the-web#from-terminal-to-cloud) o configurar tareas recurrentes con [`/schedule`](/docs/es/routines).129 Confirma la solicitud para enviar tu token de `gh` a tu cuenta de Claude. Si tiene éxito, Claude Code imprime `Connected as <your-github-username>` y abre [claude.ai/code](https://claude.ai/code) en tu navegador. Si aún no tienes un entorno en la nube, `/web-setup` crea uno con acceso a red Trusted y sin script de configuración. Puedes [editar el entorno o agregar variables](/docs/es/cloud-environments#configure-your-environment) después. Una vez que `/web-setup` se complete, puedes iniciar sesiones en la nube desde tu terminal con [`--cloud`](/docs/es/claude-code-on-the-web#from-terminal-to-cloud) o configurar tareas recurrentes con [`/schedule`](/docs/es/routines).

130 </Step>130 </Step>

131</Steps>131</Steps>

132 132 

Details

74 <p className="digest-wins-title">Otros logros</p>74 <p className="digest-wins-title">Otros logros</p>

75 75 

76 <div className="digest-wins-grid">76 <div className="digest-wins-grid">

77 <div><a href="/docs/es/code-review#review-a-diff-locally"><code>/code-review</code></a> ahora se ejecuta como un subagente de fondo con su propia ventana de contexto, por lo que el trabajo de revisión se mantiene fuera de su conversación y los hallazgos llegan cuando se completa</div>77 <div><a href="/docs/es/code-review-local"><code>/code-review</code></a> ahora se ejecuta como un subagente en segundo plano con su propia ventana de contexto, por lo que el trabajo de revisión se mantiene fuera de tu conversación y los hallazgos llegan cuando se completa</div>

78 <div><code>/verify</code>, <code>/code-review</code> y <code>/deep-research</code> se ejecutan solo cuando los invoca; Claude ya no los inicia por su cuenta</div>78 <div><code>/verify</code>, <code>/code-review</code> y <code>/deep-research</code> se ejecutan solo cuando los invocas; Claude ya no los inicia por su cuenta</div>

79 <div><a href="/docs/es/interactive-mode#emoji-shortcodes">Los códigos de atajo de emoji</a> se completan automáticamente en la entrada del prompt: escriba <code>:heart:</code> para insertar un emoji, o dos o más caracteres después de <code>:</code> para sugerencias; desactívelo con <code>emojiCompletionEnabled</code></div>79 <div><a href="/docs/es/interactive-mode#emoji-shortcodes">Los códigos de atajo de emoji</a> se completan automáticamente en la entrada del prompt: escribe <code>:heart:</code> para insertar un emoji, o dos o más caracteres después de <code>:</code> para ver sugerencias; desactívalo con <code>emojiCompletionEnabled</code></div>

80 <div>Las skills con <code>context: fork</code> <a href="/docs/es/skills#run-skills-in-a-subagent">se ejecutan en el fondo</a> de forma predeterminada, y <code>background: false</code> en el frontmatter de la skill espera el resultado en el mismo turno</div>80 <div>Los skills con <code>context: fork</code> <a href="/docs/es/skills#run-skills-in-a-subagent">se ejecutan en segundo plano</a> de forma predeterminada, y <code>background: false</code> en el frontmatter del skill espera el resultado en el mismo turno</div>

81 <div>Una sesión ejecuta hasta 20 subagentes concurrentemente de forma predeterminada; cambie el <a href="/docs/es/sub-agents#concurrent-subagent-limit">límite</a> con <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>81 <div>Una sesión ejecuta hasta 20 subagentes simultáneamente de forma predeterminada; cambia el <a href="/docs/es/sub-agents#concurrent-subagent-limit">límite</a> con <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>

82 <div>`--max-budget-usd` ahora aplica el límite en subagentes: una vez que el gasto lo alcanza, Claude no puede iniciar más y los subagentes de fondo en ejecución se detienen</div>82 <div>`--max-budget-usd` ahora aplica el límite a los subagentes: una vez que el gasto lo alcanza, Claude no puede iniciar más y los subagentes en segundo plano en ejecución se detienen</div>

83 <div>Nueva configuración <a href="/docs/es/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> que omite el aislamiento del sistema de archivos mientras mantiene el control de salida de red</div>83 <div>Nuevo ajuste <a href="/docs/es/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> que omite el aislamiento del sistema de archivos mientras mantiene el control de salida de red</div>

84 <div>En modo automático, las comprobaciones de comandos <code>rm</code> peligrosos, trabajos de fondo y rutas de Windows sospechosas ya no abren diálogos de permisos; el clasificador de modo automático los adjudica en su lugar</div>84 <div>En modo automático, las comprobaciones de comandos <code>rm</code> peligrosos, trabajos en segundo plano y rutas de Windows sospechosas ya no abren diálogos de permisos; en su lugar, el clasificador del modo automático decide sobre ellos</div>

85 <div>Las comprobaciones de permisos de Bash fallan cerradas en más formas de shell, incluidas redirecciones de descriptores de archivo, subíndices de variables de Zsh en comparaciones <code>\[\[ ]]</code>, invocaciones de <code>help</code> y <code>man</code> que podrían ejecutar opciones inseguras, y comandos de más de 10.000 caracteres</div>85 <div>Las comprobaciones de permisos de Bash fallan de forma cerrada en más formas de shell, incluidas redirecciones de descriptores de archivo, subíndices de variables de Zsh en comparaciones <code>\[\[ ]]</code>, invocaciones de <code>help</code> y <code>man</code> que podrían ejecutar opciones inseguras, y comandos de más de 10.000 caracteres</div>

86 <div><a href="/docs/es/fast-mode">El modo rápido</a> ya no admite Opus 4.7: <code>/fast</code> ahora se aplica a Opus 5 y Opus 4.8</div>86 <div><a href="/docs/es/fast-mode">El modo rápido</a> ya no admite Opus 4.7: <code>/fast</code> ahora se aplica a Opus 5 y Opus 4.8</div>

87 <div>Las llamadas a herramientas de larga duración emiten un latido de progreso periódico en lugar de quedarse en silencio</div>87 <div>Las llamadas a herramientas de larga duración emiten un latido de progreso periódico en lugar de quedarse en silencio</div>

88 </div>88 </div>

Details

84 <p className="digest-wins-title">Otros logros</p>84 <p className="digest-wins-title">Otros logros</p>

85 85 

86 <div className="digest-wins-grid">86 <div className="digest-wins-grid">

87 <div>La extensión de VS Code obtiene <a href="/docs/es/vs-code#extension-settings">Vista de enfoque</a>, que oculta la actividad de herramientas detrás de una fila expandible por turno; actívela desde el menú de comandos o con <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> en Mac)</div>87 <div>La extensión de VS Code incorpora la <a href="/docs/es/vs-code#extension-settings">Vista de enfoque</a>, que oculta la actividad de las herramientas detrás de una fila expandible por turno; actívala desde el menú de comandos o con <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> en Mac)</div>

88 <div>Los archivos de credenciales de sandbox aceptan <a href="/docs/es/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> en Linux y WSL2, por lo que los comandos en sandbox leen una copia centinela mientras el proxy de sandbox sustituye el valor real en la salida; el enmascaramiento de credenciales también gana opciones <code>extract</code>, <code>decode</code> consciente de JWT y re-firma de AWS SigV4</div>88 <div>Los archivos de credenciales del sandbox aceptan <a href="/docs/es/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> en Linux y WSL2, de modo que los comandos ejecutados en el sandbox leen una copia centinela mientras el proxy del sandbox sustituye el valor real en el tráfico de salida; el enmascaramiento de credenciales también incorpora las opciones <code>extract</code>, <code>decode</code> compatible con JWT y re-firma de AWS SigV4</div>

89 <div>Los mercados pueden distribuir un plugin como un <a href="/docs/es/plugins/marketplace-reference#archive-plugin-source">archivo zip</a> con la nueva fuente <code>archive</code>, descargada sobre HTTPS con un pin SHA-256 opcional, por lo que las instalaciones funcionan sin git o npm</div>89 <div>Los marketplaces pueden distribuir un plugin como un <a href="/docs/es/plugins/marketplace-reference#archive-plugin-source">archivo zip</a> con la nueva fuente <code>archive</code>, que se descarga por HTTPS con un pin SHA-256 opcional, por lo que las instalaciones funcionan sin git ni npm</div>

90 <div><code>/review</code> ahora es un alias de <a href="/docs/es/code-review#review-a-diff-locally"><code>/code-review</code></a>, y <code>/code-review</code> sin nivel de esfuerzo reutiliza el nivel que escribió por última vez</div>90 <div><code>/review</code> ahora es un alias de <a href="/docs/es/code-review-local"><code>/code-review</code></a>, y <code>/code-review</code> sin nivel de esfuerzo reutiliza el último nivel que escribiste</div>

91 <div>Una sesión que copia con <a href="/docs/es/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> ahora realiza sus cambios de código en un worktree propio en lugar del checkout de la sesión original</div>91 <div>Una sesión que copias con <a href="/docs/es/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> ahora hace sus cambios de código en un worktree propio en lugar del checkout de la sesión original</div>

92 <div>Los plugins que instala desde <a href="/docs/es/plugins/install#install-a-plugin"><code>/plugin</code></a> se activan en la sesión actual cuando es seguro hacerlo; el resumen de instalación reporta <code>Plugin is now active.</code> o le dice que ejecute <code>/reload-plugins</code></div>92 <div>Los plugins que instalas desde <a href="/docs/es/plugins/install#install-a-plugin"><code>/plugin</code></a> se activan en la sesión actual cuando es seguro hacerlo; el resumen de instalación informa <code>Plugin is now active.</code> o te indica que ejecutes <code>/reload-plugins</code></div>

93 <div><a href="/docs/es/agent-view#how-file-edits-are-isolated">Las sesiones en segundo plano</a> que cambiaron código en un worktree ahora confirman e impulsan antes de terminar, abren una solicitud de extracción de borrador solo cuando la tarea lo requiere, y siguen las instrucciones de git en su <code>CLAUDE.md</code></div>93 <div><a href="/docs/es/agent-view#how-file-edits-are-isolated">Las sesiones en segundo plano</a> que cambiaron código en un worktree ahora hacen commit y push antes de terminar, abren un pull request en borrador solo cuando la tarea lo requiere y siguen las instrucciones de git de tu <code>CLAUDE.md</code></div>

94 <div>Se elimina el límite de 200 subagentes por sesión, por lo que las sesiones de larga duración ya no rechazan nuevos subagentes; los límites de <a href="/docs/es/sub-agents#concurrent-subagent-limit">concurrencia</a> y profundidad aún se aplican</div>94 <div>Se elimina el límite de 200 subagentes por sesión, por lo que las sesiones de larga duración ya no rechazan nuevos subagentes; los límites de <a href="/docs/es/sub-agents#concurrent-subagent-limit">concurrencia</a> y profundidad siguen aplicándose</div>

95 <div>La configuración registrada de un repositorio ya no puede activar <a href="/docs/es/remote-control#enable-remote-control-for-all-sessions">Conexión automática de control remoto</a>; establezca <code>remoteControlAtStartup</code> en su configuración de usuario o administrada en su lugar, y la configuración de proyecto y local solo puede desactivarla</div>95 <div>La configuración incluida en un repositorio ya no puede activar la <a href="/docs/es/remote-control#enable-remote-control-for-all-sessions">conexión automática de Remote Control</a>; en su lugar, establece <code>remoteControlAtStartup</code> en tu configuración de usuario o en la configuración administrada, y la configuración de proyecto y local solo puede desactivarla</div>

96 <div><a href="/docs/es/worktrees#how-claude-code-enforces-isolation">El aislamiento de worktree</a> ahora bloquea no solo ediciones de archivos sino también comandos Bash y redirecciones de git que llegan al checkout principal, en cada tipo de sesión y en los subagentes de la sesión</div>96 <div><a href="/docs/es/worktrees#how-claude-code-enforces-isolation">El aislamiento con worktrees</a> ahora bloquea no solo las ediciones de archivos, sino también los comandos Bash y las redirecciones de git que llegan al checkout principal, en todos los tipos de sesión y en los subagentes de la sesión</div>

97 <div>Un comando Bash ya no puede ocultar parte de sí mismo de las verificaciones de permisos, y el relleno de tabulación o Unicode invisible ya no oculta parte de un comando del diálogo de aprobación</div>97 <div>Un comando Bash ya no puede ocultar parte de sí mismo de las verificaciones de permisos, y el relleno con tabulaciones o Unicode invisible ya no oculta parte de un comando en el diálogo de aprobación</div>

98 <div>Los hooks de auto-permitir PreToolUse ya no omiten las restricciones de herramientas en las tareas internas de Claude Code, como resúmenes y compactación</div>98 <div>Los hooks PreToolUse que permiten automáticamente ya no omiten las restricciones de herramientas en las tareas secundarias internas de Claude Code, como los resúmenes y la compactación</div>

99 <div>La <a href="/docs/es/ultraplan">vista previa de investigación de Ultraplan</a> se elimina, incluido el comando <code>/ultraplan</code> y la palabra clave <code>ultraplan</code>; use el modo de plan o Claude Code en la web en su lugar</div>99 <div>Se elimina la vista previa de investigación de <a href="/docs/es/ultraplan">Ultraplan</a>, incluidos el comando <code>/ultraplan</code> y la palabra clave <code>ultraplan</code>; en su lugar, usa el modo plan o Claude Code en la web</div>

100 </div>100 </div>

101</div>101</div>

102 102 

Details

4 4 

5# Semana 33 · 10–14 de agosto de 20265# Semana 33 · 10–14 de agosto de 2026

6 6 

7> Claude Code Desktop continúa automáticamente después de que se restablece un límite de uso, el modo fork se activa de forma predeterminada, y las solicitudes de fusión de GitLab y los marketplaces se unen a GitHub.7> Claude Code Desktop continúa automáticamente después de que se restablece un límite de uso, el modo fork se activa de forma predeterminada, y los merge requests y marketplaces de GitLab se unen a GitHub.

8 8 

9<div className="digest-meta">9<div className="digest-meta">

10 <span>Releases <a href="/docs/en/changelog#2-1-225">v2.1.225 → v2.1.233</a></span>10 <span>Releases <a href="/docs/en/changelog#2-1-225">v2.1.225 → v2.1.233</a></span>


17 <span className="digest-feature-pill">Desktop</span>17 <span className="digest-feature-pill">Desktop</span>

18 </div>18 </div>

19 19 

20 <p className="digest-feature-lede">Cuando alcanza su límite de sesión en la pestaña Code de Claude Code Desktop, la tarjeta de límite ahora ofrece una casilla de verificación <strong>Continuar automáticamente cuando se restablezcan los límites</strong>. Márquela y la aplicación Desktop reintentará el turno interrumpido después del restablecimiento. La tarjeta muestra la hora de reintento. La tarjeta de límite semanal no la ofrece.</p>20 <p className="digest-feature-lede">Cuando alcanzas tu límite de sesión en la pestaña Code de Claude Code Desktop, la tarjeta de límite ahora ofrece una casilla de verificación <strong>Continuar automáticamente cuando se restablezcan los límites</strong>. Márcala y la aplicación Desktop reintentará el turno interrumpido después del restablecimiento. La tarjeta muestra la hora de reintento. La tarjeta de límite semanal no la ofrece.</p>

21 21 

22 <Frame>22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/desktop-auto-continue.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=1937f489695feaea715e48ecfd7e62cd" data-path="images/whats-new/desktop-auto-continue.mp4" />23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/desktop-auto-continue.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=1937f489695feaea715e48ecfd7e62cd" data-path="images/whats-new/desktop-auto-continue.mp4" />

24 </Frame>24 </Frame>

25 25 

26 <p className="digest-feature-try">La próxima vez que aparezca una tarjeta de límite de sesión, marque <strong>Continuar automáticamente cuando se restablezcan los límites</strong> y deje la sesión abierta. La tarjeta muestra <code>Auto-resuming at</code> seguido de la hora de restablecimiento, y el turno se reanuda automáticamente una vez que se restablece el límite.</p>26 <p className="digest-feature-try">La próxima vez que aparezca una tarjeta de límite de sesión, marca <strong>Continuar automáticamente cuando se restablezcan los límites</strong> y deja la sesión abierta. La tarjeta muestra <code>Auto-resuming at</code> seguido de la hora de restablecimiento, y el turno se reanuda automáticamente una vez que se restablece el límite.</p>

27 27 

28 <a className="digest-feature-link" href="/docs/es/errors#youve-hit-your-session-limit">Qué hacer cuando alcanza un límite de uso</a>28 <a className="digest-feature-link" href="/docs/es/errors#youve-hit-your-session-limit">Qué hacer cuando alcanzas un límite de uso</a>

29</div>29</div>

30 30 

31<div className="digest-feature">31<div className="digest-feature">


34 <span className="digest-feature-pill">v2.1.232</span>34 <span className="digest-feature-pill">v2.1.232</span>

35 </div>35 </div>

36 36 

37 <p className="digest-feature-lede">El modo fork ahora está activado de forma predeterminada en sesiones interactivas. Claude puede solicitar el tipo de subagente <code>fork</code>, que hereda la conversación completa y la caché de prompt en lugar de comenzar desde cero, por lo que no tiene que volver a explicar el contexto para una tarea secundaria. Los subagentes que Claude genera en sesiones interactivas, aparte de los que genera un compañero de equipo de agentes, también se ejecutan en segundo plano de forma predeterminada.</p>37 <p className="digest-feature-lede">El modo fork ahora está activado de forma predeterminada en sesiones interactivas. Claude puede solicitar el tipo de subagente <code>fork</code>, que hereda la conversación completa y la caché de prompt en lugar de comenzar desde cero, por lo que no tienes que volver a explicar el contexto para una tarea secundaria. Los subagentes que Claude genera en sesiones interactivas, aparte de los que genera un compañero de un equipo de agentes, también se ejecutan en segundo plano de forma predeterminada.</p>

38 38 

39 <p className="digest-feature-try">Inicie un fork usted mismo con una tarea que necesite todo lo que ha discutido hasta ahora:</p>39 <p className="digest-feature-try">Inicia un fork tú mismo con una tarea que necesite todo lo que has discutido hasta ahora:</p>

40 40 

41 ```text Claude Code theme={null}41 ```text Claude Code theme={null}

42 > /subtask draft unit tests for the parser changes so far42 > /subtask draft unit tests for the parser changes so far

43 ```43 ```

44 44 

45 <p className="digest-feature-try">El fork aparece en el panel debajo de su prompt y su resultado llega a su conversación cuando finaliza. Para desactivar el modo fork, establezca <code>CLAUDE\_CODE\_FORK\_SUBAGENT=0</code>.</p>45 <p className="digest-feature-try">El fork aparece en el panel debajo de tu prompt y su resultado llega a tu conversación cuando finaliza. Para desactivar el modo fork, establece <code>CLAUDE\_CODE\_FORK\_SUBAGENT=0</code>.</p>

46 46 

47 <a className="digest-feature-link" href="/docs/es/sub-agents#turn-fork-mode-on-or-off">Activar o desactivar el modo fork</a>47 <a className="digest-feature-link" href="/docs/es/sub-agents#turn-fork-mode-on-or-off">Activar o desactivar el modo fork</a>

48</div>48</div>

49 49 

50<div className="digest-feature">50<div className="digest-feature">

51 <div className="digest-feature-header">51 <div className="digest-feature-header">

52 <span className="digest-feature-title">Solicitudes de fusión de GitLab y marketplaces</span>52 <span className="digest-feature-title">Merge requests y marketplaces de GitLab</span>

53 <span className="digest-feature-pill">v2.1.232</span>53 <span className="digest-feature-pill">v2.1.232</span>

54 </div>54 </div>

55 55 

56 <p className="digest-feature-lede">Los marketplaces de plugins clonan URLs de <code>gitlab.com</code> desnudas, incluidos subgrupos anidados. En v2.1.233 o posterior, pase una URL de solicitud de fusión de GitLab a <code>--worktree</code> para ramificar desde ella, y la vista <code>claude agents</code> etiqueta sesiones vinculadas a una solicitud de fusión como <code>!N</code>. Claude Code también redacta familias de tokens de GitLab como <code>glpat-</code> y <code>glrt-</code>, y protege el almacén de configuración de la CLI <code>glab</code> de la misma manera que protege <code>gh</code>.</p>56 <p className="digest-feature-lede">Los marketplaces de plugins clonan URLs de <code>gitlab.com</code> desnudas, incluidos subgrupos anidados. En v2.1.233 o posterior, pasa una URL de merge request de GitLab a `--worktree` para crear una rama a partir de ella, y la vista <code>claude agents</code> etiqueta las sesiones vinculadas a un merge request como <code>!N</code>. Claude Code también oculta familias de tokens de GitLab como <code>glpat-</code> y <code>glrt-</code>, y protege el almacén de configuración de la CLI <code>glab</code> de la misma manera que protege <code>gh</code>.</p>

57 57 

58 <p className="digest-feature-try">Inicie una sesión en un worktree ramificado desde una solicitud de fusión:</p>58 <p className="digest-feature-try">Inicia una sesión en un worktree creado a partir de un merge request:</p>

59 59 

60 ```bash terminal theme={null}60 ```bash terminal theme={null}

61 claude --worktree https://gitlab.com/group/project/-/merge_requests/4261 claude --worktree https://gitlab.com/group/project/-/merge_requests/42


63 63 

64 <p className="digest-feature-try">Cuando <code>origin</code> está en gitlab.com, Claude Code obtiene <code>merge-requests/42/head</code> y abre la sesión en esa rama en su propio worktree.</p>64 <p className="digest-feature-try">Cuando <code>origin</code> está en gitlab.com, Claude Code obtiene <code>merge-requests/42/head</code> y abre la sesión en esa rama en su propio worktree.</p>

65 65 

66 <a className="digest-feature-link" href="/docs/es/worktrees#branch-from-a-pull-request">Ramificar un worktree desde una solicitud de extracción o fusión</a>66 <a className="digest-feature-link" href="/docs/es/worktrees#branch-from-a-pull-request">Crear un worktree a partir de un pull request o merge request</a>

67</div>67</div>

68 68 

69<div className="digest-wins">69<div className="digest-wins">

70 <p className="digest-wins-title">Otros logros</p>70 <p className="digest-wins-title">Otros logros</p>

71 71 

72 <div className="digest-wins-grid">72 <div className="digest-wins-grid">

73 <div>Escriba <code>@</code> en el prompt para <a href="/docs/es/cross-session-messaging#message-another-session">mencionar otra sesión de Claude</a> por nombre, y Claude la mensajea directamente con <code>SendMessage</code>; un nombre simple que coincida exactamente con una sesión activa ahora se entrega sin un paso de confirmación</div>73 <div>Escribe <code>@</code> en el prompt para <a href="/docs/es/cross-session-messaging#message-another-session">mencionar otra sesión de Claude</a> por nombre, y Claude le envía un mensaje directamente con <code>SendMessage</code>; un nombre simple que coincida exactamente con una sesión activa ahora se entrega sin un paso de confirmación</div>

74 <div>Las sesiones interactivas en una máquina mantienen <a href="/docs/es/cross-session-messaging#see-which-sessions-claude-can-reach">nombres únicos</a>: si inicia o cambia el nombre de una sesión con un nombre que otra sesión activa ya usa, Claude Code le da una variante <code>name-word-word</code> y se lo comunica</div>74 <div>Las sesiones interactivas en una máquina mantienen <a href="/docs/es/cross-session-messaging#see-which-sessions-claude-can-reach">nombres únicos</a>: si inicias o cambias el nombre de una sesión con un nombre que otra sesión activa ya usa, Claude Code le da a la tuya una variante <code>name-word-word</code> y te lo comunica</div>

75 <div>Los marketplaces de plugins aceptan <a href="/docs/es/plugins/marketplace-reference#command-plugin-source">fuentes de <code>command</code></a>: un comando local imprime el directorio del plugin, que Claude Code re-resuelve cada sesión y aplica sin un reinicio</div>75 <div>Los marketplaces de plugins aceptan <a href="/docs/es/plugins/marketplace-reference#command-plugin-source">fuentes de <code>command</code></a>: un comando local imprime el directorio del plugin, que Claude Code vuelve a resolver en cada sesión y aplica sin un reinicio</div>

76 <div>En Linux y WSL, establezca <a href="/docs/es/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> a un tamaño como <code>4G</code> para limitar la memoria que los comandos de herramientas Bash y PowerShell pueden usar</div>76 <div>En Linux y WSL, establece <a href="/docs/es/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> a un tamaño como <code>4G</code> para limitar la memoria que los comandos de las herramientas Bash y PowerShell pueden usar</div>

77 <div>Las herramientas de seguimiento de tareas, como <code>TaskCreate</code>, <code>TaskUpdate</code> y <code>TodoWrite</code>, <a href="/docs/es/tools-reference#task-tool-availability">ya no están disponibles en Opus 4.8, Sonnet 5, Fable 5, Mythos 5 y modelos posteriores en esas familias</a>; establezca <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> para volver a habilitarlas</div>77 <div>Las herramientas de seguimiento de tareas, como <code>TaskCreate</code>, <code>TaskUpdate</code> y <code>TodoWrite</code>, <a href="/docs/es/tools-reference#task-tool-availability">ya no están disponibles en Opus 4.8, Sonnet 5, Fable 5, Mythos 5 y modelos posteriores en esas familias</a>; establece <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> para volver a habilitarlas</div>

78 <div><a href="/docs/es/code-review#review-a-diff-locally"><code>/code-review</code></a> en esfuerzo alto, xhigh y máximo ahora se ejecuta en un agente de fondo como los otros niveles</div>78 <div><a href="/docs/es/code-review-local"><code>/code-review</code></a> en esfuerzo alto, xhigh y máximo ahora se ejecuta en un agente en segundo plano como los otros niveles</div>

79 <div><a href="/docs/es/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> actualiza primero el marketplace, por lo que los plugins recién publicados se instalan sin una actualización manual del marketplace</div>79 <div><a href="/docs/es/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> actualiza primero el marketplace, por lo que los plugins recién publicados se instalan sin una actualización manual del marketplace</div>

80 <div>La configuración acepta <a href="/docs/es/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> y <code>allowedMarketplaces</code></a> como alias para <code>extraKnownMarketplaces</code> y <code>strictKnownMarketplaces</code></div>80 <div>La configuración acepta <a href="/docs/es/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> y <code>allowedMarketplaces</code></a> como alias para <code>extraKnownMarketplaces</code> y <code>strictKnownMarketplaces</code></div>

81 <div>En modelos más nuevos, Claude puede <a href="/docs/es/tools-reference#write-tool-behavior">sobrescribir un archivo existente con la herramienta Write</a> sin leerlo primero en esta sesión, coincidiendo con las reglas de la herramienta Edit; los modelos más antiguos requieren la lectura</div>81 <div>En modelos más nuevos, Claude puede <a href="/docs/es/tools-reference#write-tool-behavior">sobrescribir un archivo existente con la herramienta Write</a> sin leerlo primero en esta sesión, coincidiendo con las reglas de la herramienta Edit; los modelos más antiguos requieren la lectura</div>

82 <div>La extensión de VS Code puede <a href="/docs/es/vs-code#organize-sessions-into-groups">organizar la lista de sesiones en grupos</a>: haga clic derecho para crear, cambiar el nombre o eliminar un grupo, y Cmd/Ctrl- o Shift-click para mover varias sesiones a la vez</div>82 <div>La extensión de VS Code puede <a href="/docs/es/vs-code#organize-sessions-into-groups">organizar la lista de sesiones en grupos</a>: haz clic derecho para crear, cambiar el nombre o eliminar un grupo, y Cmd/Ctrl-clic o Shift-clic para mover varias sesiones a la vez</div>

83 <div>Si su organización enruta Claude Code a través de una <a href="/docs/es/claude-apps-gateway-spend-limits">puerta de enlace de aplicaciones Claude con límites de gasto</a>, Claude Code muestra el período de límite, su hora de restablecimiento y el mensaje del operador cuando alcanza el límite</div>83 <div>Si tu organización enruta Claude Code a través de un <a href="/docs/es/claude-apps-gateway-spend-limits">gateway de aplicaciones Claude con límites de gasto</a>, Claude Code muestra el período del límite, su hora de restablecimiento y el mensaje del operador cuando alcanzas el límite</div>

84 </div>84 </div>

85</div>85</div>

86 86 

workflows.md +4 −4

Details

205 205 

206En `claude -p` y el Agent SDK, Claude Code nunca muestra este prompt. Ejecuta la llamada de herramienta Workflow a través de la misma [evaluación de permiso](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) que el resto de la sesión, por lo que las reglas de denegación, las reglas de solicitud y el modo `dontAsk` se aplican al lanzamiento como se aplican a cada llamada de herramienta. Para permitir que el workflow comience en estas ejecuciones, use uno de estos:206En `claude -p` y el Agent SDK, Claude Code nunca muestra este prompt. Ejecuta la llamada de herramienta Workflow a través de la misma [evaluación de permiso](/docs/es/agent-sdk/permissions#how-permissions-are-evaluated) que el resto de la sesión, por lo que las reglas de denegación, las reglas de solicitud y el modo `dontAsk` se aplican al lanzamiento como se aplican a cada llamada de herramienta. Para permitir que el workflow comience en estas ejecuciones, use uno de estos:

207 207 

208* **Regla de permiso**: `Workflow` en sus reglas de permitidos aprueba cada workflow, y `Workflow(<name>)` aprueba un workflow guardado por nombre.208* **Regla de permisos**: agrega `Workflow` a tus reglas de permitidos para aprobar cada workflow, o `Workflow(<name>)` para aprobar un workflow guardado por nombre.

209* **Modo de permiso automático**: el [clasificador](/docs/es/permission-modes#eliminate-prompts-with-auto-mode) revisa la llamada y puede aprobarla.209* **Modo de permisos automático**: ejecuta en [modo automático](/docs/es/permission-modes#eliminate-prompts-with-auto-mode), donde el clasificador revisa la llamada y puede aprobarla.

210* **Modo de permisos de omisión**: Claude Code aprueba la llamada.210* **Modo de omisión de permisos**: ejecuta en modo de omisión de permisos.

211* **Un hook**: un hook [`PreToolUse`](/docs/es/hooks#pretooluse) que permite la llamada la aprueba.211* **Un hook**: devuelve `"allow"` para la llamada desde un hook [`PreToolUse`](/docs/es/hooks#pretooluse). En [modo plan](/docs/es/permission-modes#analyze-before-you-edit-with-plan-mode), el workflow no se inicia solo con la aprobación del hook, así que en ese caso usa una regla de permisos o la aprobación de tu host.

212* **Tu host**: un [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) o, con el Agent SDK, un callback [`canUseTool`](/docs/es/agent-sdk/permissions) la aprueba.212* **Tu host**: un [`--permission-prompt-tool`](/docs/es/cli-reference#cli-flags) o, con el Agent SDK, un callback [`canUseTool`](/docs/es/agent-sdk/permissions) la aprueba.

213 213 

214En la aplicación de escritorio, una tarjeta de aprobación muestra el nombre del workflow, la lista de fases y una advertencia de uso de tokens, con acciones **Once**, **Always** y **Deny**. La vista de progreso aparece en el panel lateral Background tasks.214En la aplicación de escritorio, una tarjeta de aprobación muestra el nombre del workflow, la lista de fases y una advertencia de uso de tokens, con acciones **Once**, **Always** y **Deny**. La vista de progreso aparece en el panel lateral Background tasks.