Retomar sessão do Claude Code: --resume, --continue e correções
Como reabrir uma conversa passada do Claude Code com claude --continue, o seletor claude --resume ou um ID de sessão — além de onde as sessões ficam guardadas, como funcionam os nomes e o que fazer quando o resume não encontra nada.
Resumo rápido
- claude --continue (claude -c) reabre a conversa mais recente da pasta atual sem perguntar nada. claude --resume (claude -r) abre um seletor interativo de sessões passadas, ou vai direto a uma delas por ID de sessão ou nome.
- Cada sessão vive em disco como um transcript .jsonl em texto plano em ~/.claude/projects/<pasta-projeto>/<session-id>.jsonl, guardado por 30 dias por padrão (configuração cleanupPeriodDays).
- Dê um nome à sessão enquanto ela está aberta com /rename (ou --name na inicialização) e retome com claude --resume <nome> — o nome precisa coincidir exatamente, caractere por caractere.
- "No sessions match" quase sempre significa pasta errada ou nome digitado errado: as sessões ficam presas ao diretório onde começaram. Atualize o Claude Code também — só a versão 2.1.288 corrigiu quatro bugs de resume.
How to Resume an Old Session in Claude Code
Canal: Prompt & Flow2:37
Resume Claude Code Conversations FAST with One Simple Command
Canal: Vinod Sharma1:33
Save and Resume Any Claude Code Session | Next Session Prompt Skill
Canal: Kyle Chalmers | Data + AI4:27
CLI reference — official documentation
Documentação oficial: code.claude.com/docs
Cada flag, caminho e estado do seletor desta página foi verificado contra a referência CLI oficial e a documentação de data-usage. A gravação do terminal é a fonte visual — incluindo o fluxo completo de recuperação depois de esquecer o nome de uma sessão; os dois vídeos com rosto entram só como fonte de fatos: o panorama do fluxo de resume e o fluxo de trabalho de handoff em markdown para levar sessões entre máquinas.
As capturas pertencem aos seus criadores e apontam para o timestamp correspondente; nenhum quadro com rosto é usado.
Retomando uma sessão do Claude Code, passo a passo
Parte 1 — Retomar com claude --resume
- 1
Dê um nome à sessão antes de fechá-la
Uma sessão é fácil de retomar quando é fácil de identificar. Na gravação, o criador pede ao Claude Code para nomear a conversa aberta, roda /rename [open session 1] e recebe a confirmação "Session renamed to: [open session 1]" — o selo do nome aparece ao lado da caixa de entrada. Depois /exit fecha a sessão. Nada é apagado: o transcript fica no disco.

/rename [open session 1] confirmado com "Session renamed to: [open session 1]", depois /exit — o transcript sobrevive ao fechamento.Assistir a partir de 0:27 - 2
Rode claude --resume da pasta do projeto
Num terminal novo, digite claude --resume (forma curta claude -r). Sem argumento abre um seletor de sessões passadas; com argumento vai direto à sessão cujo ID ou nome corresponde — aqui claude --resume [session 1]. A armadilha que a gravação está prestes a mostrar: rode na pasta onde a sessão original começou. Essa foi lançada de C:\Users\Z, o diretório home.

claude --resume [session 1] digitado no PowerShell — do diretório home, e isso está prestes a importar.Assistir a partir de 1:04 - 3
Aprove o prompt de confiança da pasta
Na primeira vez que o Claude Code abre uma pasta, ele faz uma checagem rápida de segurança: "Is this a project you created or one you trust?" Escolha "1. Yes, I trust this folder" e aperte Enter. Esse prompt é sobre acesso a arquivos, não sobre sessões — aparece porque a pasta ainda não é confiável, e sempre precede o fluxo de resume.

