De noite o(a) senhor(a) fecha o terminal, e parece que toda a conversa com o agente vai embora junto com a janela. Uma hora de discussão, os erros encontrados, o contexto da tarefa já explicado - tudo isso parece desaparecer.
Não desaparece. A conversa se grava sozinha no disco enquanto o trabalho acontece, e volta a se abrir com um único comando.
A forma mais simples de pensar nas sessões é como um hotel. A pasta do projeto é o prédio, cada conversa é um quarto, e as chaves de todos os quartos ficam num quadro atrás da recepção. À noite o(a) hóspede sai, mas não faz check-out do quarto: a chave volta ao quadro, os pertences ficam lá dentro. De manhã basta dizer ao recepcionista qual quarto precisa.

A analogia tem um limite, e vale marcá-lo logo: nos quartos moram conversas, não código. O código é o próprio prédio, compartilhado por todos os hóspedes.
A seguir: o que é uma sessão, três formas de voltar a ela, por que uma conversa precisa de nome e por que uma nova tarefa combina mais com uma conversa nova do que com a continuação de uma antiga.
O que é uma sessão
Uma sessão é uma conversa salva com o agente, vinculada à pasta do projeto. Ela se grava no disco de forma contínua enquanto o trabalho acontece: não é preciso salvar manualmente, como num editor de texto.
Na sessão entra mais do que as falas. Além das mensagens enviadas e das respostas do agente, ficam lá as chamadas de ferramentas e seus resultados: quais arquivos ele abriu, o que voltou dos comandos executados, quais edições aplicou. Por isso, ao voltar a uma conversa antiga, o(a) usuário(a) recebe não um resumo, mas o quadro inteiro.
Duas observações a seguir resolvem metade da confusão.
O conteúdo de uma conversa não passa para outra. Se algo foi discutido um mês atrás numa sessão diferente, essas falas não estão aqui, mesmo que o projeto seja exatamente o mesmo. Cada sessão conhece só a própria história.
A sessão não é um segundo lugar onde o código fica guardado. Os arquivos do projeto vivem no disco por conta própria. Um projeto convive tranquilamente com uma dezena de sessões, e o código é o mesmo para todas elas - o que está na pasta agora.
O diagrama mostra as duas ideias juntas: uma pasta, várias sessões dentro dela, cada uma com sua própria história, e os arquivos embaixo compartilhados. Abrir uma segunda sessão do mesmo projeto não copia o código, é só mais uma conversa sobre ele.
Como voltar ao trabalho
Existem três caminhos de entrada, e a escolha depende de o(a) usuário(a) lembrar ou não qual conversa exatamente precisa.
| Entrada | O que faz |
|---|---|
claude --continue | continua a conversa mais recente nesta pasta, sem perguntar nada |
claude --resume | abre a lista de conversas anteriores para escolher uma |
/resume | a mesma lista, mas de dentro de uma sessão já aberta |
Uma coisa na tabela é fácil de não notar: as duas linhas de cima começam com claude, e a de baixo com uma barra. A diferença não é só de forma. As duas primeiras são digitadas no terminal antes de o agente estar rodando, e a flag ali é parte do próprio comando de início. Ou seja, numa única ação o(a) usuário(a) inicia o agente e diz a ele qual conversa abrir:
claude # início com a página em branco
claude --continue # início direto na conversa de ontem
claude --resume # início com escolha da conversa numa lista/resume funciona ao contrário, de dentro: o agente já está aberto, o(a) usuário(a) escreve na linha de comando dele e troca para outra conversa sem voltar ao terminal.
Na prática, a diferença é simples. claude --continue é "eu estava trabalhando aqui ontem, quero continuar": o agente abre em silêncio a última conversa da pasta atual. claude --resume é "há várias conversas, deixe eu escolher".

