An offline, serverless mesh messenger for Android — end-to-end encrypted, no internet, no accounts, no Google Play services.
Your phones talk directly to each other over Wi-Fi Aware and Bluetooth LE, and relay for one another hop by hop.
Knit needs no internet connection, no cell service, no accounts, and no servers. It forms an ad-hoc mesh directly over Wi-Fi Aware (NAN) and Bluetooth LE, running both radios at once. Send a message and it goes to every device in range; each of those re-transmits it onward, so messages leap-frog across phones with no infrastructure at all. Duplicates are discarded, hop-count and TTL bound the flood, and a store-and-forward layer carries what a single flood doesn't reach.
┌─────────┐ Wi-Fi Aware / BLE ┌─────────┐ Wi-Fi Aware / BLE ┌─────────┐
│ Phone A │ ────────────────────► │ Phone B │ ────────────────────► │ Phone C │
└─────────┘ send + relay └─────────┘ relay (dedup) └─────────┘
│ │ │
originates a overhears & re-floods (jittered, delivers — even though
signed, encrypted suppressed) — only carries ciphertext A was never in its range
frame once it can't decrypt
- Two radios, no GMS. Wi-Fi Aware and Bluetooth LE run simultaneously behind one transport seam, with no Google Nearby dependency. A device with only one of the two still meshes over that one.
- End-to-end encrypted. Direct and group messages are sealed per-message (AES-256-GCM), wrapped to each recipient (HPKE/X25519), and signed (Ed25519), so relays only ever carry ciphertext. Identity keys are hardware-backed and verifiable in person by safety number or QR code.
- Store-and-forward. A message whose recipient isn't in range is held in encrypted custody and re-offered when a path to them appears, so phones that meet only briefly still backfill each other.
- Reproducible builds. F-Droid rebuilds each release from source and byte-compares it against the APK we publish before distributing it.
| F-Droid | f-droid.org/packages/app.getknit.knit |
| Google Play | play.google.com/store/apps/details?id=app.getknit.knit |
| Signed APK | github.com/getknit/knit/releases |
| Website | getknit.app |
Android 10+ (API 29). Once installed, Knit can hand itself to a nearby phone over the mesh — no store and no network required.
| Repository | What it is |
|---|---|
| knit | The Android app — Kotlin, Jetpack Compose, GPL-3.0-or-later |
Knit is free and open source, with no ads, no tracking, and no accounts.