Checkpoints y Rewind
- Entender qué captura un checkpoint — y qué no captura sin avisar
- Abrir el menú de rewind de dos maneras y elegir cada vez la acción de restauración correcta
- Distinguir 'restore' (deshacer el estado) de 'summarize' (comprimir el contexto)
- Saber exactamente por qué los checkpoints complementan a Git pero nunca lo reemplazan
La idea principal
Cuando sueltas a Claude sobre un cambio ambicioso y de gran alcance, la pregunta más temida es "¿y si sale mal a tres ediciones de profundidad?". Checkpointing es la respuesta: Claude Code toma automáticamente un snapshot de tu código antes de cada turno que inicias, de modo que puedes volver a cualquier estado anterior en lugar de desenredar a mano un refactor a medio terminar.
Piénsalo como un deshacer local para toda la sesión — una red de seguridad que te permite decir "sí, prueba el enfoque audaz" sin miedo.
Cómo se crean los checkpoints
Tú no creas checkpoints — ocurren automáticamente.
- Cada prompt que inicia un turno captura el estado de tu código antes de que se ejecuten las herramientas de edición de archivos de Claude. Sin comandos, sin configuración, sin ceremonias.
- Claude Code conserva los snapshots de archivos de los 100 checkpoints más recientes de una sesión. Los más antiguos se descartan, así que una sesión muy larga no puede rebobinarse hasta su inicio.
- Los checkpoints se guardan con la conversación, así que puedes ejecutar /rewind incluso después de reanudar una sesión, no solo en la sesión activa.
- Los snapshots de archivos de una sesión se eliminan en la limpieza de retención, por defecto unos 30 días después de la última vez que la sesión guardó uno. Rebobinar a un checkpoint cuyos snapshots ya no existen falla con 'No files were restored' — aumenta cleanupPeriodDays para conservarlos más tiempo.
Abrir el menú de rewind
Hay dos formas de entrar:
- Escribe el comando slash desde el prompt. Siempre funciona. /checkpoint y /undo son alias del mismo comando, así que usa el nombre que se te ocurra.
- Esc doble abre el menú de rewind cuando el cuadro del prompt está vacío. Si hay texto, Esc doble borra ese texto en su lugar (el texto borrado se guarda en el historial de entrada, así que pulsa Arriba para recuperarlo después).
Abrir el menú de rewind
/rewind
- Los nombres de los alias son más amigables que literales: /checkpoint no toma un snapshot bajo demanda (los snapshots son automáticos) y /undo no deshace por sí solo la última edición. Los tres nombres abren el mismo menú, donde sigues eligiendo el punto y la acción.
El menú lista cada prompt que enviaste en esta sesión. Elige el punto sobre el que quieres actuar y luego una acción.
Restore vs. summarize: la distinción clave
Aquí es donde la gente se confunde. El menú ofrece dos tipos de acción:
- Las acciones Restore cambian el estado en disco y/o en la conversación — deshacen.
- Las acciones Summarize nunca tocan tus archivos — comprimen la conversación para liberar espacio en la ventana de contexto.
- Restore = deshacer (revierte el código, la conversación o ambos). Summarize = comprimir contexto (los archivos en disco no se tocan).
- Usa restore cuando una edición haya roto algo. Usa summarize cuando la sesión esté inflada pero el código esté bien.
Las acciones de restore
- Revierte tanto tus archivos como el historial del chat al punto seleccionado — un limpio 'rebobinar el tiempo' a ese momento.
- Rebobina el chat hasta ese mensaje pero conserva tu código actual. Útil para repetir una pregunta sin perder las ediciones que quieres mantener.
- Revierte los cambios de archivos pero conserva la conversación. Deshaces las ediciones, mantienes la discusión sobre ellas.
Las dos opciones de restore de código solo aparecen cuando el checkpoint seleccionado realmente tiene cambios de archivos rastreados que revertir. Si no se capturó ninguna edición de archivos después de ese punto, el menú ofrece solo Restore conversation, las dos opciones de summarize y Never mind (que vuelve a la lista de mensajes sin cambiar nada).
Después de restaurar la conversación (o elegir "Summarize from here"), el prompt original del mensaje seleccionado vuelve al campo de entrada para que puedas reenviarlo o editarlo.
Las acciones de summarize
Ambas comprimen parte de la conversación en un resumen generado por IA — como un /compact dirigido en el que eliges qué lado del mensaje seleccionado comprimir.
- Los mensajes ANTERIORES al seleccionado permanecen intactos. El mensaje seleccionado y todo lo posterior se convierten en un resumen. Úsalo para descartar una discusión lateral manteniendo el contexto inicial con todo detalle.
- Los mensajes ANTERIORES al seleccionado se convierten en un resumen; el mensaje seleccionado y todo lo posterior permanecen intactos. Te quedas al final de la conversación. Úsalo para comprimir la charla inicial de preparación manteniendo el trabajo reciente textual.
En ambos casos los mensajes originales permanecen en la transcripción de la sesión, de modo que Claude aún puede consultar los detalles, y aparece un marcador Summarized conversation donde estaban los mensajes comprimidos. Para orientar en qué se centra el resumen, resalta una opción Summarize con las flechas y escribe instrucciones donde la fila dice add context (optional), luego pulsa Enter — elegir la opción con su tecla numérica resume de inmediato, sin instrucciones.
Para el flujo completo, consulta Gestión del contexto — las acciones summarize de /rewind son un bisturí donde /compact es una brocha ancha.
- Summarize te mantiene en la misma sesión. Para ramificar y probar un enfoque distinto dejando intacta la sesión original, usa en su lugar /branch o claude --continue --fork-session.
Rebobinar más allá de un /clear
Si ejecutaste /clear antes en el mismo proceso de Claude Code, el menú de rewind muestra una entrada extra arriba: /resume <session-id> (previous session). Selecciónala para volver a la conversación que estaba activa antes de /clear.
Dónde se detienen los checkpoints — los límites que duelen
Los checkpoints parecen mágicos hasta que dejan de serlo. Estas lagunas importan:
- El seguimiento es por archivo, y un archivo entra en él solo cuando Claude lo edita con sus herramientas de edición de archivos. Una vez que eso ha ocurrido, /rewind también deshace lo que los comandos de Bash hagan después a ese mismo archivo: un formateador o generador que reescribe un archivo ya editado se puede rebobinar. Un archivo que solo Bash ha tocado no se rastrea y se queda como está, así que un archivo borrado con rm que Claude nunca editó necesita Git. El menú lo refleja: bajo cada prompt cuenta los cambios en archivos que Claude ya había editado, sea lo que sea lo que los provocó.
- Un subagent edita con las mismas herramientas de archivos, pero tu sesión normalmente no captura esas ediciones. La excepción es una skill bifurcada en primer plano (context: fork con background: false), que edita durante tu propio turno y se rebobina con normalidad. Con cualquier otro subagent —incluida una skill bifurcada en segundo plano, que es la opción por defecto, y una ejecución de /code-review --fix en segundo plano— el rewind solo restaura los archivos que Claude ya había editado en tu conversación; las ediciones del subagent a otros archivos permanecen, así que deshazlas con Git. Consulta /docs/claude-code/subagents.
- Las ediciones manuales que haces fuera de Claude Code y las ediciones de otras sesiones concurrentes normalmente no se capturan — a menos que toquen los mismos archivos que editó la sesión actual.
- Un mensaje que pones en cola mientras Claude trabaja y que le llega dentro del turno en curso se une a ese turno en lugar de iniciar uno nuevo, así que no tiene un checkpoint propio — el menú de rewind lo marca con 'No code restore'. Para deshacer lo que vino después, rebobina al prompt que inició el turno, lo cual rebobina todo el turno, incluido el trabajo hecho antes de que llegara tu mensaje. Seleccionar el propio mensaje marcado sigue ofreciendo Restore conversation, y tus archivos se quedan como están.
- Claude Code guarda la conversación rebobinada junto con el siguiente prompt que envías — así que si sales antes de enviar uno, los mensajes rebobinados vuelven al reanudar. Envía un prompt a Claude antes de salir para que la restauración se mantenga; para quitar de nuevo más tarde los mensajes que han vuelto, ejecuta /rewind, selecciona el mismo prompt y elige Restore conversation. Los archivos que restauraste quedan como los dejó el rewind en cualquier caso, así que esto afecta solo a la conversación.
- Restore omite cualquier ruta rastreada que sea un enlace simbólico o un enlace duro y avisa con 'Restored the code, but skipped N files'; esos archivos conservan su contenido actual. Los enlaces simbólicos de los gestores de dotfiles y los enlaces duros de pnpm caen en este caso. Ejecuta /debug antes de restaurar para que las rutas omitidas se nombren en el registro de depuración.
- Los checkpoints son una recuperación rápida y local. No son commits, no son ramas y no se pueden compartir con tu equipo.
Checkpoints vs. Git: usa ambos
Resuelven problemas distintos, así que combínalos.
Checkpoints (/rewind) | Git | |
|---|---|---|
| Alcance | Una sesión | Historial completo del proyecto |
| Granularidad | Por prompt que inicia un turno, automática | Por commit, deliberada |
| ¿Rastrea cambios hechos con bash? | Solo en archivos que Claude ya editó | Sí (una vez en staging/commit) |
| Vida útil | Últimos 100 checkpoints, limpiados ~30 días tras la sesión | Permanente |
| Compartible / colaborativo | No | Sí |
| Modelo mental | "Deshacer local" | "Historial permanente" |
- Haz commit en Git de los estados que funcionan antes de una ejecución arriesgada y de gran alcance — es tu suelo duradero.
- Usa /rewind para una recuperación rápida dentro de la sesión entre commits, sin ensuciar tu historial de Git.
- Apóyate en Git para los archivos que Claude nunca edita directamente: los que solo toca un bash destructivo (rm/mv) o un subagent en segundo plano. El rewind cubre un archivo solo una vez que Claude lo ha editado con sus propias herramientas de archivos.
Cuándo recurrir a él
- Prueba una implementación audaz y, si no te gusta, restaura código y conversación al punto de bifurcación e intenta otra.
- ¿Una edición introdujo un bug hace tres prompts? Restaura el código a justo antes en lugar de depurar los escombros.
- Experimenta con variaciones sabiendo siempre que un estado correcto está a un /rewind de distancia.
- ¿Un desvío de depuración verboso se comió tu ventana de contexto? Haz summarize desde el punto medio en adelante y conserva tus instrucciones originales con todo detalle.
Compruébalo tú mismo
0/3- Los checkpoints son snapshots automáticos tomados antes de cada prompt que inicia un turno — un deshacer local para la sesión. Se conservan los últimos 100 y luego se limpian ~30 días tras la sesión.
- Abre el menú de rewind con /rewind (alias: /checkpoint, /undo) o con Esc doble en una entrada vacía; lista cada prompt que enviaste.
- Las acciones restore deshacen el estado (código, conversación o ambos); las acciones summarize comprimen el contexto y nunca tocan los archivos.
- El seguimiento es por archivo y empieza cuando Claude lo edita con sus herramientas de archivos; a partir de ahí, incluso los cambios de Bash en ese archivo se rebobinan. Los archivos que Claude nunca editó (solo bash, externos, concurrentes, la mayoría de los de subagents) no se rastrean, y las rutas con enlaces simbólicos o duros se omiten al restaurar.
- Los checkpoints complementan a Git, no lo reemplazan: piensa en 'deshacer local' frente a 'historial permanente y compartible'.
Siguiente
- Gestión del contexto —
/compact,/cleary cómo encaja summarize en el panorama general - Plan Mode — investiga y aprueba un plan antes de que se ejecuten las ediciones, para rebobinar con menos frecuencia
- Permisos — la otra mitad de ejecutar tareas ambiciosas con seguridad