Skip to main content
Version: 2.8

Desktop App

The Meshtastic Desktop application shares its core codebase with Android via Kotlin Multiplatform. Most features work identically on Linux, macOS, and Windows.

Installation​

Linux​

  • Download the .deb or .AppImage package from the releases page
  • Or build from source using ./gradlew :desktopApp:run

macOS​

  • Download the .dmg package from releases
  • Or build from source

Windows​

  • Download the .msi installer from releases
  • Or build from source

Connecting Your Radio​

USB Serial (Primary)​

The most reliable connection method on Desktop:

  1. Connect your Meshtastic radio via USBUSB (Universal Serial Bus). The wired connection used to power a device, flash firmware onto it, and communicate with it over serial. cable.
  2. The app should detect the serial port automatically.
  3. If not detected, select the correct serial port from the Connect menu.

TCP/IP​

For network-connected radios:

  1. Enter the radio's IP address and port (default: 4403).
  2. Click Connect.

Bluetooth (BLE)​

Bluetooth Low Energy is supported on Desktop via the Kable library:

  1. Ensure your system has a Bluetooth adapter.
  2. The app scans for nearby Meshtastic radios automatically.
  3. Select your device from the Connect screen.

Feature Parity​

FeatureAndroidDesktopNotes
Messaging✓✓Full parity
Node List✓✓Full parity
Map✓◐Map tab exists on desktop, but the interactive map view is Android-only
Settings✓✓Full parity
Bluetooth (BLEBLE (Bluetooth Low Energy). The default wireless connection between a node and a phone client.)✓✓Via Kable on desktop
Firmware Update✓✓In-app USBUSB (Universal Serial Bus). The wired connection used to power a device, flash firmware onto it, and communicate with it over serial., BLEBLE (Bluetooth Low Energy). The default wireless connection between a node and a phone client., and Wi-Fi (ESP32ESP32A chipset of microcontroller made/designed by Espressif, used by a number of devices. Higher power usage than nRF52, but often cheaper and supports Wi-Fi if desired.) update all work the same as Android
Notifications✓✓Native OS notifications
Widgets✓✗Android-only
Android Auto✓✗Android-only — not available on Desktop or iOS
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.)

ShortcutAction
⌘/Ctrl+QQuit the application
⌘/Ctrl+,Open Settings
⌘/Ctrl+1Switch to Messages tab
⌘/Ctrl+2Switch to Nodes tab
⌘/Ctrl+3Switch to Map tab
⌘/Ctrl+4Switch to Connect tab
⌘/Ctrl+/Open About

Window & System Tray​

  • Window resizing — responsive layout adapts to window dimensions
  • System tray — minimize to system tray for background mesh operation
  • 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 — messages, new nodes, and low battery alerts. Access these from Settings → Notifications within the app.

Built-in Documentation Browser​

The Desktop app includes a built-in documentation browser for quick access to help content without leaving the application.

Docs browser with table of contents

The browser supports full-text search across all documentation:

Searching the docs browser

Individual doc pages render with full formatting:

A documentation page

Building from Source​

git clone https://github.com/meshtastic/Meshtastic-Android.git
cd Meshtastic-Android
./gradlew :desktopApp:run

Requirements:

  • JDK 21
  • No Android SDK required for desktop-only builds

Known Limitations​

  • The interactive map view is Android-only — the Map tab is present but does not render a map on desktop
  • Some Android-specific features (widgets, specific notification channels) are unavailable
  • Performance may vary on low-spec hardware running Compose Desktop
  • BLEBLE (Bluetooth Low Energy). The default wireless connection between a node and a phone client. bonding is not yet supported on desktop (pairing works without bonding)
  • Connections — connection methods overview
  • Firmware Updates — USBUSB (Universal Serial Bus). The wired connection used to power a device, flash firmware onto it, and communicate with it over serial., BLEBLE (Bluetooth Low Energy). The default wireless connection between a node and a phone client., and Wi-Fi update all work the same as on Android