Checkpointing de Claude Code: cómo deshacer cambios con /rewind (2026)
Pulsa Esc dos veces con el campo del prompt vacío, o escribe /rewind, elige un checkpoint y luego decide qué restaurar: código, conversación o ambos. Los checkpoints se crean automáticamente después de cada prompt, conservan los 100 más recientes por sesión y se eliminan solos a los 30 días (configurable). Pero /rewind no puede deshacer comandos bash, no siempre restaura las ediciones de subagent y no reemplaza a git.
- Lo contrasté directamente con la documentación oficial en code.claude.com/docs/en/checkpointing, /commands y /settings en el momento de escribir esto (ago. de 2026); esta es una función que cambia rápido, así que verifica la documentación en vivo antes de depender de ella.
Qué guarda realmente el checkpointing
Claude Code captura automáticamente el estado de tu código antes de cada prompt que envías. Algunos datos que conviene entender bien desde el principio, según la documentación oficial:
- Cada prompt del usuario crea un nuevo checkpoint - automático, no hay nada que activar.
- Solo se rastrean los cambios hechos por las propias herramientas de edición de archivos de Claude - no todos los cambios que ocurren en el disco (detalles en la sección "lo que no se puede deshacer", más abajo).
- Se conservan los 100 checkpoints más recientes por sesión. Cuando se descarta un checkpoint más antiguo, los archivos de snapshot que ya no referencia ningún checkpoint restante también se eliminan - salvo el primer snapshot de cada archivo, que la extensión de VS Code conserva como base para los diffs de esa sesión.
- Los checkpoints se guardan junto con la conversación, así que
/rewindsigue funcionando después de hacer/resumeen una sesión. - Los checkpoints se eliminan junto con la sesión a los 30 días bajo la regla de limpieza predeterminada, ajustable con
cleanupPeriodDaysensettings.json(predeterminado 30, mínimo 1 día según la documentación actual - es un valor que puede cambiar de una versión a otra, así que confírmalo antes de fiarte del número exacto).
¿Nuevo en Claude Code y no tienes claro qué significan sesión, prompt o llamada a herramienta? Empieza por qué es Claude Code antes del resto de esta guía.
Cómo abrir y usar /rewind, paso a paso
Dos formas de abrir el menú de rewind:
- Escribe
/rewindy pulsa Enter. - Pulsa
Escdos veces con el campo del prompt vacío.
Sorpresa habitual: si la caja del prompt tiene texto,
EscEscsolo borra ese borrador hacia tu historial de entradas en lugar de abrir el menú de rewind. El texto borrado no se pierde - pulsaUppara recuperarlo cuando termines en el menú.
El menú de rewind lista todos los prompts que enviaste durante la sesión. Elige un punto y luego escoge una acción:
| Acción | Qué hace |
|---|---|
| Restaurar código y conversación | Revierte tanto el código como la conversación al punto seleccionado. |
| Restaurar conversación | Retrocede hasta ese mensaje manteniendo el código actual. |
| Restaurar código | Revierte los cambios en los archivos manteniendo la conversación. |
| Resumir desde aquí | Comprime la conversación desde este punto en adelante en un resumen, liberando espacio de contexto. |
| Resumir hasta aquí | Comprime la conversación anterior a este punto, dejando intactos los mensajes posteriores. |
| Déjalo | Sale del menú sin cambiar nada. |
Las dos opciones de restaurar código solo aparecen cuando el checkpoint seleccionado realmente tiene cambios rastreados de archivos que revertir - de lo contrario, el menú ofrece solo Restaurar conversación, las dos opciones de Resumir y Déjalo. Con cualquiera de las opciones de Resumir, puedes escribir instrucciones en el campo "add context (optional)" para orientar en qué se centra el resumen; seleccionarla con la tecla numérica, en cambio, resume de inmediato sin instrucciones adicionales.
Lo que /rewind no puede deshacer
Esta es la parte que la mayoría de las demás guías se salta o simplifica en exceso. Cuatro limitaciones reales, directas de la documentación oficial:
| Limitación | Detalle |
|---|---|
| Los cambios por comando bash no se rastrean | rm file.txt, mv old.txt new.txt, cp source.txt dest.txt ejecutados por bash no se pueden deshacer con rewind - solo se rastrean los cambios hechos por las herramientas de edición de archivos de Claude. |
| Las ediciones de subagent normalmente NO se restauran | La única excepción: una skill que corre context: fork en primer plano (background: false) edita tu árbol de trabajo durante tu propio turno, así que rewind restaura esas ediciones con normalidad. Cualquier otro subagent - incluida una skill forked que corre en segundo plano (lo predeterminado) y un /code-review --fix en segundo plano - NO lo restaura rewind; usa git en su lugar. |
| Los cambios externos no se rastrean | Las ediciones manuales hechas fuera de Claude Code, o las ediciones de una sesión concurrente aparte, normalmente no se capturan salvo que por casualidad toquen los mismos archivos que la sesión actual. |
| Los archivos con symlink/hard link se omiten | Al elegir Restaurar código o Restaurar código y conversación, Claude Code omite cualquier ruta rastreada que sea un symlink o hard link y muestra un aviso Restored the code, but skipped N files. Para ver qué rutas se omitirán antes de que ocurra, activa /debug antes de restaurar - el registro queda en ~/.claude/debug/<session-id>.txt. |
Y una cosa que importa más que cualquier fila individual de arriba: los checkpoints están hechos para una recuperación rápida a nivel de sesión, no como sustituto del control de versiones. El historial permanente, las ramas y la colaboración siguen necesitando git.
/rewind vs git vs /clear - la tabla de decisión
La pregunta más práctica aquí: ¿qué herramienta para qué situación? La correcta ahorra segundos; la equivocada puede costarte una tarde entera.
| Escenario | Mejor herramienta | Por qué |
|---|---|---|
| Deshacer las últimas ediciones de Claude a mitad de la tarea | /rewind → Restaurar código | Rápido, sin salir de Claude Code, y mantiene la conversación intacta si quieres. |
| La conversación se desvió pero el código está bien | /rewind → Restaurar conversación | Retrocede el contexto sin tocar archivos que ya están correctos. |
| Querer guardar de forma permanente un estado que funciona | git commit | Los checkpoints se autoeliminan a los ~30 días y no son control de versiones de verdad; un commit es el historial duradero. |
Claude ejecutó rm/mv/npm install y hay que revertirlo | git (o arreglo manual) - no /rewind | Los cambios que vienen de bash no los rastrea el checkpointing, así que rewind no puede tocarlos. |
| El contexto es enorme pero aún quieres seguir trabajando | /rewind → Resumir, o /compact | Comprime la conversación para liberar espacio de contexto sin perder el detalle original en la transcripción. |
| Querer empezar de cero pero conservar los archivos | /clear | Inicia una nueva conversación con contexto vacío; los archivos en el disco quedan intactos. |
Las descripciones exactas de una línea de la referencia de comandos: /rewind - "roll code and conversation back to a checkpoint, or summarize part of the conversation"; /clear - "start a new conversation with empty context"; /compact - "free up context by summarizing the conversation so far". Si quieres probar una dirección distinta sin perder la conversación original, también está /branch - bifurca la conversación en el punto actual.
Retroceder más allá de un /clear (novedad desde la v2.1.191)
Este es el truco menos conocido de esta guía. Si ejecutaste /clear antes en el mismo proceso de Claude Code, el menú de rewind muestra una entrada extra en la parte superior de la lista: /resume <session-id> (previous session). Selecciónala para volver exactamente a la conversación que existía antes de que ejecutaras /clear.
Algunas cosas que conviene saber antes de depender de esto:
- La entrada solo permanece disponible hasta que salgas de Claude Code o retomes una sesión distinta - no es permanente.
- Requiere Claude Code v2.1.191 o posterior. En versiones anteriores, la entrada no aparece - usa
/resumemanualmente y elige la sesión anterior de la lista. - El propio bloqueo por versión es prueba de algo que vale la pena recordar: el checkpointing todavía cambia de una versión a otra, no es una superficie de API fija.
Un hábito de experimentación segura que de verdad uso
Te cuento cómo combino de verdad estas dos herramientas: hago commit en git en los hitos que ya corren limpios (una función terminada, un bug corregido, tests en verde), y luego dejo que /rewind absorba los pequeños errores que ocurren entre esos commits. Retroceder pronto y a menudo es prácticamente gratis - unos segundos, nada que perder. Arreglar una conversación que se ha desviado mucho del rumbo no es nada barato; acabas reexplicando contexto y requisitos, y Claude aún puede repetir el mismo error.
Este hábito encaja directamente con la mentalidad del vibe coding: experimentos baratos, reverts rápidos, sin miedo a romper un estado que funciona. También por eso TDD con IA combina tan bien con el checkpointing - cada ciclo red-green-refactor es un punto seguro de rewind si Claude toma la dirección equivocada.
Dónde encaja AgentKit en todo esto
Para ser directa sobre el límite: /rewind es una función nativa de Claude Code que funciona del todo por su cuenta, sin nada que instalar. AgentKit (un kit de pago que corre dentro de Claude Code, distinto de Codex y de OpenAI AgentKit) no toca ni reemplaza este sistema de checkpoints. Donde sí resulta útil: el flujo brainstorm → plan → cook → ship de AgentKit ejecuta varios pasos de edición en la misma sesión, así que cuando un paso de $ak:cook va por el camino equivocado, /rewind te deja deshacer solo ese paso sin perder el resto de la sesión. Lee la reseña completa de AgentKit o mira AgentKit aquí.
Preguntas frecuentes (FAQ)
¿/rewind deshace comandos de bash/terminal?
No. El checkpointing solo rastrea los cambios hechos por las herramientas de edición de archivos de Claude. Los comandos ejecutados por bash, como rm, mv o cp, no se capturan y no se pueden deshacer con rewind - usa git o un arreglo manual.
¿Cuánto tiempo se conservan los checkpoints, y puedo cambiarlo?
De forma predeterminada, los checkpoints se eliminan con la sesión a los 30 días, conservando hasta los 100 más recientes por sesión. Cambia el periodo de retención con cleanupPeriodDays en settings.json (valor predeterminado y ubicación confirmados con la documentación en el momento de escribir esto - vuelve a verificarlo si dependes del número exacto).
¿Puedo seguir retrocediendo tras reanudar una sesión antigua?
Sí. Los checkpoints se guardan junto con la conversación, así que después de hacer /resume en una sesión, /rewind sigue funcionando con normalidad contra los checkpoints guardados de esa sesión.
¿Qué pasa si hago /clear y luego quiero recuperar un checkpoint antiguo?
Abre /rewind - la parte superior de la lista muestra /resume <session-id> (previous session); selecciónala para volver a la conversación de antes de /clear. Esto necesita Claude Code v2.1.191 o posterior y solo está disponible hasta que salgas de la app o retomes una sesión distinta; las versiones anteriores requieren usar /resume manualmente.
¿/rewind reemplaza a git?
No, y no está pensado para eso. Los checkpoints existen para una recuperación rápida en el ámbito de la sesión, no para un historial permanente ni para la colaboración. Para estados guardados duraderos, ramas o trabajo en equipo, sigues necesitando git.
¿Las ediciones de subagent las restaura rewind?
Normalmente no. La excepción: una skill que corre context: fork en primer plano (background: false) edita tu árbol de trabajo durante tu propio turno, y esas ediciones se restauran con normalidad. Cualquier otro subagent - incluida una skill forked que corre en segundo plano por defecto, y un /code-review --fix en segundo plano - necesita git para revertir.
Conclusión
/rewind es una herramienta rápida de deshacer a nivel de sesión, no un sustituto de git. Úsalo para los pequeños errores entre commits; usa git para cualquier cosa que quieras conservar de forma permanente, o cualquier cosa que Claude haya cambiado mediante bash. Ten a mano la tabla de decisión de arriba siempre que dudes qué herramienta usar, y haz commit en hitos limpios antes de dejar que Claude pruebe una nueva dirección.