permissionlesstech/bitchat-android — explained in plain English
Analysis updated 2026-07-25
Chat with people nearby without internet using Bluetooth mesh networking.
Create password-protected group channels for private offline conversations.
Send encrypted private messages to individuals across a chain of devices.
Instantly wipe all app data with a triple-tap for emergency situations.
| permissionlesstech/bitchat-android | z-huang/innertune | airbnb/mavericks | |
|---|---|---|---|
| Stars | 5,940 | 5,936 | 5,933 |
| Language | Kotlin | Kotlin | Kotlin |
| Setup difficulty | moderate | easy | easy |
| Complexity | 4/5 | 2/5 | 3/5 |
| Audience | general | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires building the Android app from source with Android Studio and testing on two physical devices for Bluetooth mesh functionality.
bitchat for Android is a messaging app that lets you chat with people nearby using Bluetooth instead of the internet. No servers, no phone numbers, no accounts. Phones discover each other automatically and relay messages through the mesh, so a message can hop across several devices to reach someone farther away. The app also supports geohash channels, which use an internet connection to connect you with people in your general geographic area. This Android version is a port of an existing iOS app, and the two are designed to talk to each other using the same protocol. The interface borrows from old-school IRC chat. You type slash commands like /j #channel to join or create a channel, /m @name message for private messages, and /w to see who is online. Channels can be password-protected, and channel owners can transfer ownership or toggle message retention. There is also an emergency wipe triggered by triple-tapping the app logo, which clears all data instantly. The README emphasizes privacy and encryption. Private messages use X25519 key exchange with AES-256-GCM encryption. Channel messages use Argon2id password derivation plus the same AES cipher. Messages are digital-signed with Ed25519 keys. By default, messages exist only in device memory. The app generates cover traffic, random delays and dummy messages, to make traffic analysis harder. It also includes built-in Tor support for added privacy when an internet connection is available. Battery and bandwidth get careful attention. The app compresses messages over 100 bytes using LZ4, and it shifts between power modes depending on your battery level, from full performance when charging down to an ultra-low emergency mode below 10 percent. Message batching and adaptive connection limits help reduce transmissions over the Bluetooth link. The README carries a prominent warning that the software has not received external security review and may contain vulnerabilities. It is still a work in progress, and the authors advise against relying on it for sensitive use cases until it has been reviewed. The project is released into the public domain. The full README is longer than what was shown.
A Bluetooth mesh chat app for Android with no servers, accounts, or phone numbers. Messages hop device-to-device for offline, privacy-focused communication.
Mainly Kotlin. The stack also includes Kotlin, Android, Bluetooth.
Public domain, use, modify, and distribute freely for any purpose with no restrictions.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly general.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.