Ferramentas de IA para Código

Checkpointing do Claude Code: como desfazer alterações com /rewind (2026)

20 de ago. de 202610 min de leitura

Pressione Esc duas vezes com o campo de prompt vazio, ou digite /rewind, escolha um checkpoint e então decida o que restaurar: código, conversa ou os dois. Os checkpoints são criados automaticamente após cada prompt, mantêm os 100 mais recentes por sessão e são excluídos automaticamente após 30 dias (configurável). Mas o /rewind não desfaz comandos bash, nem sempre restaura edições de subagent e não substitui o git.

- Verifiquei diretamente com a documentação oficial em code.claude.com/docs/en/checkpointing, /commands e /settings no momento em que escrevo (ago. de 2026); este é um recurso que muda rápido, então confira a documentação ao vivo antes de depender dele.

O que o checkpointing realmente salva

O Claude Code captura automaticamente o estado do seu código antes de cada prompt que você envia. Alguns fatos que vale a pena entender direito logo de início, conforme a documentação oficial:

  • Cada prompt do usuário cria um novo checkpoint - automático, nada para ativar.
  • Só as alterações feitas pelas próprias ferramentas de edição de arquivos do Claude são rastreadas - não toda alteração que acontece no disco (detalhes na seção "o que não dá para desfazer", mais abaixo).
  • Os 100 checkpoints mais recentes por sessão são mantidos. Quando um checkpoint mais antigo é descartado, os arquivos de snapshot que nenhum checkpoint restante referencia também são excluídos - exceto o primeiro snapshot de cada arquivo, que a extensão do VS Code mantém como base para os diffs daquela sessão.
  • Os checkpoints são salvos junto com a conversa, então o /rewind continua funcionando depois que você dá /resume numa sessão.
  • Os checkpoints são excluídos junto com a sessão após 30 dias pela regra de limpeza padrão, ajustável via cleanupPeriodDays no settings.json (padrão 30, mínimo 1 dia segundo a documentação atual - esse é um valor que pode mudar de versão para versão, então confirme antes de contar com o número exato).

Novo no Claude Code e sem certeza do que significam sessão, prompt ou chamada de ferramenta? Comece por o que é o Claude Code antes do resto deste guia.

Como abrir e usar o /rewind, passo a passo

Duas formas de abrir o menu de rewind:

  1. Digite /rewind e pressione Enter.
  2. Pressione Esc duas vezes com o campo de prompt vazio.

Surpresa comum: se a caixa de prompt tiver texto, Esc Esc apenas limpa esse rascunho para o seu histórico de entradas, em vez de abrir o menu de rewind. O texto apagado não se perde - pressione Up para recuperá-lo depois de terminar no menu.

O menu de rewind lista todos os prompts que você enviou durante a sessão. Escolha um ponto e então selecione uma ação:

AçãoO que faz
Restaurar código e conversaReverte tanto o código quanto a conversa para o ponto selecionado.
Restaurar conversaVolta até aquela mensagem mantendo o código atual.
Restaurar códigoReverte as alterações nos arquivos mantendo a conversa.
Resumir a partir daquiComprime a conversa a partir deste ponto em diante num resumo, liberando espaço de contexto.
Resumir até aquiComprime a conversa antes deste ponto, mantendo intactas as mensagens seguintes.
Deixa pra láSai do menu sem alterar nada.

As duas opções de restaurar código só aparecem quando o checkpoint selecionado realmente tem alterações rastreadas de arquivos para reverter - caso contrário, o menu oferece apenas Restaurar conversa, as duas opções de Resumir e Deixa pra lá. Com qualquer uma das opções de Resumir, você pode digitar instruções no campo "add context (optional)" para orientar o foco do resumo; selecioná-la com a tecla numérica, em vez disso, resume imediatamente, sem instruções extras.

O que o /rewind não consegue desfazer

Esta é a parte que a maioria dos outros guias pula ou simplifica demais. Quatro limitações reais, direto da documentação oficial:

