--- title: Desktop App parent: User Guide nav_order: 14 last_updated: 2026-06-11 description: Install and use the Meshtastic Desktop app on Linux, macOS, and Windows — connections, feature parity, and keyboard shortcuts. aliases: - desktop - linux - macos - windows - jvm --- # 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 USB 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](https://github.com/JuulLabs/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 | Feature | Android | Desktop | Белешке | | -------------------------------------------- | ------- | ------- | ---------------------------------------------- | | Messaging | ✓ | ✓ | Full parity | | Node List | ✓ | ✓ | Full parity | | Мапа | ✓ | ✓ | Full parity | | Подешавања | ✓ | ✓ | Full parity | | Bluetooth (BLE) | ✓ | ✓ | Via Kable on desktop | | Firmware Update OTA | ✓ | ✗ | Use web flasher | | 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](app-functions). ## UI Differences The Desktop app uses the same Compose Multiplatform UI with adaptations for larger screens and desktop interaction. ### Keyboard Shortcuts | Shortcut | Action | | ------------------- | ---------------------- | | **⌘Q** / **Ctrl+Q** | Quit the application | | **⌘,** / **Ctrl+,** | Отвори подешавања | | **⌘1** / **Ctrl+1** | Switch to Messages tab | | **⌘2** / **Ctrl+2** | Switch to Nodes tab | | **⌘3** / **Ctrl+3** | Switch to Map tab | | **⌘4** / **Ctrl+4** | Switch to Connect tab | ### 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](../../assets/screenshots/docs-browser_toc.png) The browser supports full-text search across all documentation: ![Searching the docs browser](../../assets/screenshots/docs-browser_search.png) Individual doc pages render with full formatting: ![A documentation page](../../assets/screenshots/docs-browser_page.png) ## Building from Source ```bash git clone https://github.com/meshtastic/Meshtastic-Android.git cd Meshtastic-Android git submodule update --init ./gradlew :desktopApp:run ``` Requirements: - JDK 21 - No Android SDK required for desktop-only builds ## Known Limitations - No OTA firmware updates (use web flasher) - 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](connections) — connection methods overview - [Firmware Updates](firmware) — use the [Web Flasher](https://flasher.meshtastic.org) for desktop firmware updates ---