Open Source

Chat descentralizado ganha força com mensagens por Bluetooth e Nostr

Projeto em Swift combina comunicação offline por rede mesh e alcance global sem contas, números de telefone ou servidores centrais.

Reprodução · punto-informatico.it

O bitchat, criado pela organização permissionlesstech, é um aplicativo de mensagens ponto a ponto que combina Bluetooth mesh, para comunicação offline, e o protocolo Nostr, para conectar usuários pela internet. O projeto está em alta no GitHub Trending, na categoria mensal, e acumulava 34.835 estrelas na consulta de 9 de agosto de 2026. A proposta é resolver um problema específico: permitir conversas locais mesmo sem internet, mantendo uma alternativa global quando houver conexão.

Dados rápidos

  • Repositório: permissionlesstech/bitchat
  • Licença: Unlicense
  • Linguagem: Swift
  • Popularidade: 34.835 estrelas e 5.564 forks
  • Ranking: GitHub Trending, presente em monthly
  • Consulta: 9 de agosto de 2026

Uma rede para conversar sem infraestrutura central

O aplicativo não exige contas, números de telefone ou servidores próprios. No modo Bluetooth, aparelhos próximos formam uma rede mesh, modelo em que dispositivos podem retransmitir mensagens entre si para ampliar o alcance.

Segundo o README, o sistema aceita até sete saltos entre dispositivos. Isso permite que uma mensagem avance por aparelhos intermediários, mesmo quando o destinatário não está diretamente ao alcance do remetente. A comunicação pode funcionar sem internet, cenário útil em desastres, áreas remotas e eventos em que a conectividade esteja indisponível.

Quando há internet, o bitchat usa o Nostr, protocolo distribuído baseado em relays, que funcionam como pontos de encaminhamento de mensagens. O projeto informa uma rede com mais de 440 relays e oferece canais associados a áreas geográficas por meio de coordenadas geohash.

Como o bitchat funciona

A arquitetura tem dois transportes. O primeiro é o Bluetooth Low Energy, usado para descoberta automática de pares, conexões locais e encaminhamento em múltiplos saltos. O segundo é o Nostr, empregado para canais geográficos e para mensagens quando o Bluetooth não está disponível.

O envio de uma mensagem privada segue uma ordem definida: tenta primeiro uma sessão Bluetooth com o protocolo Noise; se não houver conexão, usa a chave pública Nostr do destinatário e um envelope privado próprio do bitchat; se os dois caminhos estiverem indisponíveis, a mensagem fica em fila até que um transporte seja encontrado.

O projeto também oferece comandos inspirados no IRC, como /slap, /msg e /who. Para instalar ou testar uma cópia no macOS, o README orienta abrir o projeto no Xcode com o comando:

open bitchat.xcodeproj

Para uma compilação assinada em dispositivo Apple, é necessário copiar Configs/Local.xcconfig.example para Configs/Local.xcconfig e substituir o identificador de equipe pelo Apple Developer Team ID. O repositório também recomenda verificar builds usando manifestos de hash por release.

Casos de uso previstos

  • Comunicação em desastres: aparelhos próximos podem trocar mensagens sem depender de operadoras ou internet.
  • Protestos e eventos: a rede Bluetooth pode formar canais locais entre participantes dentro do alcance de múltiplos saltos.
  • Áreas remotas: comunidades sem cobertura estável podem usar o transporte offline para conversas locais.
  • Grupos de vizinhança: canais geográficos no Nostr organizam discussões por quarteirão, bairro, cidade ou região.
  • Mensagens privadas: o roteamento escolhe Bluetooth quando possível e recorre ao Nostr quando o contato local não está disponível.

O que diferencia o projeto

O bitchat combina dois modelos que normalmente aparecem separados: uma rede mesh local por Bluetooth e uma camada de alcance global baseada em Nostr. Essa combinação permite alternar entre comunicação offline e relays na internet, em vez de depender exclusivamente de uma infraestrutura.

A interface também busca reproduzir a experiência de canais IRC, enquanto o projeto oferece suporte nativo para iOS e macOS. O README cita compressão de mensagens com LZ4, modos adaptativos de bateria, descoberta automática de pares e limpeza emergencial de dados com três toques.

A interoperabilidade com outros clientes Nostr é parcial. O formato de envelopes privados do bitchat é específico do aplicativo e não é compatível com NIP-17, NIP-44 ou NIP-59, embora use o Nostr como transporte por relays.

Limitações e cuidados

A maturidade geral do projeto não é informada no repositório. Na consulta, havia 126 issues abertas, dado que indica atividade pendente, mas não permite concluir sozinho a estabilidade do aplicativo.

A privacidade também exige atenção. Apesar de o projeto não usar contas, telefones ou servidores centrais, a rede mesh mantém um identificador persistente por dispositivo derivado da chave de identidade. O próprio README orienta consultar o whitepaper para entender quais metadados podem ser observados por um rádio próximo.

A segurança depende de instalar uma versão confiável. O projeto alerta que builds compiladas de fontes desconhecidas não podem ser verificadas e menciona pedidos de remoção que podem fazer cópias e espelhos aparecerem. Dependências externas, requisitos completos de hardware e compatibilidade detalhada não são informados no repositório.

A licença é a Unlicense, que coloca o código em domínio público conforme o arquivo de licença do projeto. O último commit ocorreu em 9 de agosto de 2026, e a versão mais recente informada é a v1.7.1, publicada em 31 de julho de 2026.

Resumo rápido

  • Projeto: mensagens descentralizadas por Bluetooth mesh e Nostr
  • Licença: Unlicense
  • Linguagem: Swift
  • Estrelas: 34.835
  • Ranking: GitHub Trending, monthly
  • Risco principal: segurança da build e exposição de metadados locais

Fontes

  • Repositório: https://github.com/permissionlesstech/bitchat
  • Release v1.7.1: https://github.com/permissionlesstech/bitchat/releases/tag/v1.7.1
  • Homepage indicada no README: http://bitchat.free

Fontes

SwiftUnlicenseOpen SourceGitHub Trending
Como fazemos: nossa equipe monitora diariamente os repositórios de código aberto em maior alta e produz esta cobertura com apoio de modelos de linguagem, sempre a partir de dados verificados na fonte primária — repositório, documentação oficial e ranking público. Os números de estrelas e a posição no ranking refletem o momento da coleta. Entenda o método.