LimitaçãoDetalhe
Alterações por comando bash não são rastreadasrm file.txt, mv old.txt new.txt, cp source.txt dest.txt executados pelo bash não podem ser desfeitos pelo rewind - só as alterações feitas pelas ferramentas de edição de arquivos do Claude são rastreadas.
Edições de subagent geralmente NÃO são restauradasA única exceção: uma skill rodando context: fork em primeiro plano (background: false) edita sua árvore de trabalho durante o seu próprio turno, então o rewind restaura essas edições normalmente. Todo outro subagent - incluindo uma skill forked rodando em segundo plano (o padrão) e um /code-review --fix em segundo plano - NÃO é restaurado pelo rewind; use o git.
Alterações externas não são rastreadasEdições manuais feitas fora do Claude Code, ou edições de uma sessão simultânea separada, normalmente não são capturadas, a menos que por acaso toquem nos mesmos arquivos da sessão atual.
Arquivos com symlink/hard link são ignoradosAo escolher Restaurar código ou Restaurar código e conversa, o Claude Code ignora qualquer caminho rastreado que seja um symlink ou hard link e mostra um aviso Restored the code, but skipped N files. Para ver quais caminhos serão ignorados antes que aconteça, ative o /debug antes de restaurar - o log aparece em ~/.claude/debug/<session-id>.txt.

E uma coisa que importa mais do que qualquer linha isolada acima: os checkpoints foram feitos para recuperação rápida no nível da sessão, não como substitutos do controle de versão. Histórico permanente, branches e colaboração ainda precisam do git.

/rewind vs git vs /clear - a tabela de decisão

A pergunta mais prática aqui: qual ferramenta para qual situação? A certa economiza segundos; a errada pode custar uma tarde inteira.

CenárioMelhor ferramentaPor quê
Desfazer as últimas edições do Claude no meio da tarefa/rewind → Restaurar códigoRápido, sem sair do Claude Code, e mantém a conversa intacta se você quiser.
A conversa se desviou, mas o código está bom/rewind → Restaurar conversaVolta o contexto sem tocar em arquivos que já estão corretos.
Querer salvar permanentemente um estado que funcionagit commitOs checkpoints se autoexcluem depois de uns 30 dias e não são controle de versão de verdade; um commit é o histórico durável.
O Claude rodou rm/mv/npm install e é preciso revertergit (ou correção manual) - não o /rewindAlterações vindas do bash não são rastreadas pelo checkpointing, então o rewind não consegue mexer nelas.
O contexto está enorme, mas você ainda quer continuar trabalhando/rewind → Resumir, ou /compactComprime a conversa para liberar espaço de contexto sem perder o detalhe original na transcrição.
Querer um recomeço, mas manter os arquivos/clearInicia uma nova conversa com contexto vazio; os arquivos no disco ficam intactos.

As descrições exatas de uma linha da referência 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". Se você quiser tentar um caminho diferente sem perder a conversa original, também existe o /branch - ele bifurca a conversa no ponto atual.

Voltando para além de um /clear (novidade desde a v2.1.191)

Este é o truque menos conhecido deste guia. Se você rodou /clear antes no mesmo processo do Claude Code, o menu de rewind mostra uma entrada extra no topo da lista: /resume <session-id> (previous session). Selecione-a para voltar exatamente à conversa que existia antes de você rodar /clear.

Algumas coisas para saber antes de depender disso:

  • A entrada só fica disponível até você sair do Claude Code ou retomar uma sessão diferente - não é permanente.
  • Exige o Claude Code v2.1.191 ou posterior. Em versões anteriores, a entrada não aparece - use o /resume manualmente e escolha a sessão anterior na lista.
  • A própria trava de versão é prova de algo que vale lembrar: o checkpointing ainda muda de versão para versão, não é uma superfície de API fixa.

Um hábito de experimentação segura que eu realmente uso

Vou contar como eu de fato combino essas duas ferramentas: faço commit no git em marcos que já rodam limpos (uma funcionalidade pronta, um bug corrigido, testes verdes) e deixo o /rewind absorver os pequenos erros que acontecem entre esses commits. Voltar cedo e com frequência é praticamente de graça - alguns segundos, nada perdido. Consertar uma conversa que se desviou muito do rumo não é nada barato; você acaba reexplicando contexto e requisitos, e o Claude ainda pode repetir o mesmo erro.

