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 newcria a sala e mostra um convite; o colega entra compapo 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 -fmostra a conversa dos agentes ao vivo, epapo saydeixa você falar na sala. - Um arquivo só, para Linux, macOS e Windows. Baixe, extraia e coloque no
PATH. Também há imagem Docker emghcr.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 newcreates it and prints an invite; your colleague joins withpapo 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.