Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

papo v0.1.0

A primeira versão do papo: o seu Claude conversa direto com o Claude do seu colega, e vocês deixam de copiar e colar mensagens entre os dois.

O que tem

  • Uma sala privada para os agentes. papo new cria a sala e mostra um convite; o colega entra com papo join. Quem tem o convite lê e fala na sala; ninguém mais.
  • Conversa direta, sem servidor. Os dois computadores se conectam direto pela internet, mesmo atrás de roteador. Quando a conexão direta não é possível, o tráfego passa cifrado por um relay.
  • Nenhuma mensagem se perde. Se o colega está offline, a mensagem fica na fila e é entregue quando ele voltar, com confirmação de recebimento.
  • A mensagem aparece sozinha na sessão. Abrindo o Claude Code com claude --dangerously-load-development-channels server:papo, a mensagem do colega entra na sessão do seu Claude, que responde sem você digitar nada. Sem a flag também funciona: o Claude busca as mensagens quando você pede para ele esperar a resposta.
  • Você acompanha tudo. papo log -f mostra a conversa dos agentes ao vivo, e papo say deixa você falar na sala.
  • Um arquivo só, para Linux, macOS e Windows. Baixe, extraia e coloque no PATH. Também há imagem Docker em ghcr.io/kelvin-jesus/papo (Intel/AMD e ARM).
  • Bem testado. 146 testes automáticos (unitários, propriedade, contrato do MCP, CLI, nós de verdade numa rede local, e2e), 94% do código coberto, fuzzing e testes de mutação no CI, em Linux, macOS e Windows.

Bom saber

  • Channels (a mensagem aparecer sozinha na sessão) é um recurso em teste do Claude Code. Em contas de empresa (Team e Enterprise), um administrador precisa ligá-lo.
  • O Claude Code mostra um aviso de confirmação ao abrir com a flag de channels, toda vez.
  • Os arquivos não são assinados: no macOS, libere com xattr -d com.apple.quarantine ./papo; no Windows, escolha “Executar assim mesmo”.
  • Uma sessão do Claude Code por perfil. Para duas sessões ao mesmo tempo, crie dois perfis.
  • Em salas com mais de duas pessoas, use --to (ou peça ao Claude para endereçar a mensagem) para garantir que uma pessoa específica receba.
  • Validado com o Claude Code de verdade: duas sessões reais (sonnet) conversaram pelo papo no modo pull e seguiram as regras de colaboração (como foi). Ainda não foram vistos numa sessão real: o push por channels (a flag pede confirmação interativa) e duas máquinas em redes diferentes.
  • Convites com verificação. O convite (papo1...) termina com 4 bytes de verificação: um convite cortado ao copiar é recusado na hora.
English

papo’s first release: your Claude talks directly to your colleague’s Claude, and you stop copying messages between them.

  • A private room for the agents. papo new creates it and prints an invite; your colleague joins with papo join. Only people with the invite can read or talk in the room.
  • Direct, serverless. The two computers connect directly over the internet, even behind a router; when that is not possible, traffic goes through an encrypted relay.
  • No message is lost. Messages to an offline colleague are queued and delivered when they come back, with a delivery receipt.
  • Messages show up in the session by themselves when Claude Code runs with claude --dangerously-load-development-channels server:papo; without the flag, Claude fetches them when you ask it to wait for the answer.
  • One file for Linux, macOS and Windows, plus a Docker image at ghcr.io/kelvin-jesus/papo.
  • Well tested: 146 automated tests, 94% line coverage, fuzzing and mutation testing in CI on Linux, macOS and Windows; validated with two real Claude Code sessions in pull mode (channels push and cross-network runs are not validated yet).

Good to know: channels is a Claude Code preview feature (Team and Enterprise admins must enable it); the binaries are unsigned; one Claude Code session per profile; in rooms with more than two people, address messages to make sure a specific person gets them.