Bitchat is a decentralized peer-to-peer messaging app that combines Bluetooth mesh networking for offline communication with the Nostr protocol for internet-based global reach.
The tool solves the problem of enabling communication without reliance on centralized servers, phone numbers, or user accounts. It uses a dual transport architecture where messages automatically route through the best available path: Bluetooth mesh for local offline communication within range, with multi-hop relay capability through nearby devices, or Nostr protocol relays for internet-connected global messaging. The Bluetooth layer uses the Noise Protocol for end-to-end encryption, while Nostr messages use BitChat private envelopes. Location-based channels allow geographic chat rooms using geohash coordinates over the global relay network. The interface follows IRC conventions with familiar commands like /slap, /msg, and /who.
Bitchat suits developers and users prioritizing privacy and resilience in scenarios where internet infrastructure may be unavailable or untrustworthy. It works natively on iOS and macOS. The project emphasizes build verification, providing a hash manifest so users can verify compiled releases against source code—a particular concern given the repository has faced takedown demands. The tool includes practical features like message compression, adaptive battery modes, and an emergency data wipe function.
The project maintains a substantial base of real-world adopters, as evidenced by most open issues being raised by outside users rather than the core team. Maintainers typically respond to new issues and pull requests within a few days.