"Quick safety check" — 1. Yes, I trust this folder / 2. No, exit — antes de o Claude Code abrir a pasta.Assistir a partir de 1:12 - 4
Pesquise no seletor Resume session
Sem correspondência exata, o claude --resume abre o seletor interativo intitulado "Resume session": uma caixa de busca sobre as sessões do projeto atual. Digite para filtrar, Enter para escolher, Esc para limpar ou cancelar. Passar um nome pré-preenche a busca — aqui [session — e a lista se atualiza conforme você digita.

O seletor "Resume session" filtra enquanto você digita — Enter seleciona, Esc limpa a busca.Assistir a partir de 1:16
Parte 2 — Quando o seletor não encontra nada
- 5
"No sessions match" — você está no diretório errado
A lição central da gravação: o seletor responde "No sessions match "[session 1]"." mesmo com a sessão existindo, porque as sessões pertencem à pasta onde começaram e o seletor olha primeiro o projeto atual. A linha de dicas dá a saída — "Ctrl+A to show all projects" — e a partir da v2.1.223 o --resume também busca nos seus outros projetos automaticamente; o build v2.1.220 do vídeo é anterior a isso.

"No sessions match "[session 1]"." — a sessão existe, mas o seletor está limitado ao diretório home.Assistir a partir de 1:22 - 6
Abra uma sessão claude comum para investigar
Para recuperar a conversa pelo conteúdo em vez de adivinhar nomes, abra uma sessão claude normal. O banner de boas-vindas da gravação até aponta o erro anterior — "Note: You have launched claude in your home directory" — confirmando que o seletor vazio era problema de diretório, não de sessão perdida.

Banner de boas-vindas do Claude Code v2.1.220 em C:\Users\Z — a nota do home directory explica o seletor vazio.Assistir a partir de 1:33 - 7
Peça ao Claude para achar sua última sessão
Dentro da sessão nova, descreva o que você quer em linguagem natural: "I forgot the name of my last session. Name it so I can resume it." O Claude Code consegue ler o próprio histórico de transcripts no disco, então isso funciona mesmo onde o seletor não pôde ajudar.

"i forgot the name of my last session name it so i can resume it" enviado — o Claude começa a cavar.Assistir a partir de 1:50 - 8
O Claude lista ~/.claude/projects por data
O Claude responde rodando um comando de shell sobre o próprio armazenamento: Get-ChildItem "C:\Users\Z\.claude\projects" -Recurse -Filter *.jsonl | Sort-Object LastWriteTime -Descending. Esse é exatamente o layout documentado — cada conversa é um transcript .jsonl em ~/.claude/projects, agrupado numa subpasta por projeto, guardado por 30 dias por padrão.

Get-ChildItem sobre C:\Users\Z\.claude\projects, só *.jsonl, do mais novo para o mais velho — onde as sessões realmente moram.Assistir a partir de 1:54
Parte 3 — Recuperar pelo ID da sessão
- 9
O Claude identifica cada transcript pela primeira mensagem
O transcript mais recente é a sessão atual, então o Claude extrai a primeira mensagem de usuário de cada um dos recentes — arquivos como C:\Users\Z\.claude\projects\C--Users-Z\<session-id>.jsonl — para batizá-los: um projeto de pesquisa de sinal WiFi, um run de "lets go to phase 2", uma montagem de projeto WhatsApp. As primeiras mensagens são um jeito confiável de separar sessões do mesmo projeto.

Extraindo a primeira mensagem de usuário de cada .jsonl em projects\C--Users-Z para diferenciar as sessões.Assistir a partir de 2:07 - 10
O Claude responde: retome com claude --resume <id>
A resposta aponta a vencedora e imprime o comando exato — "Resume it with: claude --resume 7d824e2f-2592-4625-b863-43d5f24670ab" — depois uma tabela das outras sessões recentes com as colunas Session ID, Last active e Opened with, mais uma nota de que um ID era um começo vazio e abortado, sem valor para retomar.

"Resume it with: claude --resume 7d824e2f-…" mais tabela de Session ID, Last active, Opened with.Assistir a partir de 2:18 - 11
Retome a sessão pelo ID
O ID da sessão é a alça. Feche essa sessão de apoio, dê cd na pasta do projeto e rode claude --resume <session-id> — ou passe o caminho absoluto do transcript .jsonl. Adicione --fork-session para cunhar um novo ID de sessão em vez de continuar o original. A conversa reabre com todo o contexto.

O ID da sessão digitado no prompt — claude --resume <id> reabre exatamente aquela conversa.Assistir a partir de 2:32
--resume vs --continue vs o seletor de sessões
O Claude Code traz vários caminhos que se sobrepõem para voltar a uma conversa. A diferença é o quanto cada um faz você decidir:
- 1claude --continue (claude -c) — zero decisões. Reabre a conversa mais recente do diretório atual, incluindo uma sessão de fundo terminada desde a v2.1.257. Para "acabei de fechar a janela errada".
- 2claude --resume (claude -r) sem argumento — o seletor interativo. Lista as sessões deste projeto (as vivas em segundo plano marcadas com bg); Ctrl+A amplia para todos os projetos, Esc cancela. O melhor quando uma pasta guarda várias sessões.
- 3claude --resume <id | nome | caminho> — linha reta. Aceita um ID de sessão, um nome exato definido com /rename ou --name, ou o caminho absoluto de um transcript .jsonl. Desde a v2.1.223 ele também busca nos seus outros projetos quando o ID não está neste.
- 4/resume e /rename dentro da sessão — troque de conversa sem sair do REPL e rotule a atual para que o claude --resume <nome> de amanhã acerte de primeira. Nomes são únicos; colisão ganha sufixo de variante.
- 5claude --resume <id> --fork-session — bifurcar em vez de continuar. Reaproveita o transcript mas cunha um novo ID de sessão, deixando o histórico da sessão original congelado como checkpoint.
- 6claude attach <id> — para sessões que ainda rodam em segundo plano. O seletor marca bg as vivas; depois do attach, seu próximo prompt vira o próximo turno daquela sessão.
A gravação só exercita o --resume, e o --continue não aparece em um quadro sequer — esse é o escopo do vídeo, não o do conjunto de recursos. A referência CLI oficial documenta os dois flags lado a lado; onde o vídeo cala, a comparação acima segue a documentação.
Retomar sessão do Claude Code não funciona — correções que funcionam
A maioria dos "resume não faz nada" se resume a um destes casos. Percorra a lista:
- 1Diretório errado. O seletor só vê as sessões do projeto atual — a gravação falha exatamente assim a partir de C:\Users\Z. cd até a pasta onde a sessão começou; desde a v2.1.223 o --resume também busca em outros projetos, mas a pasta certa continua sendo o caminho mais rápido.
- 2Versão antiga. Só a 2.1.288 corrigiu quatro coisas: o --resume perdia arquivos que uma compaction tinha acabado de restaurar; uma sessão retomada não salvava a última resposta do turno (o resume seguinte mostrava o prompt como sem resposta); transcripts carregavam cortados; e o thinking se perdia ao retomar sessões da 2.1.286 ou anterior. A 2.1.290 corrigiu --resume <session-id>; a 2.1.292, o modo plan no seletor.
- 3A sessão expirou. Transcripts ficam guardados 30 dias por padrão — a configuração cleanupPeriodDays muda a janela — e execuções headless com -p não persistem sessão nenhuma. O claude rm só tira uma sessão da lista; transcript limpo ninguém retoma.
- 4O nome não confere. O --resume compara nomes exatamente. O claude --resume [session 1] da gravação falha duas vezes: o nome real era "open session 1", e os colchetes viraram parte da busca. Tire os colchetes e coloque entre aspas nomes com espaços.
- 5O --continue agarra o que não devia. Ele pula sessões de modo print (-p)/SDK e de /loop, e só olha o diretório atual — se outra sessão mexeu na pasta desde então, desista dele e retome por ID.
- 6Outro computador. ~/.claude/projects é local — uma sessão criada no notebook não existe no desktop. Copie a pasta do projeto para a outra máquina mantendo a mesma estrutura, ou adote o handoff em markdown: peça ao Claude para escrever o estado da sessão, as decisões e os próximos passos num arquivo, sincronize e continue na outra máquina.
Nada disso adiantou? Abra ~/.claude/projects e veja o timestamp do arquivo .jsonl. Se estiver lá, claude --resume com o caminho absoluto é a entrada pela força bruta; se não estiver, a conversa nunca chegou ao disco.
