Quando abrir uma conversa nova no Claude Code (e quando só compactar a atual)?

Abrir uma conversa nova no Claude Code é decisão de contexto, não de modelo. A régua oficial: se você corrigiu o Claude mais de duas vezes sobre o mesmo ponto, o histórico está entulhado de abordagens que falharam e /clear com um prompt mais específico costuma render mais que continuar corrigindo. Trocou de tarefa não relacionada? /clear. Mesma tarefa com histórico longo? /compact com instrução de foco. Quer testar outro caminho sem perder o atual? /branch ou --fork-session. E o que precisa sobreviver à limpeza vai pro CLAUDE.md, que é persistente e independe da conversa.
Fala aí, beleza? Existe um momento exato em que a conversa do Claude Code para de ajudar e começa a atrapalhar
Você pede uma coisa e ele volta com aquela abordagem que você descartou três mensagens atrás
Ou o assunto mudou de rumo no meio do dia, você saiu do bug de autenticação e foi pro deploy, só que o histórico velho continua ali, sendo recobrado a cada mensagem nova
Na maioria dessas vezes o problema não é o modelo, é o histórico
E aí a decisão não é trocar de ferramenta, é gestão de contexto: limpar, compactar ou ramificar
Bora ver quando abrir uma conversa nova no Claude Code, quando só compactar a atual e, principalmente, o que levar junto pra não jogar fora o que já foi feito
O que você precisa saber antes de decidir
O que é uma sessão, afinal?
Uma sessão é uma conversa salva, vinculada ao diretório do projeto e guardada localmente enquanto você trabalha
É isso que permite retomar depois, ramificar pra testar outra abordagem ou alternar entre tarefas
Se você conhece branch de Git, a ideia de ramificar aqui vai soar bem familiar 🙂
Domine o Claude Code do básico ao avançado
Você vai aprender a criar sistemas completos com Claude Code, sem precisar ser programador. Inscreva-se para ter acesso a um desconto de lançamento e bônus especiais!
Janela cheia não é fim de conversa
O Claude Code compacta automaticamente conforme a sessão se aproxima do limite
Ou seja: encher a janela não encerra a sessão, ela se ajusta sozinha
E tem um detalhe que confunde muita gente: Fable 5, Sonnet 5, Opus 4.6 em diante e Sonnet 4.6 suportam janela de 1 milhão de tokens pra sessões longas em bases grandes, mas dentro do Claude Code o modelo é tratado como tendo 200 mil tokens
Com a auto-compactação ligada, as sessões compactam nessa fronteira de 200 mil
Então a pergunta prática nunca é "cabe mais?", é "o que está ocupando esse espaço?"
Como enxergar isso ao vivo
/context
Esse comando mostra um detalhamento ao vivo do uso da janela por categoria, com sugestões de otimização
Inclusive quais arquivos CLAUDE.md e de auto memory foram carregados
Se você quiser ir fundo em outro ajuste que muda o comportamento do agente, eu já escrevi por aqui sobre extended thinking no Claude Code
Como decidir na prática: o passo a passo da conversa nova
- Leia a janela antes de agir
Rodar /context primeiro evita decisão no chute
Você vê por categoria o que está pesando, e já descobre se o problema é histórico velho ou memória carregada demais
O erro comum deste passo: limpar por reflexo, sem olhar
- Aplique a régua das mais de duas correções
Essa é a régua oficial da documentação, e é a mais útil de todas
Se você corrigiu o Claude mais de duas vezes sobre o mesmo ponto na mesma sessão, o contexto está entulhado de abordagens que falharam
Nesse caso, rodar /clear e recomeçar com um prompt mais específico quase sempre supera continuar a sessão longa com correções acumuladas
O erro comum deste passo: insistir na correção número quatro achando que agora vai
- Trocou de tarefa não relacionada? Limpa
/clear
O /clear reseta a conversa para um contexto vazio: os prompts seguintes começam sem nenhum histórico anterior
A própria documentação recomenda usar isso com frequência entre tarefas não relacionadas, porque sessões longas com contexto irrelevante reduzem o desempenho
Tem o lado da conta também: contexto velho é recobrado a cada mensagem, e limpar corta esse desperdício, o que faz diferença pra quem acompanha quanto o Claude Code custa hoje
E calma, limpar não destrói nada: a conversa anterior continua salva em disco e pode ser retomada depois pelo ID da sessão
O erro comum deste passo: achar que /clear apaga a conversa pra sempre e por isso nunca usar
- Mesma tarefa, histórico longo? Compacta com foco
/compact focus on the auth bug fix
O /compact reduz o histórico resumindo mensagens antigas em vez de apagá-las
E ele aceita instrução de foco, pra você escolher o que o resumo preserva em vez de deixar a passagem automática adivinhar
Detalhe: ele exige uma conversa já existente, com trocas anteriores, pra ter o que resumir
O erro comum deste passo: rodar /compact seco e depois descobrir que justo o pedaço que importava virou uma linha genérica
- Quer cortar só um trecho? Volta no checkpoint
Aperta Esc duas vezes ou roda:
/rewind
Abre o menu de checkpoints com quatro opções: restaurar a conversa (mantendo o código), restaurar o código (mantendo a conversa), resumir dali em diante e resumir até ali
Os checkpoints são salvos junto da conversa, então dá pra fechar o terminal, retomar a sessão depois e ainda usar o /rewind
O erro comum deste passo: confundir restaurar conversa com restaurar código, são coisas diferentes e o menu deixa isso explícito
- Ajuste quando a compactação automática dispara
/autocompact
Esse comando define, por contagem de tokens, o quão cheia a janela fica antes da compactação automática rodar
O erro comum deste passo: mexer nisso antes de entender o que está ocupando a janela (volta pro passo 1!)
- Voltar ou ramificar sem escrever por cima
/resume
O /resume retoma uma conversa por ID, por nome, ou abre o seletor de sessões, e o /continue é um apelido dele
Pela linha de comando dá pra combinar com fork, retomando sem escrever por cima da sessão original:
claude --continue --fork-session
claude --resume --fork-session
E tem o caminho de dentro da conversa:
/branch
Ele cria uma ramificação da sessão e a confirmação imprime dois IDs, o da ramificação nova e o da original
A original fica intacta no disco e continua aparecendo no seletor de sessões
O erro comum deste passo: retomar direto na sessão original pra "testar uma ideia" e sujar justamente a conversa que estava boa
O que levar junto para não recomeçar do zero de verdade
A parte que dói no /clear não é perder o histórico, é perder o combinado
Aquele detalhe do projeto que você explicou três vezes e não quer explicar de novo
Se liga no que sobrevive à conversa:
- Instrução persistente vai pro CLAUDE.md
Os arquivos CLAUDE.md são markdown com instruções persistentes para o projeto, pro seu fluxo pessoal ou pra organização
Ou seja: eles sobrevivem ao fim da conversa, é exatamente pra isso que servem
- Use os gatilhos oficiais pra escrever nele
A documentação indica escrever no CLAUDE.md quando:
- o Claude comete o mesmo erro pela segunda vez
- você digita a mesma correção que já digitou na sessão passada
- um colega novo precisaria do mesmo contexto pra entender aquilo
O erro comum deste passo: corrigir de novo no chat e seguir a vida, aí a correção morre junto com a sessão
- Ensine a compactação a preservar o que importa
Dá pra customizar o comportamento da compactação pelo próprio CLAUDE.md, com instruções do tipo preservar sempre a lista completa de arquivos modificados e os comandos de teste
É o mesmo espírito do foco no /compact, só que valendo por padrão
- Deixe a auto memory trabalhar
A auto memory acumula conhecimento entre sessões sem você escrever nada: o Claude salva notas próprias, tipo comandos de build, achados de depuração, notas de arquitetura, preferências de estilo e hábitos de fluxo
Pra ver o que foi salvo:
/memory
Daí é só selecionar a pasta de auto memory
É tudo markdown, dá pra ler, editar ou apagar na mão
- Pode sem dó
Aqui vai o contraponto, porque mais nem sempre é melhor
Um CLAUDE.md superespecificado atrapalha: regra importante se perde no ruído
A orientação é podar, apagando o que o Claude já faz certo sem ser mandado, ou convertendo aquela regra em hook
O erro comum deste passo: transformar o CLAUDE.md num manual gigante e depois reclamar que ele ignora a regra que interessa
Quatro situações e o comando certo para cada uma
O assunto trocou no meio do dia:
Você estava no bug de autenticação e agora vai mexer no deploy
Nada do histórico anterior ajuda, e ele é recobrado a cada mensagem
É /clear, sem drama, a conversa antiga continua em disco e volta pelo ID quando você precisar
O agente insiste numa abordagem que você já descartou:
Contou quantas correções? Passou de duas sobre o mesmo ponto?
Então o contexto está entulhado de tentativas que falharam
/clear e reescreve o prompt mais específico, já dizendo o caminho que NÃO é pra seguir
A tarefa é longa e você só quer enxugar o histórico:
Aqui limpar seria burrice, você perderia o fio da meada
/compact com instrução de foco resolve, resumindo o antigo em vez de apagar
E se o problema for um trecho específico, /rewind deixa você resumir até ali ou dali em diante
Você quer testar um segundo caminho sem perder o primeiro:
/branch cria a ramificação e imprime os dois IDs, com a original intacta no seletor
Pela linha de comando, --fork-session junto de --continue ou --resume faz o mesmo papel de não escrever por cima
E o subagente, entra onde?
Esse é o truque que pouca gente usa: cada subagente roda na própria janela de contexto, com system prompt próprio, acesso a ferramentas específico e permissões independentes
O contexto dele começa do zero, sem a conversa do pai
O único conteúdo que passa do pai pro subagente é o texto do prompt da ferramenta Agent, e só a mensagem final dele volta pra conversa principal (as chamadas e resultados intermediários ficam lá dentro)
Traduzindo: é uma forma de investigar coisa pesada sem sujar a conversa principal 😀
O que a prática mostra sobre trocar de conversa
Aqui entra a parte que eu vivi, não a que eu li
No vídeo abaixo eu mostro o painel de sessões do Claude Code, e ele mexeu justamente com a decisão de quando abandonar uma conversa e abrir outra
Antes de existir esse painel, pra rodar mais de uma conversa no mesmo projeto eu precisava abrir dois ou mais terminais
E ficava alternando entre eles só pra descobrir se a tarefa já tinha terminado
Esse vai e volta custava tempo, e gerenciar as sessões ficava difícil
Na demonstração eu abri uma conversa nova pra cada tarefa diferente do sistema: uma pra criar a estrutura de autenticação, outra pra outra ação
Em vez de empilhar as duas na mesma conversa, que é exatamente o hábito que enche a janela de contexto irrelevante
O painel mostra quantas sessões estão esperando resposta minha, quantas estão trabalhando e quantas já terminaram, cada estado com uma cor, e eu navego entre elas com as setas
Dá até pra mandar mensagem pra uma sessão já existente sem abrir a conversa, e eu usei isso pra pedir uma revisão do que tinha sido feito
Quando uma conversa fica parada e eu não vou mais usar, eu excluo a sessão e começo um recurso novo do zero em outra
Teve uma tarefa que eu achei que ia demorar, escrever testes pra aplicação, e essa eu joguei pro segundo plano em vez de ficar supervisionando, liberando o terminal pra outra coisa
É esse o uso que eu faço na prática: sessões paralelas pra revisão de segurança, performance e criação de testes, porque essas não atrapalham diretamente a evolução do projeto
Agora, sinceridade: eu não sou do tipo que abre quinze terminais programando ao mesmo tempo
Pra mim isso ainda não funciona, exigiria uma confiança na IA que eu não tenho
O recurso não é complexo, ele resolve um problema bem específico, e é justamente por isso que ele muda a rotina
Conclusão
A régua enxuta pra guardar:
| Situação | O que fazer |
|---|---|
| Troca de assunto não relacionado | /clear |
| Mesma tarefa, histórico pesado | /compact com instrução de foco |
| Corrigiu mais de 2 vezes o mesmo ponto | /clear e prompt mais específico |
| Testar um caminho alternativo | /branch ou --fork-session |
| Cortar só um trecho da conversa | Esc Esc ou /rewind |
E o próximo passo é agora mesmo, na sessão que você já tem aberta aí
Roda /context e olha o que está ocupando a janela
Se você identificar uma correção que já repetiu, move ela pro CLAUDE.md ANTES de limpar, senão você vai digitar a mesma coisa de novo amanhã
Depois disso, limpar sai barato e a conversa nova nasce sabendo o que precisa saber
Faça o teste e me conta como foi, até o próximo post!
Perguntas frequentes
O /clear apaga a conversa antiga do Claude Code para sempre?
Não. O /clear reseta o contexto da conversa para zero, então os prompts seguintes começam sem nenhum histórico anterior. Mas a conversa anterior continua salva em disco e pode ser retomada depois pelo ID da sessão.
Qual a diferença entre /clear e /compact no Claude Code?
O /clear reseta o contexto para vazio, sem nenhum histórico sobrando. Já o /compact resume o histórico existente, resumindo mensagens antigas em vez de apagá-las, e por isso exige uma conversa já existente com trocas anteriores para ter o que resumir.
Como saber se é hora de abrir uma conversa nova em vez de continuar corrigindo o Claude Code?
A régua oficial é a das mais de duas correções: se você corrigiu o Claude mais de duas vezes sobre o mesmo ponto na mesma sessão, o contexto já está entulhado de abordagens que falharam. Nesse caso, rodar /clear e recomeçar com um prompt mais específico quase sempre supera insistir na sessão longa.
Dá para testar uma ideia diferente sem sujar a conversa original no Claude Code?
Dá, usando /branch ou combinando –continue ou –resume com –fork-session pela linha de comando. O /branch cria uma ramificação da sessão e a confirmação imprime dois IDs, o da ramificação nova e o da original, que fica intacta no disco.
Por que o Claude Code compacta a conversa mesmo em modelos com janela de 1 milhão de tokens?
Porque, mesmo em modelos como Sonnet 5 e Fable 5 que suportam 1.000.000 de tokens nativos, o Claude Code trata o modelo como tendo janela de 200 mil tokens. Com a auto-compactação ligada, as sessões compactam nessa fronteira de 200 mil, e dá para ajustar quando isso dispara com o comando /autocompact, que define por contagem de tokens o quão cheia a janela fica antes da compactação automática rodar.
O que é a auto memory e ela substitui o CLAUDE.md?
Não substitui, são coisas diferentes. A auto memory acumula conhecimento entre sessões sem você escrever nada, com o próprio Claude salvando notas de build, depuração e preferências, enquanto o CLAUDE.md guarda instruções persistentes que você escreve. Para inspecionar o que foi salvo na auto memory, roda-se /memory e seleciona-se a pasta correspondente.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
