Continue de onde parou no Claude Code
Como levar um trabalho longo no Claude Code por vários dias. Dê nomes às sessões e retome-as, saiba o que a compactação guarda e o que descarta, deixe a memória automática levar fatos de uma sessão para outra e confira na transcrição quando um resumo erra um detalhe.
Conferido na documentação oficial em
Nesta página9 seções
Trabalho em servidor quase nunca cabe em uma sessão só. Você começa uma atualização, é interrompido, volta na manhã seguinte, e a conversa já está tão longa que o Claude Code resumiu metade dela. Este guia trata das quatro coisas que levam o trabalho adiante (as sessões salvas, a compactação, a memória automática e o arquivo da transcrição) e do que cada uma guarda e perde.
Toda conversa fica salva
O Claude Code salva cada conversa enquanto você trabalha, em um arquivo por sessão: ~/.claude/projects/<project>/<session-id>.jsonl.
<project> é o caminho da sua pasta de trabalho com cada caractere que não seja letra nem número trocado por -. O arquivo tem a conversa inteira, incluindo cada comando que o Claude rodou e o que cada um devolveu. Por padrão, o Claude Code apaga esses arquivos depois de 30 dias. A configuração cleanupPeriodDays muda isso.
Retome uma sessão
claude --continuereabre a conversa mais recente desta pasta.claude --resumeabre uma lista de sessões anteriores para você escolher.claude --resume <nome>retoma a sessão com esse nome.claude --resume <session-id>retoma essa sessão, a partir de qualquer pasta./resumetroca para outra conversa sem sair do Claude Code.
O --continue pega a sessão mais recente, que nem sempre é a que você quer. No nosso teste, contamos um fato ao Claude em uma sessão, abrimos uma segunda sessão nova e então rodamos claude -p --continue perguntando pelo fato. Ele continuou a segunda sessão, que nunca tinha ouvido aquilo.
Os nomes evitam isso. Dê um nome à sessão quando começar, ou mude o nome depois com /rename:
claude -n nginx-upgradeclaude --resume nginx-upgradeNo nosso teste, isso funcionou também com execuções claude -p: uma execução iniciada com -n nginx-upgrade voltou pelo nome, mesmo com outra execução no meio. As sessões de claude -p não aparecem na lista do claude --resume, mas um nome ou o identificador da sessão encontra essas sessões do mesmo jeito.
O que volta quando você retoma
Uma sessão retomada traz de volta a conversa inteira, incluindo os comandos que o Claude rodou e o que eles devolveram, e continua no mesmo modelo. Algumas coisas não voltam sozinhas:
- As opções de inicialização, como
--add-dir,--mcp-confige--settings. As pastas que você adicionou durante a sessão com/add-dirtambém não voltam. Os arquivos de configuração são lidos de novo a cada início, então o que está neles continua valendo. - Os comandos em segundo plano. Um comando que ainda estava rodando quando a sessão terminou não volta. O Claude vê uma nota dizendo que ele não terminou.
- O modo de permissão, em parte. Com
claude --continueouclaude --resume <nome>, a sessão costuma voltar no modo em que estava. Os modos Ignorar permissões e Planejar não voltam: a sessão começa no modo em que uma sessão nova começaria. Uma sessão escolhida na lista também começa no modo de uma sessão nova.
Quando a conversa fica longa
Cada mensagem que você envia leva a conversa inteira junto. Quando ela chega perto do limite do modelo, o Claude Code a compacta: troca a parte mais antiga por um resumo e segue em frente. Você também pode fazer isso, em uma pausa natural:
/compact keep the upgrade plan and the list of changed config filesO texto depois do /compact diz ao resumo o que guardar, e pode ser em português. No nosso teste, o /compact reduziu uma conversa de 28.715 tokens para 2.522, e o fato que tínhamos contado antes, o dia da atualização, o Claude continuava sabendo depois.
O que a compactação guarda depende de onde as coisas vieram. A documentação indica:
- Recarregado do disco: o
CLAUDE.mdda raiz do projeto, a memória automática e o plano do modo Planejar. - Lido de novo: até cinco dos arquivos que o Claude leu ou editou por último.
- Resumido, então os detalhes podem se perder: tudo o que você só disse na conversa.
Por isso, se algo precisa sobreviver, coloque em um arquivo. As regras do projeto vão para o CLAUDE.md. Os fatos vão para a memória automática, mais abaixo.
O /context mostra o que está ocupando espaço agora. O /clear começa uma conversa vazia para um trabalho sem relação com o anterior. A antiga continua salva, e o /resume traz ela de volta.
Retome depois de uma pausa
Em um plano Pro ou Max, se você retomar uma sessão parada há cerca de uma hora ou mais, e com mais de 100.000 tokens, o Claude Code pergunta como continuar:
- Resume from summary compacta a sessão primeiro. As mensagens seguintes custam menos, mas o que o resumo deixar de fora some da vista do Claude.
- Resume full session as-is guarda todos os detalhes, ao custo de enviar o histórico inteiro com cada mensagem.
Para um trabalho longo em que os detalhes importam, como uma migração pela metade, retome a sessão completa. Para uma sessão que você só quer terminar, o resumo basta.
Memória automática: fatos que sobrevivem à sessão
Retomar traz de volta uma conversa. A memória automática leva fatos para todas as sessões novas do projeto. O Claude escreve notas curtas para si mesmo em ~/.claude/projects/<project>/memory/.
O MEMORY.md que fica lá é um índice, uma linha por nota. As primeiras 200 linhas ou 25 KB dele carregam no começo de cada sessão, e o Claude lê as notas em si quando precisa delas.
Para salvar alguma coisa, é só pedir:
Remember this for future sessions: in this project, the staging MariaDB listens on port 3307, not 3306.No nosso teste, o Claude escreveu uma nota curta, staging-mariadb-port.md, e adicionou ao MEMORY.md uma linha apontando para ela. Ele não pediu permissão para isso, mesmo no modo Manual. Depois, uma sessão totalmente nova respondeu "Port 3307", disse que sabia disso por essa nota e avisou que não tinha conferido no servidor. Essa última parte importa: uma memória registra o que alguém disse, não o que o servidor está fazendo hoje.
Quando pedimos para ele lembrar de algo que o nosso CLAUDE.md já dizia, o Claude recusou e apontou para a linha do CLAUDE.md. A documentação diz que a memória automática pula tudo o que os seus arquivos CLAUDE.md já cobrem, e tudo o que ela consegue deduzir do código.
Alguns pontos da documentação:
- O
/memorylista os arquivos de memória e abre esses arquivos no seu editor. São Markdown simples. Leia de vez em quando e apague o que estiver errado. - A memória fica na máquina onde foi escrita. Outro servidor, ou outro usuário no mesmo servidor, não vê essa memória.
- Ao contrário das transcrições, os arquivos de memória não são apagados depois de 30 dias. Eles ficam até você ou o Claude apagarem.
- Para desligar, use a opção no
/memory, ou defina"autoMemoryEnabled": falsenas configurações de um projeto.
Resumos podem errar nos detalhes
Um resumo de compactação é escrito pelo modelo. Ele acerta a forma geral do trabalho, mas pode errar um detalhe, e nada avisa quais detalhes se perderam.
Isso aconteceu com a gente. Uma sessão longa foi compactada, e o resumo descrevia um erro que tínhamos cometido: segundo ele, uma cópia de segurança tinha falhado por causa de um alias do shell, e uma página tinha ficado no ar sem revisão por cerca de um minuto. Quando fomos escrever sobre isso mais tarde, conferimos primeiro na transcrição. A causa real eram dois arquivos com o mesmo nome, e a página ficou no ar cerca de 26 segundos.
O arquivo da transcrição é o registro. O resumo não. Quando uma data, uma contagem ou a causa de um erro importam, confira:
grep -o 'will not overwrite[^"]*' ~/.claude/projects/<project>/<session-id>.jsonlO formato desses arquivos é interno e muda entre versões, então use o grep para uma olhada rápida e o /export para uma cópia legível. Não construa uma ferramenta em cima desse formato.
Um hábito para trabalhos longos no servidor
Antes de parar por hoje, peça ao Claude para escrever o estado do trabalho em um arquivo do projeto: o que está pronto, o que está pela metade, o que vem depois e como desfazer cada mudança. Na próxima vez, o claude --resume traz a conversa de volta, e o arquivo diz a vocês dois em que ponto as coisas estão, mesmo que a conversa tenha sido compactada ou que você comece uma nova.
Fontes
- Manage sessions, documentação do Claude Code (em inglês)
- Explore the context window, documentação do Claude Code, "What survives compaction" (em inglês)
- How Claude remembers your project, documentação do Claude Code, "Auto memory" (em inglês)
Conferido em
Claude Code 2.1.283 no AlmaLinux 9.8. Testado em um projeto git descartável com claude -p: retomar pelo identificador da sessão, o --continue depois de outra execução, dar um nome com -n e retomar pelo nome, o /compact e um fato que sobreviveu a ele, a transcrição mantendo a conversa inteira depois da compactação, salvar e recuperar uma memória automática em uma sessão nova, e a memória automática recusando um fato que já estava no CLAUDE.md. As mensagens acima foram copiadas dessas execuções.