O que é e porque importa
Cada janela do Claude Code é uma sessão, com a sua própria cabeça. Tem a sua conversa e só sabe o que lhe disseste lá dentro. Se abrires duas, à partida não sabem nada uma da outra.
O problema é que o mensageiro passas a ser tu. Uma sessão muda o nome de um campo na app, tu copias, colas na outra janela, voltas a explicar tudo e se calhar esqueces-te de uma parte. Com dois trabalhos em paralelo, acontece a toda a hora.
O Claude Code tem uma função feita para isto: as mensagens entre sessões. Uma sessão consegue ver as outras abertas no teu computador e mandar a uma delas uma mensagem de texto. A que a recebe lê-a e continua a trabalhar tendo-a em conta.
Porque importa: podes dividir o trabalho como o dividirias entre duas pessoas. Numa pões a construir uma coisa, na outra pedes para verificar o que a primeira está a fazer. Ou uma trabalha na app e a outra no site, e quando a primeira acaba avisa a segunda. Tu continuas a ser quem decide, não o carteiro.
Como se ativa
Abre duas sessões do Claude Code no mesmo computador, uma por trabalho (p. ex. uma na pasta da app e outra na do site).
Não há nada para ligar: se o Claude Code estiver atualizado, as mensagens entre sessões já funcionam.
O Claude tem duas ferramentas para isto: uma para ver as outras sessões abertas (ListAgents) e outra para mandar uma mensagem a uma delas (SendMessage). Não tens de escrever comandos: pedes-lhe em português, simplesmente, tipo «manda uma mensagem à sessão do site». Às vezes o Claude até manda uma por iniciativa própria, quando percebe que uma alteração sua mexe no trabalho da outra sessão.
Dá um nome a cada sessão
As sessões encontram-se pelo nome. O Claude Code escolhe um sozinho, mas é mais prático seres tu a decidir, assim sabes sempre qual é qual.
- Na janela da app escreve /rename app. O nome aparece na barra onde escreves.
- Na janela do site escreve /rename site.
- Numa das duas escreve /list-agents: vês as sessões a que o Claude consegue chegar, com o nome a usar para cada uma.
Quando escreves ao Claude também podes escrever @ e as primeiras letras do nome, tipo @site, e escolher a sessão no menu. Assim ele sabe exatamente a quem mandar a mensagem.
Se o teu Claude Code não vê as outras sessões, atualiza-o para a versão mais recente e tenta outra vez. O teste mais rápido: se o /list-agents não for reconhecido, a tua versão ainda não tem esta função.
As três formas como o uso todos os dias
1. Um constrói, o outro verifica
Na sessão 1 ponho a construir a funcionalidade. Na sessão 2 escrevo:
Vê o que a sessão 1 está a fazer. Lê as alterações que ela fez, tenta parti-las, e se encontrares um erro escreve-o a ela e a mim. Não mexas nos ficheiros.
A parte que conta é «Não mexas nos ficheiros». Quem verifica lê, testa e avisa, mas não corrige. Se as duas corrigissem, acabavam a mexer nas mesmas coisas e deixavas de perceber quem fez o quê. O erro é corrigido por quem o fez, assim que recebe a mensagem.
2. A passagem de testemunho entre a app e o site
Aqui as duas sessões trabalham em pastas diferentes, uma na app e outra no site. Na sessão da app escrevo:
Quando acabares e os testes passarem, manda uma mensagem à sessão do site com o que mudou (nomes dos campos, endereços, textos), para ela atualizar as páginas dela.
A mensagem é só texto. A outra sessão não vê a conversa nem os ficheiros da primeira: lê o que lhe escrevem. Por isso peço coisas concretas, tipo nomes dos campos, endereços e textos, e não um vago «mudei umas coisas».
Não tens de estar ali a fazer de despertador. Se a sessão do site estiver parada, a mensagem põe-na a andar outra vez. Se estiver a trabalhar, lê-a assim que acaba o passo que está a fazer, sem ser interrompida a meio.
3. Uma procura, a outra decide
Na sessão 1:
Procura no projeto todos os sítios onde se trata do login e manda a lista à sessão 2.
Na sessão 2:
Espera pela lista da sessão 1 e depois propõe um plano em 5 pontos. Não escrevas código até eu dizer ok.
Assim a sessão que decide fica limpa: não se enche de ficheiros lidos e resultados de pesquisa, só recebe a lista. E aquele «Não escrevas código até eu dizer ok» deixa-te a última palavra sobre o plano.
Extra: pede para seres avisado quando a outra acabar
Se estás à espera de um trabalho longo noutra sessão, não precisas de ir ver de cinco em cinco minutos. Na sessão onde estás escreve:
Avisa-me quando a sessão da app tiver acabado o que está a fazer.
O Claude pede à outra sessão para mandar um aviso quando parar, e traz-to mesmo onde estás.
A regra de ouro
Uma sessão, um trabalho. Duas sessões no mesmo ficheiro atropelam-se: se tiverem de mexer nos mesmos ficheiros, usa uma cópia do projeto para cada uma (chamam-se worktrees, falo disso noutro vídeo).
Um worktree é uma cópia do projeto numa pasta própria, com um ramo próprio. Cada sessão altera a sua cópia e não mexe na das outras. É preciso que o projeto esteja em git.
Para o criar basta pedir, logo no início da sessão:
Trabalha num worktree novo chamado [nome]. Não mexas no projeto principal.
No terminal também podes abrir a sessão já dentro de uma cópia, com claude --worktree seguido do nome. E as mensagens servem precisamente para isto: quando uma sessão acaba a sua parte, avisa as outras do que mudou.
Os erros mais comuns
- Duas sessões a alterar os mesmos ficheiros na mesma pasta: dá a cada uma o seu worktree, ou deixa só uma das duas escrever.
- Pedir à sessão que verifica para corrigir os erros: pede-lhe para os assinalar, quem os corrige é a sessão que escreveu o código.
- Mensagens vagas tipo «mudei umas coisas»: pede ao Claude para escrever o que mudou com nomes exatos, porque a outra sessão só vê esse texto.
- Sessões sem um nome claro: dá a cada uma um nome com /rename antes de começar, para não escreveres à errada.
- Achar que uma mensagem pode dizer que sim por ti: uma mensagem de outra sessão não aprova nada, os pedidos de permissão chegam-te na mesma a ti.
- Culpar o Claude quando não encontra a outra sessão: experimenta o /list-agents e, se não for reconhecido, atualiza o Claude Code.
Checklist
- Duas sessões abertas, uma por trabalho
- Cada sessão tem um nome, dado com /rename
- O /list-agents mostra a outra sessão
- A sessão que verifica tem ordem para não mexer nos ficheiros
- Cada mensagem diz o que mudou, com nomes exatos
- Se mexem nos mesmos ficheiros, um worktree para cada uma
Perguntas frequentes
As duas sessões partilham a memória?
Não. A mensagem é um texto que uma escreve à outra, sem a conversa e sem os ficheiros. Se precisas de uma conversa inteira, retoma essa sessão em vez de a passar aos bocados com mensagens.
Podem continuar a escrever uma à outra até ao infinito?
Não. O Claude Code limita as mensagens repetidas entre duas sessões, por isso uma troca sem fim para sozinha. Mesmo assim, eu dou sempre uma tarefa clara e um ponto onde parar.
Que diferença há em relação aos subagentes?
Um subagente trabalha dentro da tua sessão, faz uma parte do trabalho e devolve-lhe um resumo. Aqui são duas sessões a sério, abertas por ti, cada uma com a sua janela e o seu trabalho, que escrevem uma à outra quando é preciso.
Aparece-me um pedido para aprovar uma mensagem. É normal?
Sim. Acontece sobretudo quando a sessão que recebe trabalha sem te pedir permissões: nesse caso o Claude Code guarda as mensagens que chegam e pergunta-te primeiro a ti. Se aprovares, a mensagem chega.