Encrypted voice and video calls, live audio and video streams between phones over a Bluetooth mesh. No internet needed.
See the codeEncrypted voice and video calls, live video and live audio between phones over a Bluetooth mesh. No internet needed.
Android 10 or newer · free · no account · How to install
Built for blackouts, disasters, censorship, remote places and crowded events. Free and open source (GPL-3.0).
Your phone talks to nearby phones over Bluetooth, about 10 to 30 metres, never through the internet. A phone that receives a stream can pass it on, and the next phone can pass it on again: that chain is the mesh. Bluetooth is slow, so video is small and gets a little more delayed with each hop; audio-only streams reach further.
Source phone ))) Viewer phone ))) Viewer phone ))) ...
(camera) (also relays) (also relays)
Limits, plainly: a live stream shows its source to everyone who watches; on Android 13 and older a phone that connects to yours can read its Bluetooth name; anyone whose call you accept learns who you are; there has been no independent security audit. Details: docs/PRIVACY.md.
Both people need MeshLive. To get updates automatically, add the project in Obtainium with the button above. With no internet, a friend can send you the app: in MeshLive, Settings, then Share this app. The app can also check for updates, but only if you say yes.
To check a download is genuine, see how to verify a release. Other install options, the file list, features and common questions are in the user guide.
MeshLive is in beta, tested on seven phones from Samsung, Xiaomi, ASUS and OPPO (Android 10 to 16) and with a first iPhone. Results vary by phone pair: see docs/DEVICES.md. Do not rely on it where your safety depends on it. An iPhone app is in development.
Please report your phone. The device report form takes two minutes; reports where everything worked help as much as failures.
You need JDK 21, the Android SDK with NDK 28.2.13676358 and CMake 3.22.1, Perl and Python 3.11 or newer.
python tools/fetch_native_sources.py # downloads the pinned libaom and libopus
./gradlew :app:testDebugUnitTest :app:assembleGithubDebug
The APK is app/build/outputs/apk/github/debug/app-github-debug.apk. Developers can read docs/ARCHITECTURE.md (how it is built, build notes), docs/SWITCHES.md (the list of experimental switches) and docs/PROTOCOL.md (wire formats and security rules). Test results are in MeshLive/meshlive-benchmarks.
| I want to... | Read |
|---|---|
| Install, update, verify, use the app, get answers | docs/USER_GUIDE.md |
| Know what is exposed and what is hidden | docs/PRIVACY.md |
| See which phones work | docs/DEVICES.md |
| Understand how it is built | docs/ARCHITECTURE.md |
| Look up an experimental or optional switch | docs/SWITCHES.md |
| Implement or review the wire format and security rules | docs/PROTOCOL.md |
| See what is unfinished | docs/PLAN.md |
| Test on phones, or read why a measured choice was made | docs/TESTING.md, docs/DECISIONS.md |
| Contribute, or follow the rules for coding agents | CONTRIBUTING.md, AGENTS.md |
Bug reports, device results, documentation and code are welcome. Start with CONTRIBUTING.md. Please follow the code of conduct.
Report vulnerabilities privately through GitHub private vulnerability reporting. See SECURITY.md.
Most of the code was written with AI assistance (Anthropic's Claude), directed by the maintainer, who decides what the app does and tests it on real phones. It has not had an independent security audit.
GPL-3.0-or-later. See LICENSE and THIRD_PARTY_NOTICES.md.
Encrypted voice and video calls, live audio and video streams between phones over a Bluetooth mesh. No internet needed.
See the codeEncrypted voice and video calls, live video and live audio between phones over a Bluetooth mesh. No internet needed.
Android 10 or newer · free · no account · How to install
Built for blackouts, disasters, censorship, remote places and crowded events. Free and open source (GPL-3.0).
Your phone talks to nearby phones over Bluetooth, about 10 to 30 metres, never through the internet. A phone that receives a stream can pass it on, and the next phone can pass it on again: that chain is the mesh. Bluetooth is slow, so video is small and gets a little more delayed with each hop; audio-only streams reach further.
Source phone ))) Viewer phone ))) Viewer phone ))) ...
(camera) (also relays) (also relays)
Limits, plainly: a live stream shows its source to everyone who watches; on Android 13 and older a phone that connects to yours can read its Bluetooth name; anyone whose call you accept learns who you are; there has been no independent security audit. Details: docs/PRIVACY.md.
Both people need MeshLive. To get updates automatically, add the project in Obtainium with the button above. With no internet, a friend can send you the app: in MeshLive, Settings, then Share this app. The app can also check for updates, but only if you say yes.
To check a download is genuine, see how to verify a release. Other install options, the file list, features and common questions are in the user guide.
MeshLive is in beta, tested on seven phones from Samsung, Xiaomi, ASUS and OPPO (Android 10 to 16) and with a first iPhone. Results vary by phone pair: see docs/DEVICES.md. Do not rely on it where your safety depends on it. An iPhone app is in development.
Please report your phone. The device report form takes two minutes; reports where everything worked help as much as failures.
You need JDK 21, the Android SDK with NDK 28.2.13676358 and CMake 3.22.1, Perl and Python 3.11 or newer.
python tools/fetch_native_sources.py # downloads the pinned libaom and libopus
./gradlew :app:testDebugUnitTest :app:assembleGithubDebug
The APK is app/build/outputs/apk/github/debug/app-github-debug.apk. Developers can read docs/ARCHITECTURE.md (how it is built, build notes), docs/SWITCHES.md (the list of experimental switches) and docs/PROTOCOL.md (wire formats and security rules). Test results are in MeshLive/meshlive-benchmarks.
| I want to... | Read |
|---|---|
| Install, update, verify, use the app, get answers | docs/USER_GUIDE.md |
| Know what is exposed and what is hidden | docs/PRIVACY.md |
| See which phones work | docs/DEVICES.md |
| Understand how it is built | docs/ARCHITECTURE.md |
| Look up an experimental or optional switch | docs/SWITCHES.md |
| Implement or review the wire format and security rules | docs/PROTOCOL.md |
| See what is unfinished | docs/PLAN.md |
| Test on phones, or read why a measured choice was made | docs/TESTING.md, docs/DECISIONS.md |
| Contribute, or follow the rules for coding agents | CONTRIBUTING.md, AGENTS.md |
Bug reports, device results, documentation and code are welcome. Start with CONTRIBUTING.md. Please follow the code of conduct.
Report vulnerabilities privately through GitHub private vulnerability reporting. See SECURITY.md.
Most of the code was written with AI assistance (Anthropic's Claude), directed by the maintainer, who decides what the app does and tests it on real phones. It has not had an independent security audit.
GPL-3.0-or-later. See LICENSE and THIRD_PARTY_NOTICES.md.