BitChat is a decentralized peer-to-peer messaging application written in Swift that enables offline and internet-based communication through a dual transport architecture. The app combines Bluetooth mesh networking for local offline communication with the Nostr protocol for global internet-based messaging, eliminating the need for accounts, phone numbers, or central servers. It is available on the App Store for iOS and includes macOS support, positioning itself as a censorship-resistant alternative to traditional chat applications with IRC-style command familiarity.
The core technical innovation of BitChat lies in its hybrid messaging architecture that intelligently routes messages between two complementary transport layers. For local communication, the app implements a Bluetooth Low Energy mesh network that supports multi-hop message relay through nearby devices with a maximum of seven hops, enabling operation in completely offline scenarios such as disaster areas or remote locations. Messages transmitted over Bluetooth use the Noise Protocol for end-to-end encryption with forward secrecy, employing a compact binary protocol optimized for Bluetooth LE constraints. For internet-based communication, BitChat connects to a distributed network of over 290 Nostr relays globally, using NIP-17 gift-wrapping for private message encryption and ephemeral keys for location-based privacy.
The application supports multiple channel types tailored to different communication needs. The mesh Bluetooth channel operates locally without internet requirements, while location-based channels use geohash coordinates to create geographic chat rooms at various scales, from city blocks to entire regions. Direct messaging implements intelligent transport selection that prioritizes Bluetooth connections when available, falls back to Nostr when Bluetooth is unavailable, and queues messages for delivery when neither transport is accessible. This routing strategy ensures users maintain connectivity across varying network conditions.
BitChat incorporates several privacy and security features aligned with its censorship-resistant classification. The application requires no persistent identifiers, phone numbers, or account creation, with automatic peer discovery and connection management over Bluetooth. An emergency wipe function allows users to triple-tap to instantly clear all data. Performance optimizations include LZ4 message compression and adaptive battery modes to extend device runtime during extended offline use.
According to GitGenius activity tracking, the repository shows a median issue and pull request response latency of 10.1 hours across 297 tracked items, with a mean latency of 185.2 hours. The most active contributor is jackjackbits with 73 recorded events, followed by qalandarov with 40 events and Sidhant1s with 15 events. The repository has been linked via overlapping contributors to major projects including microsoft/vscode, microsoft/typescript, and rust-lang/rust, suggesting involvement from developers working across diverse technology stacks. The project is released into the public domain under a permissive license, with setup instructions provided for both Xcode-based development and macOS testing via the just command runner. Localization support is built into the application structure with separate resource files for the main app and share extension.