Nearby phone chat over Bluetooth. No internet, no pairing, no account.
Android phones talk over a BitChat-style BLE mesh. A Windows laptop can still join over classic Bluetooth.
- Finds phones around you automatically (no pairing for phone-to-phone chat).
- Sends messages and files while you stay in the app.
- Relays through nearby phones when a direct link is not enough.
- Signs chat and files so relays cannot undetectably tamper with payloads. Messages are not end-to-end encrypted; nearby radios and relays can read them.
- Package:
com.devil1716.bluetoothmanet - Language: Java + Kotlin
- Launcher:
ComposeMeshActivity(legacy XML console isMainActivity, hidden behind a long-press on the version in Settings → About) - Min SDK: 21
- Target / Compile SDK: 34
- Current release:
v1.4.4 - Android Gradle Plugin:
8.5.2
- Open the project in Android Studio.
- Build and run on at least 2 Android phones.
- On each phone:
- Allow Bluetooth when asked. Turn Location on if the banner says so.
- Nearby chat starts on its own after permission. If not, tap Start nearby chat.
- Share your ID, tap someone under Online, or use New chat.
- Send a message. Laptop / already-paired devices live under Settings → Advanced.
- Phone A links to Phone B, Phone B links to Phone C.
- Send from A to
C. - B forwards automatically.
- Keep the app in the foreground (or the Mesh is on notification) so Android does not freeze Bluetooth.
- Location must be on for nearby scanning on many devices.
- Phones usually need to be paired first only for a Windows laptop.
- Received files land in the app-specific Downloads directory, not the system Downloads list.
From 1.3.6 on, GitHub APKs are signed with a stable key and the app updates in place (WhatsApp-style banner: download, then Install).
If you still have 1.3.5 or an Android Studio debug build, Android will refuse the new APK as a package conflict. Copy your ID, uninstall Mesh, then install the latest release. After that, in-app updates replace the existing app.
If you want the Windows laptop to join, use the Python CLI in windows-node. That path still uses classic Bluetooth.
BLE mesh, flood routing, presence hellos, and store-and-forward are documented in docs/ARCHITECTURE.md. Threats and identity limits: docs/THREAT_MODEL.md. Signing and the leaked upload key: docs/SIGNING.md. Device tests: docs/HARDWARE_TEST.md.
Do not ship app-debug.apk. Configure the Actions secrets described in docs/SIGNING.md, then:
- Open Actions → Android Release → Run workflow.
- Set
tagto the version tag (example:v1.4.4). - The workflow runs unit tests and attaches
app-release.apkonly when release signing secrets are present.