Why OSHI Mesh: what it adds to Meshtastic and MeshCore

OSHI Mesh is not a new network you have to convince your friends to join. It is open-source LoRa firmware that stays on the Meshtastic network and reaches MeshCore through a bridge, and adds what those networks leave to the user: messages longer than one packet, proof that the whole message arrived, and messages that wait for someone who is offline.

Available todayCoded, in the next OSHI app update
OSHI Mesh firmware for 150 boards from Heltec, LILYGO, RAK, Seeed, Elecrow, B&Q and more, flashed from your browser
The open protocol, spec and reference code: oshi-mesh-protocol
The Meshtastic ↔ MeshCore bridge: oshi-meshcore-bridge (tested over the air on MeshCore radios)
The OSHI app speaking the protocol itself on a stock Meshtastic radio
The OSHI app on a MeshCore radio
A phone holding one radio of each bridging the two networks

What it adds, in one table

Stock MeshtasticMeshCoreOSHI Mesh
Longest messageAbout 230 bytes, one packetAbout 160-180 bytes, one packet11,648 bytes, split into 182-byte fragments and reassembled
Lost fragmentThe whole message is resentThe whole message is resentOnly the missing fragments are resent (64-bit bitmap)
Delivery confirmationAcknowledgement of a single direct packetAcknowledgement of a direct messageDELIVERED for the whole message, end to end, also when a relay held it
Recipient offlineDirect message dropped after a few tries; Store & Forward is text-only, on routers with PSRAMRoom servers keep posts for their members; the companion radio keeps what arrives while the phone is awayAny OSHI node parks the message in flash for 72 h and delivers it when the recipient is heard again
Uses the network already around youYes (it is that network)Yes (it is that network)Yes, both: stock Meshtastic nodes relay OSHI traffic without being able to read it; MeshCore through a bridge
Official apps still work on the radioYesYesYes: the Meshtastic apps, CLI and web client work with an OSHI Mesh node
Message encryptionChannel key (AES) or PKI direct messagesAES-128 channels, key agreement for direct messagesRadio encryption as on Meshtastic, plus OSHI end-to-end encryption between phones (X3DH, AES-256-GCM, Double Ratchet in the v3 session format)
Without any radioNoNoYes: the OSHI app meshes phones over Bluetooth and Wi-Fi Direct; the radio adds kilometres
Protocol licenceFirmware GPL-3.0Firmware MITFirmware GPL-3.0, protocol spec CC BY 4.0 and reference code MIT, so any project can adopt it

Meshtastic and MeshCore columns: their published documentation and firmware sources. OSHI Mesh: firmware source and protocol specification.

Why it can ride networks it does not own

Every OSHI message travels as ordinary packets on its own encrypted OSHI channel. A stock Meshtastic node cannot read that channel, so it relays the packets as it relays any traffic it cannot decrypt, including routers set to CORE_PORTNUMS_ONLY, which drop private-app traffic they can read. We tested it in simulation: two OSHI nodes out of range of each other, a stock node between them as client and then as router; the message crossed and the sender saw delivered. The limit: a node its owner set to relay only their own channels (LOCAL_ONLY, KNOWN_ONLY) will not carry it.

A radio listens to one network at a time, so MeshCore is reached through a bridge: one host, or one phone, holding a Meshtastic radio and a MeshCore radio, repeating OSHI frames between them. On MeshCore the frames ride a dedicated group channel, #oshi-bridge, which MeshCore repeaters flood like any channel message; MeshCore users who do not carry that channel never see it. Tested over the air on 23 September 2026: OSHI messages of 600 and 2,000 bytes crossed between two MeshCore radios (official MeshCore firmware 1.17.1), byte for byte, in both directions.

Where Meshtastic and MeshCore are ahead

Switch from Meshtastic in two minutes

  1. Open the flasher in Chrome or Edge on a computer and plug your node in over USB.
  2. Choose your board and tick “Keep my settings”. Only the firmware is replaced: your region, channels, keys and node list stay as they are.
  3. Keep using your Meshtastic app if you like: it works with an OSHI Mesh node, and your node stays on your Meshtastic mesh.
  4. Add the OSHI app for what Meshtastic does not do: long messages, delivery receipts, messages that wait for someone offline, end-to-end encryption between phones, and a phone mesh that works with no radio at all. You still reach people who stayed on the Meshtastic app: OSHI sends and receives plain Meshtastic text on the public channel.

Changed your mind? Flash stock Meshtastic back from its own flasher; your settings survive that too.

Every region in the world

OSHI Mesh keeps every LoRa band the Meshtastic firmware knows, with each country's frequencies, power and duty-cycle limits: Europe 433, 866, 868, 874 and 917 MHz; USA 915; Brazil 902; China 470; Japan, Korea and Taiwan 920; India 865; Nepal 865; Thailand 920; Malaysia 433 and 919; Singapore 923; the Philippines 433, 868 and 915; Kazakhstan 433 and 863; Russia 868; Ukraine 433 and 868; Australia and New Zealand 433, 865 and 915; and 2.4 GHz worldwide. Choose your region once, at first start; a new node transmits nothing until you do.

On amateur-radio bands (2 m, 70 cm, 1.25 m, licensed operators only) encryption is not allowed, so an OSHI Mesh node in licensed mode refuses to send OSHI messages and keeps working as a plain Meshtastic node.

Open source, and built to be copied

The firmware is open source (oshi-mesh-firmware, GPL-3.0) and compatible with Meshtastic and MeshCore. The protocol has its own repository, oshi-mesh-protocol: the specification under CC BY 4.0, reference code in C++ and Python under MIT, and test vectors checked on every commit. MIT means MeshCore, a Meshtastic fork, a gateway or a closed app can take the code as it is. The aim is one reliable message layer across the LoRa networks people already run, not another island.

Frequently asked questions

Do I lose my Meshtastic network if I flash OSHI Mesh?

No. Same radio settings, channels and keys; you keep talking to stock nodes and relaying their traffic, and the Meshtastic apps keep working. The flasher can also update a node while keeping its settings.

Can OSHI Mesh talk to MeshCore directly?

Not with one radio: MeshCore uses other radio settings and another packet format. It takes a bridge with one radio on each network, either the open-source bridge on a small computer or, in the next app update, a phone paired with both radios.

Do I need the OSHI app?

To send OSHI messages, yes. Anyone can implement the protocol from the public specification; the reference code is MIT.

What does it cost?

Nothing. The firmware, the protocol, the bridge and the app are free.