The client is now being maintained by Joey (NV0N) in the Colorado Mesh repo.
A cross-platform Meshtastic desktop client for Mac, Linux, and Windows.
Connect to your Meshtastic devices over Bluetooth, USB Serial, or WiFi — no python, no phone required.
Originally ported from Joey's (NV0N) Meshtastic Mac Client and the Denver Mesh community. This is a full rewrite in Electron + React + TypeScript to support all platforms.
Warning
This is an early release. A lot of things might be buggy. This may or may not be updated over the coming days/weeks. So far it has only been tested on a Mac with a T-Deck in Bluetooth Pairing Mode.
- Node.js 20+ (LTS recommended — download here)
- npm 9+ (included with Node.js)
- Build tools for compiling the native SQLite module:
- Mac: Xcode Command Line Tools — run
xcode-select --install - Linux:
sudo apt install build-essential python3(Debian/Ubuntu) - Windows: Visual Studio Build Tools with the "Desktop development with C++" workload
- Mac: Xcode Command Line Tools — run
- A Meshtastic device (any hardware running Meshtastic firmware)
git clone https://github.com/Denver-Mesh/meshtastic-client
cd meshtastic-client
npm install
npm startNote:
npm installautomatically compiles the native SQLite module for Electron viaelectron-rebuild. If it fails, make sure Xcode Command Line Tools are installed.
On first Bluetooth connection, macOS will show a system popup requesting Bluetooth permission — you must accept. If you accidentally denied it, go to System Settings > Privacy & Security > Bluetooth and toggle Electastic on.
git clone https://github.com/Denver-Mesh/meshtastic-client
cd meshtastic-client
npm install
npm startBLE requires BlueZ installed. If Bluetooth doesn't work, try launching with --enable-features=WebBluetooth. For serial access, add yourself to the dialout group:
sudo usermod -a -G dialout $USER
# Then log out and back ingit clone https://github.com/Denver-Mesh/meshtastic-client
cd meshtastic-client
npm install
npm startShould work out of the box. If serial isn't detected, make sure you have the correct USB drivers for your device (e.g., CP210x or CH340 drivers).
# Build for your platform
npm run dist:mac # macOS → .dmg + .zip in release/
npm run dist:linux # Linux → .AppImage + .deb in release/
npm run dist:win # Windows → .exe installer in release/The distributable is output to the release/ directory.
- Chat — send/receive messages across channels with delivery indicators (ACK/NAK) and emoji reactions (tapback)
- Channel Management — create and configure channels with custom names and PSK encryption
- Node List — all discovered nodes with SNR, battery, GPS, last heard
- Node Detail Modal — click any node or sender name for full info
- Map — interactive OpenStreetMap with node positions
- Telemetry — battery voltage and signal quality charts
- Radio Config — region, modem preset, device role, GPS, power, Bluetooth, display settings
- Admin — reboot, shutdown, factory reset, trace route, node removal, DB export/import/clear
- Persistent Storage — messages and nodes saved locally via SQLite
MIT — see LICENSE
See CREDITS.md. Special thanks to Joey (NV0N) for the original Meshtastic Mac Client that this project aws based on, and the Denver Mesh community.