Esse hábito se encaixa direto na mentalidade do vibe coding: experimentos baratos, reverts rápidos, sem medo de quebrar um estado que funciona. É também por isso que TDD com IA combina tão bem com o checkpointing - cada ciclo red-green-refactor é um ponto seguro de rewind se o Claude tomar a direção errada.

Onde o AgentKit entra nisso

Para ser direta sobre o limite: o /rewind é um recurso nativo do Claude Code que funciona totalmente sozinho, sem nada para instalar. O AgentKit (um kit pago que roda dentro do Claude Code, diferente do Codex e do OpenAI AgentKit) não mexe nem substitui esse sistema de checkpoints. Onde ele é útil: o fluxo brainstorm → plan → cook → ship do AgentKit roda vários passos de edição na mesma sessão, então, quando um passo do $ak:cook vai pro caminho errado, o /rewind deixa você desfazer só aquele passo sem perder o resto da sessão. Leia a análise completa do AgentKit ou veja o AgentKit aqui.

Perguntas frequentes (FAQ)

O /rewind desfaz comandos de bash/terminal?

Não. O checkpointing só rastreia alterações feitas pelas ferramentas de edição de arquivos do Claude. Comandos executados pelo bash, como rm, mv ou cp, não são capturados e não podem ser desfeitos com o rewind - use o git ou uma correção manual.

Por quanto tempo os checkpoints são mantidos, e dá para mudar isso?

Por padrão, os checkpoints são excluídos com a sessão após 30 dias, mantendo-se até os 100 mais recentes por sessão. Mude o período de retenção com o cleanupPeriodDays no settings.json (padrão e local confirmados com a documentação no momento em que escrevo - reconfirme se você depende do número exato).

Ainda dá para voltar depois de retomar uma sessão antiga?

Sim. Os checkpoints são salvos junto com a conversa, então, depois que você dá /resume numa sessão, o /rewind continua funcionando normalmente contra os checkpoints salvos daquela sessão.

O que acontece se eu der /clear e depois quiser um checkpoint antigo de volta?

Abra o /rewind - o topo da lista mostra /resume <session-id> (previous session); selecione-o para voltar à conversa de antes do /clear. Isso precisa do Claude Code v2.1.191 ou posterior e só fica disponível até você sair do app ou retomar uma sessão diferente; versões anteriores exigem usar o /resume manualmente.

O /rewind substitui o git?

Não, e não é essa a intenção. Os checkpoints existem para recuperação rápida no escopo da sessão, não para histórico permanente ou colaboração. Para estados salvos duráveis, branches ou trabalho em equipe, você ainda precisa do git.

As edições de subagent são restauradas pelo rewind?

Geralmente não. A exceção: uma skill rodando context: fork em primeiro plano (background: false) edita sua árvore de trabalho durante o seu próprio turno, e essas edições são restauradas normalmente. Todo outro subagent - incluindo uma skill forked rodando em segundo plano por padrão, e um /code-review --fix em segundo plano - precisa do git para reverter.

Conclusão

O /rewind é uma ferramenta rápida de desfazer no nível da sessão, não um substituto do git. Use-o para os pequenos erros entre commits; use o git para qualquer coisa que você queira guardar permanentemente, ou qualquer coisa que o Claude tenha mudado pelo bash. Mantenha a tabela de decisão acima à mão sempre que estiver em dúvida sobre qual ferramenta usar, e faça commit em marcos limpos antes de deixar o Claude tentar uma nova direção.

J

Jasmine

Autora · Jasmine Daily

A autora por trás do Jasmine Daily - anotando pensamentos, experiências e momentos do dia a dia. Honesta, sem pressa, imperfeita.

Jasmine Daily

Tem mais coisa esperando para ser lida.

Se este texto falou com você, explore mais algumas páginas do diário.

Leia a seguir

Posts relacionados