A sessão do Claude Code caiu no meio da tarefa: como retomar de onde parou sem perder o trabalho?

Se a sessão caiu, o trabalho não sumiu junto: os arquivos que o Claude já escreveu continuam no disco e a conversa fica gravada em transcript local. Para retomar sessão do Claude Code, rode claude --continue (ou claude -c) dentro do diretório do projeto e volte pra conversa mais recente, ou use claude --resume pra escolher no seletor. Antes de mandar o primeiro prompt da volta, confira o git status e descreva o estado atual do projeto em vez de repetir o pedido original, senão o modelo reescreve o que já estava pronto 🙂
Fala aí, beleza? O terminal fechou no meio da tarefa e a tela voltou limpa, sem histórico, sem nada
Bate aquele gelo na barriga: sumiu tudo?
Calma. Uma boa parte do trabalho nunca esteve na conversa, estava no disco, e continua lá do mesmo jeito. E o fio que parece ter ido embora junto com a tela, o que o modelo já tinha entendido do teu projeto, o que ele já sabia que não devia mexer, o plano que vocês dois combinaram, também não evaporou
O detalhe que salva o dia é este: uma sessão do Claude Code é uma conversa salva vinculada ao diretório do projeto, gravada continuamente em arquivos locais enquanto você trabalha. Dá pra voltar depois de sair, e até depois de rodar /clear
Bora separar o que sobrevive do que realmente se perde?
O que sobrevive à queda da sessão e o que realmente se perde
O sintoma é sempre igual: terminal fechado, tela limpa, e a sensação de que aquelas duas horas evaporaram
A causa é mais chata que grave. O processo morreu, então tudo que estava rodando naquele instante parou ali. Mas o arquivo que o Claude escreveu ou editou já tinha ido pro disco, e disco não se importa se o teu terminal fechou 😀
E a conversa? Ela é gravada continuamente num transcript local, não fica só na memória da tela
Onde a conversa fica salva:
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 116 aulas
- 4 projetos
- 9h 23min
O Claude Code guarda os transcripts em JSONL, neste caminho:
~/.claude/projects/<projeto>/<session-id>.jsonl
Aquele <projeto> é o caminho do teu diretório de trabalho com os caracteres não alfanuméricos trocados por hífen
Cada linha do arquivo é um objeto JSON: uma mensagem, um uso de ferramenta ou uma entrada de metadados
Tome cuidado! Esse formato é interno do Claude Code e muda entre versões. Script que lê o JSONL direto tem tudo pra quebrar a cada release, então não monte a tua rotina de recuperação em cima disso
Outro ponto importante: transcripts e histórico não são criptografados em repouso. A única proteção é a permissão de arquivo do sistema operacional. Se a máquina é compartilhada, leve isso em conta antes de despejar segredo dentro da conversa
O que fazer antes de qualquer coisa:
Antes de reabrir sessão, de refazer prompt, de qualquer coisa: olhe o estado dos arquivos
git status
git diff
É isso que separa o feito do não feito. A conversa te conta o que o modelo disse que ia fazer, o diff te conta o que ele fez de verdade
Confie no diff, não na tua lembrança do que estava na tela
Como prevenir: trate o disco como fonte de verdade e a conversa como contexto de apoio. Inverteu isso, você vira refém de uma janela de terminal
Fechei o terminal: qual comando reabre a conversa
Sintoma: você encerrou sem querer, o terminal caiu, ou rodou um /clear e se arrependeu meio segundo depois
Causa: você acha que precisa recomeçar do zero. Não precisa
Retomando a conversa mais recente:
- Entre no diretório do projeto e rode:
claude --continue
A forma curta é claude -c. Ele retoma a conversa mais recente daquele diretório, sem você precisar decorar ID nenhum
Erro comum deste passo: rodar o comando de outra pasta. O --continue olha o diretório atual, então se você chamou de ~ ele não vai achar a conversa do teu projeto
- Se você quer escolher qual sessão voltar, abra o seletor interativo:
claude --resume
- Se você já tem o identificador ou um nome de sessão em mãos, passe direto:
claude --resume <session-id>
claude --resume <nome>
- Já está dentro de uma sessão aberta e quer pular pra outra? O comando
/resumeabre esse mesmo seletor sem sair do Claude Code
Erro comum deste passo: insistir no --continue quando ele simplesmente não acha a sessão que você quer
Quando o –continue não serve:
Se liga nisso, porque pega muita gente: o --continue pula sessões em background e pula sessões cujo primeiro prompt foi /loop
Nesses casos ele não é teimosia tua, é comportamento esperado. Vai de --resume e escolhe na mão
Como prevenir: pegue o hábito de sempre abrir o claude a partir da raiz do projeto. Metade dos casos de "sumiu minha sessão" é só terminal na pasta errada
Não sei qual das sessões era a certa
Sintoma: você abre o seletor e tem seis linhas parecidas, todas do mesmo projeto, todas com cara de serem a certa
Causa: sessão acumula. Cada retomada, cada teste, cada ideia abandonada fica lá
A boa notícia é que cada linha do seletor carrega pista suficiente pra você identificar a tarefa interrompida:
| Pista na linha | Pra que ela serve |
|---|---|
| Nome da sessão (se definido) ou título gerado | Reconhecer o assunto de bate pronto |
| Resumo da conversa ou primeiro prompt | Lembrar o que você pediu naquela sessão |
| Tempo desde a última atividade | Achar a que caiu agora há pouco |
| Branch do git | Separar sessões de features diferentes |
| Tamanho do arquivo | Estimar quanto papo tem ali dentro |
Na prática, tempo desde a última atividade mais branch resolve quase sempre. A sessão que caiu é a mais recente, na branch em que você estava
Retomando de qualquer lugar da máquina:
Outra que é mto massa: claude --resume <session-id> funciona de qualquer diretório
O Claude Code procura aquele ID primeiro no diretório do projeto atual e nos git worktrees dele, e só depois vai nos demais projetos da máquina
Ou seja, se você anotou o ID, não precisa nem lembrar em qual pasta aquilo estava
Como prevenir: quando a sessão tem nome definido, o seletor mostra esse nome na linha, e isso te poupa de abrir a sessão errada em dia de tarefa longa
Retomei a sessão e o Claude refez o que já estava pronto
Essa aqui é o coração do problema, e quase ninguém fala dela
Sintoma: você volta pra sessão, cola o mesmo prompt da tarefa original, e o modelo sai reescrevendo arquivo que já estava terminado e testado
Causa: o pedido original descreve um projeto que não existe mais. Quando você escreveu aquele prompt, não havia nada. Agora tem metade da coisa pronta no disco. Repetir o pedido é pedir pro agente construir de novo um mundo que já foi construído
E olha que retomar restaura bastante: com --continue ou --resume, a conversa reabre sob o mesmo session ID, as novas mensagens são anexadas ao histórico existente e o histórico completo volta, incluindo as chamadas de ferramenta e os resultados delas
Mesmo assim, quem decide o que vai acontecer agora é o teu primeiro prompt da retomada
O jeito errado e o jeito certo:
O jeito que causa estrago é este:
Crie o SaaS com landing page, registro, login e dashboard
O jeito que funciona é descrever o ESTADO, não o desejo:
Estado atual: landing page, registro e login já estão prontos e funcionando.
O dashboard existe, mas ainda não lista os registros do usuário.
Não altere nada fora da pasta do dashboard.
Próximo passo: só a listagem dentro do dashboard, mais nada.
Percebe a diferença? O primeiro descreve um projeto vazio. O segundo descreve o projeto que está no teu disco agora
Esse mesmo cuidado vale quando a conversa ficou longa demais e o modelo começa a perder detalhe do começo, que é um assunto vizinho: vale entender quanto contexto o Claude Code aguenta antes de culpar a retomada
Como prevenir: feche cada bloco de trabalho pedindo um resumo do estado atual antes de sair, e leia o diff antes de mandar o primeiro prompt da volta. São dois minutos que economizam meia hora de desfazer
O código ficou pela metade: quando o /rewind ajuda (e quando não)
Sintoma: a interrupção pegou o agente no meio de uma sequência de edições e agora tem arquivo em estado intermediário, sem rodar
Causa: a tarefa parou entre uma edição e outra, e ninguém garantiu que o conjunto ficasse coerente
Solução: o Claude Code cria um checkpoint automaticamente a cada prompt que você envia, capturando o estado do código antes daquele prompt
Pra abrir o menu, rode /rewind ou aperte Esc duas vezes
Lá dentro você escolhe entre restaurar só o código, só a conversa, ou os dois, além das opções de resumir a partir de um ponto. As duas opções de restaurar código só aparecem quando o checkpoint selecionado tem mudanças de arquivo rastreadas pra reverter
Os limites honestos do checkpoint:
Aqui é onde muita gente se ferra achando que tem uma rede de segurança que não tem:
- Só entram as edições feitas pelas ferramentas de edição do Claude:
Write,EditeNotebookEdit - Mudança feita por comando Bash ou por processo externo não é capturada
- Arquivo que é symlink ou hard link é pulado na restauração
- Edição feita por subagente normalmente não entra nos checkpoints da tua sessão (a exceção citada na documentação é skill bifurcada em primeiro plano), então o rewind não traz essas edições de volta
- Checkpoints e sessões são apagados após 30 dias, seguindo o padrão da opção
cleanupPeriodDays
A própria documentação é direta: isso não substitui o git
Se o teu problema é mais travamento do que queda seca, o raciocínio é parecido e vale ver o caso de Claude Code travando no meio da tarefa
Como prevenir: use checkpoint pro que ele é, recuperação rápida dentro da sessão, e não como teu histórico de projeto
Sem ponto de retorno: o hábito de commitar em etapas
Sintoma: a retomada deu errado, o agente bagunçou e você não tem pra onde voltar
Causa: a tarefa longa inteira estava num bloco só, sem nenhum commit no meio. Duas horas de trabalho penduradas em nada
As boas práticas oficiais são chatas de tão simples: comece de um estado limpo do git e commite checkpoints com frequência, pra reverter fácil o que sair errado
E em tarefa autônoma longa, aquela que você deixa rodando e vai fazer outra coisa, a orientação é commitar e enviar depois de cada unidade significativa de trabalho. Assim você tem histórico recuperável e não perde trabalho
O efeito prático disso é bonito: qualquer interrupção cai num ponto conhecido. Não existe mais "até onde ele tinha ido?", existe "o último commit é a verdade, o resto é rascunho"
E quando eu quero testar outro caminho?
Dentro da sessão, o comando /branch ramifica a conversa atual pra você tentar outra direção, e ele tem /fork como alias
Ele te move pra branch nova e preserva a original, que continua acessível pelo /resume
Ramificar com --fork-session ou com /branch copia o histórico pra um novo session ID e deixa a sessão original inalterada, aparecendo como uma linha separada no seletor
Tradução: dá pra apostar numa ideia arriscada sem queimar a conversa que estava funcionando
Como prevenir: git pro histórico permanente e pra colaboração, checkpoint só pra recuperação rápida dentro da sessão. Cada um no seu quadrado
Por que refazer do zero custa mais do que parece
Agora o lado que ninguém coloca na conta: retomada mal feita não é só chata, ela é paga duas vezes
No vídeo em que eu monto um SaaS completo do zero por prompt, rodando o Claude Code com DeepSeek e depois continuando o mesmo projeto no OpenCode, a execução inteira que gerou 4 páginas saiu por cerca de 11 a 12 centavos de dólar
Um teste anterior na minha conta tinha custado 3 centavos, e eu tinha colocado 2 dólares de crédito na plataforma pra brincar
Parece pouco, e é pouco mesmo. Mas o número não é o ponto: o ponto é que cada retomada que refaz o que já estava pronto repete tokens já pagos e tempo já gasto. Multiplica isso por uma semana de trabalho e por um projeto de verdade
O aperto de mão que eu deixo pra próxima sessão:
O que eu faço no vídeo, ainda dentro da sessão que acabou de construir o projeto, é pedir pro próprio Claude escrever um arquivo de documentação na raiz
É um aperto de mão com o próximo agente que for continuar o trabalho
No prompt eu peço visão geral do projeto, stack, estrutura de pastas, banco de dados, autenticação, como rodar, convenções e regras importantes
A ideia é que a próxima sessão continue as funcionalidades sem destruir o que já foi feito. É uma camada de segurança, mesmo num projeto ainda inicial
E aqui vai a autocrítica honesta: o certo é ABRIR esse arquivo e conferir se ficou completo, se não faltou complementar nada, antes de confiar nele pra retomada. Eu mesmo reconheço isso no vídeo 😛
Depois eu fecho e retomo o mesmo projeto em outro agente, conectando o provider com a chave de API. E o primeiro movimento não é pedir código, isso é importante: eu peço pro agente entender o projeto e explicar como ele funciona
O agente descreve certinho o SaaS de geração de slogans, com base nos arquivos e naquela documentação. É exatamente a informação que a sessão anterior deixou que faz a retomada ficar bem estruturada
No fim eu testo criação de conta, login e a geração de slogans, e o negócio funciona, simples mas funcionando
Uma ressalva que eu faço lá e repito aqui: agente alternativo não tem garantia de quem vai manter nem de que vai continuar sendo mantido. Vale saber disso antes de casar com a ferramenta
Conclusão
Sessão que cai não é trabalho perdido, é fio interrompido. São coisas bem diferentes
O arquivo continua no disco, a conversa continua gravada no transcript local, e o comando pra voltar é um só
O caminho prático da próxima vez que acontecer:
- Entre no diretório do projeto e rode
claude --continue(ouclaude --resumese precisar escolher a sessão) - Antes de escrever qualquer prompt, olhe o
git statuse ogit diffpra saber o que ficou pronto de verdade - Reabra descrevendo o estado atual e pedindo só o próximo passo, nunca repetindo o pedido original
- Se o código ficou pela metade, avalie o
/rewindsabendo dos limites dele - E adote o commit por unidade de trabalho, pra próxima queda ser irrelevante
Retomar sessão do Claude Code deixa de ser drama no dia em que o teu ponto de retorno não depende mais de uma janela de terminal aberta 🙂
Até o próximo post!
Perguntas frequentes
Como evitar perder o trabalho quando a sessão do Claude Code cai no meio de uma tarefa longa?
O Claude Code cria um checkpoint a cada prompt enviado, capturando o estado do código antes daquele prompt. Mas isso é pensado para recuperação rápida de sessão, não substitui o Git: a boa prática oficial é partir de um estado limpo do git e commitar a cada unidade significativa de trabalho, o que dá um histórico recuperável de verdade
Qual a diferença entre claude –continue e claude –resume no Claude Code?
O claude –continue (ou claude -c) retoma direto a conversa mais recente do diretório atual, sem pedir ID. Já o claude –resume, sem argumento, abre um seletor interativo de sessões, e também aceita um session ID ou um nome de sessão passado direto no comando
Dá para desfazer só o código sem perder a conversa depois de retomar uma sessão do Claude Code?
Dá sim: rode /rewind ou pressione Esc duas vezes para abrir o menu de rewind. Ele deixa escolher entre restaurar só o código, só a conversa, ou os dois, além de opções de resumir a partir de um ponto (as opções de código só aparecem quando o checkpoint escolhido tem mudanças de arquivo rastreadas)
Por quanto tempo dá para retomar uma sessão antiga do Claude Code antes dela ser apagada?
O Claude Code apaga os checkpoints junto com as sessões após 30 dias, seguindo as regras de limpeza padrão. Esse período é configurável pela opção cleanupPeriodDays, cujo padrão é justamente 30 dias
É seguro deixar segredo dentro da conversa do Claude Code pensando em retomar depois?
Vale desconfiar: transcripts e histórico não são criptografados em repouso, a única proteção é a permissão de arquivo do próprio sistema operacional. Se a máquina é compartilhada, isso pesa antes de colar chave ou senha dentro do prompt
Ramificar a conversa com /branch estraga a sessão original que eu poderia querer retomar depois?
Não. O /branch (que tem /fork como alias) ramifica pra tentar outra direção e te muda pra essa nova branch, mas a conversa original fica preservada e pode ser retomada com /resume. Tecnicamente ele gera um novo session ID e deixa a sessão original intacta, aparecendo como linha separada no seletor
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Bateu o limite de uso do Claude Code? Como retomar a tarefa sem refazer tudo
Bateu o limite de uso do Claude Code? Veja como retomar a tarefa de onde parou com /usage, CLAUDE.md e --continue, sem refazer nada.
Como pagar o Claude Code no Brasil: cartão, dólar, IOF e quanto fica em reais
Claude Code preço Brasil na prática: câmbio, IOF de 3,5% e quanto fica na fatura. Planos Pro e Max convertidos em reais e como pagar com cartão.
Como instalar uma skill no Claude Code: passo a passo
Saiba como instalar skill no Claude Code: use a pasta pessoal para todas as sessões ou a pasta de projeto para versionar. Frontmatter YAML é obrigatório.
