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.

Dentro de uma única pasta de projeto vivem várias sessões independentes, e todas elas trabalham com os mesmos arquivos de códigoPasta do projetoSessão 1formulário de feedbackSessão 2bug no pagamentoSessão 3refactor dos testesArquivos do projetoo mesmo código para todas as sessões
As conversas não se cruzam entre si, mas o código é compartilhado

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.

EntradaO que faz
claude --continuecontinua a conversa mais recente nesta pasta, sem perguntar nada
claude --resumeabre a lista de conversas anteriores para escolher uma
/resumea 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.

Confira a pasta primeiro

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á aberta

Se 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çãoO que acontece com a conversaO que acontece com os arquivos do projetoQuando escolher
/clearcomeça com a página em branco, a anterior fica salvanão mexea tarefa mudou e o lugar continua o mesmo
Nova sessãocomeça uma conversa separada para outro trabalhonão mexeoutro 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.

Antes do comando clear, a conversa sobre o formulário está ativa na janela atual e a lista está vazia. Depois do comando, a página em branco está ativa e a conversa sobre o formulário fica na lista. Nos dois estados, há uma única conversa ativa nesta janelaAntesDepois/clearativona listaConversa do formulárioPágina em brancoConversa do formuláriovazio por enquanto
Na janela atual, o comando troca a conversa ativa e move a anterior para a lista

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.

Não coloque segredos no transcript

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+A mostra 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 ritual de dois segundos

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.