_ Open Source · MIT License

> Private messaging,
off the grid.

Encrypted peer-to-peer chat over Meshtastic LoRa mesh radios.
No internet. No servers. No accounts. Up to 15+ km range.

AES-256 Encrypted
No Internet Needed
15+ km Range
Written in Rust

Built for privacy.
Designed for simplicity.

Everything you need for secure off-grid communication, nothing you don't.

End-to-End Encryption

AES-256-GCM with keys derived locally via HKDF-SHA256. Your passphrase never leaves your device, never travels over the air.

No Internet Required

Messages travel over LoRa radio mesh — no WiFi, no cellular, no cloud. Works in remote areas, emergencies, and anywhere off-grid.

Long Range Mesh

LoRa reaches 15+ km over open terrain, 2–5 km in urban areas. Messages hop through other nodes to extend range even further.

Cross-Platform

Runs on Android, Linux (deb/rpm/AppImage), and macOS. Same app, same experience — connect from any device you have.

No Accounts, No Tracking

No sign-up. No phone number. No email. No analytics or telemetry. You and your peer agree on a passphrase — that's it.

Open Source

Fully open source under the MIT license. Audit the code, build it yourself, contribute improvements. Trust through transparency.

Three steps to secure chat.

No registration, no key exchange, no complicated setup.

1

Scan & Connect

Open MeshGuard, tap Scan for Devices, and select your Meshtastic radio from the list. Enter the BLE pairing PIN (default 123456) when prompted. MeshGuard connects via Bluetooth, reads the device configuration, and loads all nodes on the mesh.

Nearby Devices
SenseCAP T1000 -42 dBm
Heltec LoRa 32 -67 dBm
2

Enter Shared Passphrase

On the mesh network screen, tap the peer you want to chat with. Enter a passphrase you both agreed on beforehand — in person, via a phone call, or any secure channel. MeshGuard derives an identical AES-256 encryption key on both sides. No keys are ever exchanged over the air.

Secure Pairing
••••••••••••
Start Secure Chat
3

Chat Securely

You're connected. Messages are encrypted with AES-256-GCM before leaving your device, then encrypted again by the Meshtastic radio's channel PSK. Double encryption, zero trust in the network. You'll hear a notification sound and see a popup for every incoming message.

Node 4a8f · Encrypted
Hey, are you at the trailhead?
Yes! Just arrived. Signal is great here.
Perfect. Heading your way. ETA 20 min.
Your peer does the same on their end — scans, connects to their radio, taps your node, enters the same passphrase. Both sides derive identical keys independently.

Get MeshGuard.

Available for Android, Linux, and macOS. Free and open source.

Android

APK for Android 8.0+ (arm64, arm, x86_64)

Enable "Install from unknown sources" for direct APK

Linux

Ubuntu/Debian, Fedora/RHEL, or universal AppImage

deb: sudo dpkg -i meshguard_*.deb
rpm: sudo dnf install meshguard-*.rpm

macOS

Universal binary (Apple Silicon + Intel)

Open the DMG, drag MeshGuard to Applications

Build from source

git clone https://github.com/nemke82/meshguard.git
cd meshguard/ui && npm install && cd ..
cargo tauri dev

Requires Rust, Node.js 20+, and Tauri CLI. See the README for platform-specific dependencies.

Works with all Meshtastic radios

SenseCAP T1000 · LilyGO T-Beam · Heltec LoRa 32 · RAK WisBlock · Station G2 · and any device running Meshtastic firmware 2.x

Both radios need to be on the same Meshtastic channel and region frequency (e.g. EU868, US915).