TIPS 01 · SESSIONI

Dois Claude que falam um com o outro

Como ponho duas sessões do Claude Code a falar uma com a outra: como se ativa, as três formas como o uso todos os dias e a regra para não se atropelarem.

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.

  1. Na janela da app escreve /rename app. O nome aparece na barra onde escreves.
  2. Na janela do site escreve /rename site.
  3. 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:

O prompt
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:

O prompt
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:

O prompt
Procura no projeto todos os sítios onde se trata do login e manda a lista à sessão 2.

Na sessão 2:

O prompt
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:

O prompt
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:

O prompt
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.

← Todos os guias