6.6 KiB
title, parent, nav_order, last_updated, description, aliases
| title | parent | nav_order | last_updated | description | aliases | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Desktop App | User Guide | 14 | 2026-09-11 | Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts. |
|
Desktop App
This page covers installing the Meshtastic desktop app, connecting a radio, and how it differs from Android. The desktop app shares its core codebase with Android via Kotlin Multiplatform, so most features work identically across Linux, macOS, and Windows.
Installation
Linux
- Download the
.deb,.rpm, or.AppImagepackage from the releases page - Or install from Flathub:
flatpak install flathub org.meshtastic.MeshtasticDesktop - Or build from source using
./gradlew :desktopApp:run
macOS
- Download the
.dmgpackage from the releases page - Or build from source
Windows
- Download the
.msior.exeinstaller from the releases page - Or build from source
Connecting Your Radio
USB Serial (Primary)
The most reliable connection method on desktop:
Connect your radio via USB. The app detects the serial port automatically; if it doesn't, select the port from the Connect menu.
TCP/IP
For network-connected radios:
- Enter the radio's IP address and port (default: 4403).
- Click Connect.
Bluetooth (BLE)
Bluetooth Low Energy is supported on desktop via the Kable library:
- Ensure your system has a Bluetooth adapter. The app scans for nearby Meshtastic radios automatically.
- Select your radio from the Connect screen.
Feature Parity
| Feature | Android | Desktop | Notes |
|---|---|---|---|
| Messaging | ✓ | ✓ | Full parity |
| Node List | ✓ | ✓ | Full parity |
| Map | ✓ | ✓ | Interactive MapLibre map, with base map and overlay pickers and custom tile sources. Offline terrain (hillshade and contours) can be downloaded; offline base-map packs and local .mbtiles archives cannot |
Map layers (.kml/.kmz/GeoJSON) |
✓ | ✓ | Same layer store and sheet as Android; imported files draw on the desktop map |
| Site Planner | ✓ | ✓* | *Opens in your browser on desktop; the estimate is not drawn on the desktop map |
| Settings | ✓ | ✓ | Full parity |
| Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop |
| Firmware Update | ✓ | ✓ | In-app USB, BLE, and Wi-Fi (ESP32) update work the same as Android. The USB maintenance flow — nRF52/RP2040 factory erase and bootloader upgrade — is Android-only |
| Notifications | ✓ | ✓ | Native OS notifications |
| Widgets | ✓ | ✗ | Android-only |
| AI Assistant (Chirpy) | ✓* | ✗ | Google flavor Android only |
| App Functions (system AI) | ✓† | ✗ | Google flavor Android only |
*Chirpy AI requires Android 14+ on Google flavor builds with supported hardware.
†App Functions exposes app actions to the Android system AI on Google flavor builds. See App Functions.
UI Differences
The desktop app uses the same Compose Multiplatform UI with adaptations for larger screens and desktop interaction.
Keyboard Shortcuts
Shortcuts use ⌘ (Command) on macOS and Ctrl on Windows and Linux. (The Super / Windows key is not bound.)
| Shortcut | Action |
|---|---|
| ⌘/Ctrl+Q | Quit the app |
| ⌘/Ctrl+, | Open Settings |
| ⌘/Ctrl+1 | Switch to Messages tab |
| ⌘/Ctrl+2 | Switch to Nodes tab |
| ⌘/Ctrl+3 | Switch to Map tab |
| ⌘/Ctrl+4 | Switch to Connect tab |
| ⌘/Ctrl+/ | Open About |
Window & System Tray
- Window resizing — responsive layout adapts to window dimensions
- System tray — closing the window minimizes to the system tray for background mesh operation. On a desktop environment with no tray, there is nowhere to minimize to, so closing quits the app instead
- Tray menu — right-click the tray icon to show window or quit
- Mouse interaction — hover states and standard desktop navigation
Notification Preferences
The desktop app provides in-app toggles for controlling which notifications are shown. Find them in the App Notifications section of the Settings screen: Direct message notifications, New node notifications, and Low battery notifications.
Built-in Documentation Browser
The desktop app includes a built-in documentation browser for quick access to help content without leaving the app.
The browser supports full-text search across all documentation:
Individual doc pages render with full formatting:
Building from Source
git clone https://github.com/meshtastic/Meshtastic-Android.git
cd Meshtastic-Android
./gradlew :desktopApp:run
Requirements:
- JDK 25 (Gradle can provision the toolchain itself via foojay)
- No Android SDK required for desktop-only builds
Known Limitations
- Offline base-map downloads and local
.mbtilesarchives are not available on desktop. Offline terrain is — see Map & Waypoints. .kml/.kmz/GeoJSON layer import works — see Map & Waypoints. Site Planner opens in your browser rather than in the app; to bring its coverage estimate onto the map, click the transmitter pin in the browser and use the planner's GeoJSON export, then add the file as a layer — not the KML export, which is a ground-overlay image this map cannot draw. Custom network tile sources work too — see Map & Waypoints- The USB maintenance flow — nRF52/RP2040 factory erase and bootloader upgrade — is Android-only, and the desktop app does not offer it. Use the Web Flasher instead
- Some Android-specific features (widgets, specific notification channels) are unavailable
- Performance may vary on low-spec hardware running Compose Desktop
- BLE bonding is not yet supported on desktop (pairing works without bonding)
Related Topics
- Connections — connection methods overview
- Firmware Updates — in-app USB, BLE, and Wi-Fi update all work the same as on Android
- Map & Waypoints — base maps, layers, custom tile sources, and what the desktop map does not do


