mesh-client
Client StableCross-platform Electron desktop client for Meshtastic, MeshCore and Reticulum (LXMF) on macOS, Linux and Windows. Supports BLE, USB serial, Wi-Fi/TCP and MQTT; keeps local SQLite history, routing diagnostics, 16-language UI, TAK CoT gateway, PKI remote admin, mapping, telemetry and automated CI releases.
- Maintainer
- Colorado Mesh ↗
- Kind
- Clients
- Maturity
- Stable
- Language
- TypeScript
- Licensing
- Open source
- Latest version
- 5.24.0 · 2026-07-19
- License
- MIT
- Platforms
- Linux macOS Windows
Screenshots
Capabilities
Interfaces
- ✓ GUI
Connections
- ✓ BLE
- ✓ Serial
- ✓ USB
- ✓ TCP
- ✓ MQTT
Capabilities
- ✓ Messaging
- ✓ Contacts
- ✓ Channels
- ✓ Node configuration
- ✓ Remote administration
- ✓ Monitoring
- ✓ Telemetry
- ✓ Packet analysis
- ✓ Mapping
- ✓ Firmware update
- ✓ Automation
- ✓ Notifications
- ✓ Bridging
- ✓ Key management
Node role
- ✓ Companion
- ✓ Repeater
- ✓ Room server
Install
Releases
from GitHub · updated 2026-07-19v5.24.0 # Latest 2 days ago · 2026-07-19 00:29 UTC
[v5.24.0] - 2026-07-18
Highlights
Reticulum grows into a full comms suite this release: a new Relay Chat (RRC) IRC-style multi-hub client, a Remote tab for
rnshshells andrncpfile transfer, watch-folder Nomad hosting with an upgraded Micron renderer, identity slots, propagation-node rename/delete, and much faster Peers at large path-table sizes. A broad protocol-parity pass adds QR generation/scan,lxm://deep links, GPX export, LoRa signal metering, Meshtastic module event history, and per-send MeshCore flood-scope presets (now behind a split Send button). Messaging is more resilient (one-click location share, chat outbox drain on reconnect, extended reconnect budgets, humanized send-NAK errors), and cold-start BLE is serialized so an RNode connects before the RF radios. MeshCore MQTT now steers non-Colorado users to LetsMesh by default.What's Changed
Features
- Reticulum Remote tab (rnsh + rncp) — New Remote tab (Shell / Transfer / Saved / Settings) with an xterm shell, file send/fetch/listen, saved address book + inbound policy, and Chat DM
rncpcontrols; trust-boundary hardening (picker-backed save dirs, size/offer caps, allow/block lists) (#692, implements #688, #689) - Reticulum Relay Chat (RRC) — IRC-style multi-pane client with up to 8 concurrent hub sessions, Favourites/Discovered hub picker, rooms + nicklist,
/-command router,@mentionunread badges + tray/toast notifications, and SQLite-persisted room history with retention pruning (#680, fixes #648) - Watch-folder Nomad hosting + Micron rendering — Host bounded static Nomad Network sites from a watched folder with auto-restore and filesystem watching; vendored RFnexus Micron parser adds table/anchor/partial support (#683, closes #613)
- Protocol parity tools — Meshtastic module event history, LoRa signal metering, GPX export, MeshCore MCU temperature parsing, per-send flood-scope overrides, QR generation + camera/file ingest, custom
lxm://deep links, cross-platform camera permissions, and Reticulum identity slots with restart-based switching + contact fingerprint verification (9890611e, fixes #218, #477) - MeshCore flood-scope presets — User-managed scope list (seeded from the radio hashtag, cap 20) replacing Colorado/Denver hardcodes; scope now lives behind a chevron split-Send menu instead of an always-visible select (#692)
- Messaging resilience — One-click chat location share (OSM text + optional Meshtastic waypoint) with outbox enqueue on failure, chat outbox drain on RF reconnect, extended BLE/serial reconnect budgets (8 attempts) with transport-aware "reconnecting N/M" banner, conservative/aggressive Store & Forward catch-up setting, and a hung-only Reticulum sidecar health watchdog (#692)
- Reticulum propagation node management — Rename/delete remote propagation nodes with confirm dialog and persistence guards (#679)
- Scale Reticulum Peers — Incremental
peers_updatedpatches, path-table TTL, forced?refresh=1dumps, batched Map updates, and retention parity (hard 100k ceiling / 50k user cap) keep the UI responsive at ~50k peers ([#677](https://github.com/Colorado-Mesh/mesh-client/pull/677 …
- Reticulum Remote tab (rnsh + rncp) — New Remote tab (Shell / Transfer / Saved / Settings) with an xterm shell, file send/fetch/listen, saved address book + inbound policy, and Chat DM
v5.23.0 # 6 days ago · 2026-07-14 14:48 UTC
[v5.23.0] - 2026-07-14
Important: Reticulum contacts cleanup (one-time)
If you use Reticulum and see non-contacts (peers / announce-only destinations) listed under Contacts, that comes from an earlier bug that promoted announces into the contact list. This release stops that pollution going forward, but existing bad rows are not removed automatically.
One-time fix: App tab → Danger Zone (Reticulum) → Clear all LXMF contacts.
Peers stay on the Peers tab with their names; chat history is kept. Real contacts return when you message someone or use Save as contact.
Highlights
Reticulum gets much more reliable LXMF DMs (delivery announces, Direct/path-aware sends, saturation hardening), a safer contacts model, faster Peers at large path-table sizes, and interface UX fixes (TCP/UDP/I2P auto-restart, copy LXMF hash, mic for voice clips). Official macOS builds can now be Developer ID signed and notarized. Chat hop badges for MeshCore and Meshtastic are fixed, packaging/smoke and long-session stability are hardened, and several flasher / i18n / BT PIN nits land with it.
What's Changed
Features
- Apple code signing and notarization — Official macOS artifacts can be Developer ID signed and notarized when repo secrets are set; fork/local builds still skip gracefully (#657)
- Reticulum interfaces and chat UX — Auto-restart stack after TCP/UDP/I2P/pipe (and host/port) interface changes; copy full LXMF hash from Network identity; microphone permission path for LXMF voice clips; clearer DM egress badges; DM pills promoted into the main chat row; quieter propagation sync (#674)
- Reticulum DM path reachability — Active DM destination probe / reachability indicator when the stack is live (#672)
Bug Fixes
- Reticulum LXMF delivery and inbound receive — Emit LXMF delivery announces, register inbound destinations, prefer Direct/path-aware signed sends, mark stale queued rows failed (#672)
- Reticulum contacts vs announces — Named announces no longer create contacts; App Danger Zone can clear all LXMF contacts while keeping Peers and chat (#672)
- Reticulum under transport saturation — Path-request backoff, diagnostics for link/timeouts/
share_instanceconflicts, stuck Sending → failed, propagation-node Chat notice (#669) - Reticulum identity / Peers / Nomad — Restore Reticulum tab on launch; header shows Network display name; faster Peers at large tables and after announces; JSON/msgpack peer name parsing; stack restart race fixes (#672, #666, #667)
- Reticulum chat polish — Unread badges clear after reading DMs; hop count restoration; identity/announce defaults (#674, #667)
- Chat hop badges (MeshCore + Meshtastic) — Companion
pathLen→ hop count; wider raw-log correlation fallback; MeshtasticviaMqtt/hopStart===0aligned with node/diagnostics semantics (#670) - RNode flasher resilience — KISS command timeouts, ESP32/nRF52 stall watchdogs, BT pairing timeout, humanized errors (#664, #665)
- Packaging / CI smoke — ZIP+DMG verification (mount before validate), AppImage extract cwd, no raw
.appCI uploads, CodeQ …
v5.22.0 # 9 days ago · 2026-07-11 15:01 UTC
[v5.22.0] - 2026-07-11
Highlights
This release adds Reticulum RMAP v4 discovery (publish, per-interface controls, and a local discovery map tab), unified Reticulum identity import, and a much more scannable Sniffer tab across all protocols. It also fixes Meshtastic MQTT messages landing on the wrong channel tab, hardens triple-protocol BLE coexistence when Reticulum uses a Noble RNode alongside Meshtastic/MeshCore, and migrates the Colorado Mesh MQTT preset to port 443.
What's Changed
Features
- Reticulum RMAP v4 discovery — Publish enabled interfaces to RMAP v4 using App GPS coordinates; per-interface discoverable toggles for RNode, KISS, BLE peer, I2P, UDP, and pipe; Connection tab status strip and sync badges; default hub sync with skip/repair/add; new Map tab with local discovery map (Leaflet), filters, path-table reachability, and link to rmap.world (#649)
- Reticulum identity unification and import — Single unified identity apply path in the sidecar; backup JSON and private key import (hex/base64/file) on the Network tab with replace confirmation (#651)
- Sniffer tab scanability — MeshCore on-air hop chains and path display; Meshtastic collapsed hops and transport/type badges; sortable columns, quick-filter chips, relative timestamps, and hover tooltips across all protocols (#643)
Bug Fixes
- Meshtastic MQTT channel routing — Prefer MQTT topic channel name over sender-local
MeshPacket.channelslot for inbound text; add@indexhint in Connection panel for MQTT-only setups (#644) - Triple-protocol BLE coexistence — Suspend Noble for Reticulum RNode pairing on macOS/Windows; paired yield lifecycle so the scan mutex releases on connect, grace expiry, or sidecar stop; reconnect hardening and quieter logs when Meshtastic/MeshCore resume after yield (#645, #653, #655)
- Colorado Mesh MQTT preset — Align MeshCore broker preset to TLS WebSocket on port 443; migrate saved settings off legacy port 1883 (#647, #651)
- Reticulum discovery map resilience — Cap discovery rows (2,000) with 7-day TTL eviction; preserve last-good data on fetch failure; clear stores on disconnect; partial-failure toasts for RMAP apply/disable (#650)
- Meshtastic TCP connect — 20s timeout aligned with other transports; disconnect orphaned sockets on failed connect (#644)
- Channel PSK validation — Reject keys shorter than 16 bytes; accept 1-byte default PSK and bare decrypt-only lengths consistent with MQTT manager (#646, #651)
- Reticulum diagnostics — Omit expected SharedInstanceServer runtime note from actionable faults (#652)
- I2P peer validation — Accept official 60-char testnet
.b32.i2paddresses (#649) - MeshCore waiting-messages poll — Gate idle 5-minute safety poll; treat silent sync timeouts as empty queue (#655)
- Connection banner accessibility — Status region labels, decorative reconnect pulse layer, improved contrast (#655)
Othe
…
Project signals
- GitHub stars
- 75
- Forks
- 9
- Watchers
- 1
- Open issues
- 7
- Contributors
- 7
- Release downloads
- 18,461
- Latest downloads
- 327
- Source available
- Yes
- Releases available
- Yes
- Signed releases
- No
- CI builds
- Yes
- Documentation
- Yes
- README lists screenshots in docs/images/; no local screenshots downloaded yet.
- Multi-protocol client; supports Meshtastic, MeshCore and Reticulum via an AGPL Rust sidecar.