A lista mostra uma linha por conversa: o nome, se foi definido, ou um título automático, quanto tempo passou desde a última atividade, a branch e o tamanho. Se houver muitas linhas, dá para buscar entre elas só começando a digitar, ou ampliar a lista além da pasta atual: Ctrl+A mostra as conversas de todos os projetos nesta máquina.
Por padrão, a lista fica vinculada à pasta. Se claude --resume foi executado a partir do diretório pessoal, vá até a pasta do projeto e tente de novo. Ctrl+A ajuda a encontrar onde a conversa está: ele mostra conversas de todas as pastas, mas não dá para abrir uma de outro projeto direto da lista - em vez disso, o Claude Code coloca na área de transferência um comando para ir até aquela pasta e iniciar, e é preciso colar esse comando no terminal. Se isso não resolver, confira se o Claude Code está rodando com o mesmo perfil de antes e se a conversa não passou do prazo de retenção. Depois da exclusão automática, /resume não traz mais a conversa de volta.
Junto com a conversa volta tudo o que havia nela: o histórico completo, incluindo chamadas de ferramentas e seus resultados. Em geral, o modelo usado também é mantido, desde que a disponibilidade e as configurações não tenham mudado. Dá para continuar exatamente de onde parou.
Por que uma sessão precisa de nome
Enquanto há só uma conversa, o nome não faz falta. Assim que há três, a lista vira um quebra-cabeça: duas começam do mesmo jeito, e a terceira ninguém sabe do que trata.
Dá para definir um nome de duas formas:
claude -n feedback-form # no início
/rename feedback-form # numa sessão já abertaSe nenhum nome foi definido, o Claude Code inventa sozinho um título curto a partir da primeira mensagem. Ele também funciona como referência: por ele dá para reconhecer a sessão na lista e abri-la. Só que o nome escolhido pelo(a) usuário(a) é mais preciso - o título automático descreve a primeira frase, não a tarefa inteira.
Sendo honesto, no início de uma conversa raramente se pensa num nome: ainda não se sabe no que ela vai virar. Metade das sessões começa como "vou só dar uma olhada numa linha", e parte delas de repente vira meio dia de trabalho.
Por isso o mais simples é assim. Uma visita curta pode ficar com o título automático mesmo. Percebeu que vai demorar - /rename no meio do caminho. Terminou - /clear com um nome: a tarefa já ficou para trás, e como chamá-la deixa de ser uma dúvida.
Nova tarefa, nova conversa
Há só uma pergunta principal a se repetir ao longo do trabalho: isso ainda é a mesma tarefa? Enquanto for, continua-se. Mudou - abre-se a página em branco. Parece uma formalidade, mas é justamente aqui que as conversas mais viram bagunça.
A tentação é compreensível: o agente já conhece o projeto, por que começar de novo. Mas uma conversa em que se jogaram três tarefas seguidas se comporta mal de um jeito previsível:
- ela puxa decisões da tarefa anterior para a nova. Uma hora atrás combinou-se fazer de um jeito, agora se faz de outro - e o agente lembra do primeiro acordo e volta a ele;
- voltam à tona ideias já rejeitadas. Foram rejeitadas em outra tarefa, mas para o agente é tudo um único fluxo;
- ele aproveita e mexe no que pertencia ao trabalho anterior. Pediram sobre o formulário, vieram junto ajustes no pagamento;
- as mudanças se misturam. Numa só conversa, ajustes em dois assuntos, e depois fica difícil separar o que era de quê;
- a conversa não se encontra na lista. Ela é sobre tudo ao mesmo tempo, ou seja, sobre nada.
Daí a regra simples: uma conversa vive exatamente enquanto ajuda uma tarefa. A tarefa terminou, ela também termina. A sessão aqui é material de consumo, não algo que se guarda com cuidado.
Dá para começar uma página em branco de duas formas, e a diferença entre elas é menor do que parece.
| Ação | O que acontece com a conversa | O que acontece com os arquivos do projeto | Quando escolher |
|---|---|---|---|
/clear | começa com a página em branco, a anterior fica salva | não mexe | a tarefa mudou e o lugar continua o mesmo |
| Nova sessão | começa uma conversa separada para outro trabalho | não mexe | outro projeto, outra pasta, outro dia |
Agora sobre o /clear, porque é justamente aqui que mais se assusta. O comando parece uma exclusão, mas funciona como uma troca: ele não apaga a conversa, e sim a coloca de lado e abre uma em branco. A conversa colocada de lado continua na lista e se abre por /resume exatamente do jeito que foi deixada.
Ele tem um argumento opcional, o nome. /clear feedback-form marca a conversa que está saindo na lista, para reconhecê-la depois. Um segundo de trabalho, e a busca depois fica bem mais fácil.
Há também um lado inverso. Se a conversa já tinha um nome - por -n no início ou /rename ao longo do caminho -, um /clear sozinho passa esse nome para a nova conversa, e a próxima tarefa acaba rotulada com o nome da anterior. Com o argumento, o nome fica com a conversa antiga, e a nova começa sem nome.
Repare na linha de cima. Nesta execução há uma única conversa ativa antes do comando e uma depois. /clear não abre uma segunda sessão ao lado da primeira: ele substitui a conversa ativa por uma em branco e leva a anterior para baixo, para a lista. Voltar a ela só acontece de forma deliberada, pelo /resume.
Uma nova sessão se diferencia do /clear por costumar significar também outro trabalho: outro projeto, outra pasta, outro dia. /clear não tira o(a) usuário(a) do diretório atual nem da execução atual - ele abre uma página em branco bem onde a pessoa está.
Existe ainda o /compact. Esse comando não é sobre trocar de tarefa, e sim sobre o tamanho da conversa: ele resume o que já foi dito e mantém a mesma sessão. É mais fácil ver isso junto de como funciona a janela de contexto e o que acontece quando ela se esgota - um assunto à parte.
Onde tudo isso fica e por quanto tempo
As conversas ficam no próprio disco, na pasta de dados do Claude Code:
~/.claude-codegym/projects/O símbolo ~ significa a pasta pessoal do usuário. No Windows corresponde a %USERPROFILE%, por isso o caminho do curso começa com %USERPROFILE%\.claude-codegym\projects\.
.claude-codegym é o perfil do curso. Se o Claude Code rodar sem esse perfil, o caminho padrão fica ~/.claude/projects/. Dentro há uma subpasta por projeto, e dentro dela um arquivo principal por conversa.
No disco, o transcript é guardado em texto puro. Nele fica registrado o conteúdo dos arquivos lidos, a saída dos comandos executados e o texto colado no chat. Processos e usuários com acesso aos arquivos da sua conta no sistema operacional conseguem lê-lo.
O arquivo local é só uma parte da história: para o modelo responder, o Claude Code envia os pedidos e o contexto necessário pela rede ao provedor escolhido. As condições de retenção do lado do provedor dependem da conta e das configurações. Por isso não cole senhas nem chaves no chat, e não peça ao agente para ler arquivos com segredos, como o .env, sem necessidade.
As conversas não ficam guardadas para sempre: depois de mais ou menos um mês, as antigas são removidas automaticamente, junto com os pontos de restauração ligados a elas, e o prazo pode ser configurado se necessário. Então uma sessão é um bom lugar para trabalhar numa tarefa e um lugar ruim para o histórico de longo prazo do projeto. Onde guardar esse histórico por mais tempo é um assunto grande à parte.
O que isso muda no trabalho
Algumas conclusões que já servem para amanhã:
- uma sessão é o container de uma tarefa, não uma correspondência com o agente para a vida toda. Quanto mais perto disso ela for mantida, menos o agente se confunde;
- a conversa se salva sozinha, não é preciso salvar de propósito. Fechar o terminal à noite não custa nada;
- as sessões são organizadas por pasta. Iniciou o agente a partir da pasta do projeto - as conversas dele estão à mão; se a lista estiver vazia, confira a pasta:
Ctrl+Amostra conversas de todos os projetos e indica para onde ir; - voltar a uma conversa antiga traz de volta todo o contexto dela, becos sem saída e ideias descartadas incluídos. Às vezes é mais rápido começar do zero do que reviver uma discussão de três horas;
- uma pasta com uma dezena de sessões dentro é um cenário de trabalho normal, não sinal de bagunça.
Um hábito no lugar de dois: não inventar um nome no início, e sim identificar a conversa na saída. /clear feedback-form em vez de um /clear sozinho - os mesmos dois segundos, só que no momento em que o nome já é óbvio. Um mês depois, a lista continua legível, e não é preciso vasculhar tudo.
Onde ficam os arquivos de sessão, o que a lista mostra e por quanto tempo eles são mantidos dependem da versão do Claude Code e das configurações, então o que o(a) usuário(a) vir pode ser diferente do descrito aqui.
GO TO FULL VERSION