Mesh Messenger — Every Phone Is a Relay
OSHI is a free, open-source, end-to-end encrypted messenger for iOS and Android that uses Bluetooth and Wi-Fi mesh networking to send messages without Internet or cellular service. OSHI is an alternative to Bridgefy, Briar, Meshtastic and bitchat for offline communication, and to Signal for private messaging.
A mesh messenger turns every phone running it into a relay. Instead of a star with a server in the middle, the network is whatever set of phones happen to be within radio range of each other, and a message finds its way across them hop by hop. This page describes how OSHI's mesh actually works, with the real numbers, and where a phone mesh stops and a radio mesh begins.
The three layers of OSHI's mesh
1. Discovery: Bluetooth Low Energy
With OSHI open, your phone advertises a short identifier and scans for other OSHI phones. BLE is built for exactly this: it can advertise and scan for hours on a small fraction of the battery. Range is roughly 100 m with a clear line of sight and 10–30 m through walls and bodies. On iOS OSHI uses Apple's Multipeer Connectivity; on Android, BLE plus Wi-Fi Direct.
2. Transport: BLE for text, Wi-Fi Direct for everything else
Short encrypted text packets go over the BLE link directly. A photo, voice note or file would take minutes over BLE, so OSHI negotiates a Wi-Fi Direct link between the two phones for the transfer and drops it afterwards. No access point or hotspot is involved.
3. Routing: multi-hop, store-and-forward
Every packet carries a hop counter. If the recipient is not directly reachable, any OSHI phone that receives the packet stores it and forwards it to any new OSHI phone it meets, until the counter reaches five or the packet is delivered. Because the packet was encrypted for the recipient before it left the sender (X3DH + Double Ratchet, AES-256-GCM), a relay carries ciphertext it cannot open, and a seized relay phone reveals nothing about the conversation.
OSHI mesh in numbers
- Range per hop: roughly 100 m in the open, 10–30 m through walls (Bluetooth Low Energy).
- Hops: up to 5 phones can relay a message, store-and-forward, so a dense group can carry it 500 m or more.
- What travels over the mesh: text, photos, voice notes and small files (larger payloads move over Wi-Fi Direct).
- What relays see: only ciphertext. Every hop is end-to-end encrypted (X3DH + Double Ratchet, AES-256-GCM).
- Requirement: the other phones must be running OSHI with the app open; there is no infrastructure at all.
- When Internet returns: OSHI syncs automatically over the Internet, Tor or a covert channel.
What "up to five hops" means in real space
Hop range compounds only where there are relays. Five phones spaced 80 m apart in a park can carry a message 400 m. Five phones in one apartment carry it 400 m of nothing. In a crowd of thousands the practical limit is not hops but time: each store-and-forward step waits for a new phone to come into range, so delivery across a festival field takes seconds to minutes, not milliseconds. A mesh is a probability, not a wire.
Phone mesh vs radio mesh
| Phone mesh (OSHI, bitchat, Bridgefy) | LoRa radio mesh (Meshtastic) | |
|---|---|---|
| Hardware | Phones only | One LoRa radio per person |
| Range per hop | ~100 m open air | 2–5 km typical, more with elevation |
| Payload | Text, photos, voice notes, files (OSHI over Wi-Fi Direct) | Text ~200 bytes, GPS position |
| Battery | Phone battery; app must be open to relay | Days on a small pack; relays while you sleep |
| Who can join | Anyone who installs the app, in minutes | Anyone who owns and flashes a radio |
OSHI sits on the phone side, with an optional LoRa node that bridges the phone mesh to kilometre-scale links. Note that messages bridged over the LoRa link are not encrypted by that link, as our App Store listing states.
What the mesh cannot do
- Reach anyone beyond the chain of phones. When no OSHI phone is in range, the message waits.
- Relay from a phone that is locked in a pocket for hours. iOS in particular limits background Bluetooth; keep OSHI open on the phones that should relay.
- Carry voice or video calls over Bluetooth alone. Calls are end-to-end encrypted but need an IP path.
- Talk to other apps' meshes. OSHI, bitchat, Bridgefy and Briar each use their own protocol.
Other mesh messengers
bitchat relays up to seven hops over BLE only, with public-domain code. Bridgefy relays over BLE with a closed-source app. Briar syncs directly with contacts over Bluetooth, Wi-Fi and Tor. Meshtastic meshes LoRa radios. The best offline messenger page compares them in one table, and the mesh networking guide covers the theory.
Frequently asked questions
What is a mesh messenger?
An app in which every phone running it relays messages for the others over Bluetooth or Wi-Fi, so a message can travel across several phones with no server, Internet or cell tower. OSHI relays up to five hops with end-to-end encryption at every hop.
Can a relay phone read my message?
No. OSHI encrypts the message for the recipient before it leaves your phone (X3DH + Double Ratchet, AES-256-GCM). Relays store and forward ciphertext only.
How many hops does OSHI support?
Up to 5. bitchat and Meshtastic allow up to 7; Bridgefy does not publish its limit. Per hop, OSHI's Bluetooth range is roughly 100 m in the open.
Does the mesh drain my battery?
Bluetooth Low Energy scanning is designed to run for hours cheaply. Wi-Fi Direct, which costs more, is only switched on while a photo or file is transferring. Keeping the app open so it can relay is the main cost.
Keep exploring
Mesh networking explainedBluetooth mesh guideOSHI vs MeshtasticBest offline messenger apps comparedHow OSHI mesh worksOSHI FAQTry OSHI free
Encrypted messaging with no phone number, offline Bluetooth and Wi-Fi mesh, offline maps and on-device AI.