MeshCore (official companion app, Liam Cottle)
The most widely used companion app—and effectively the de facto standard—is the MeshCore app by community developer Liam Cottle. It is a cross-platform client for Android, iOS, macOS, Windows, and Linux that offers the full range of Mesh messaging features (MeshCore). Technically, the app is built using Flutter—the older web client has been replaced by the new cross-platform Flutter app, which offers a consistent user experience on Android, iOS, and the web (GitHub). The source code for the client app itself is proprietary; the underlying firmware and protocol project, however, is licensed under the MIT License.
In terms of connectivity, the app now covers the full spectrum. Version 1.37, released in January 2026, introduced separate BLE, USB, and Wi-Fi tabs on the Connect screen, as well as initial USB support on Android (LetsMesh Forum). Version 1.38 added a real-time noise floor viewer, the ability to select which contact types are automatically added, region-specific channel messages via local repeaters, and a notification when the contact storage is full (LetsMesh Forum). In addition, there are map features, an antenna coverage tool, a line-of-sight tool, telemetry analysis, and a multilingual interface, including German.
Financially, the app follows a freemium model. The native Android and iOS client uses a freemium model in which the wait time for remote management of repeaters and room servers via RF can be unlocked for a small fee (GitHub). Core features such as direct messages, channels, the map, repeater pairing, and ads remain free. A known issue in practice: On iOS, users have repeatedly reported unstable Bluetooth connections with disconnects lasting hours that go unnoticed—an issue that the Flutter abstraction layer has not yet fully resolved.
MeshOS (Andy Kirby)
MeshOS is, first and foremost, standalone firmware for the Lilygo devices T-Deck and T-Lora-Pager. For a one-time license fee of £8 per device, you get an onboarding wizard, a speech bubble UI with delivery status, color-coded usernames, emoji support, DMs, and channels—just like in a messaging app—as well as worldwide offline maps (MeshCore). In addition, the project has for some time offered a smartphone app of the same name, which is currently available for Android. According to the App Store page, an iOS version is in the works.
What sets the MeshOS app apart is that it not only manages MeshOS devices but also serves as a full-fledged companion client for classic MeshCore hardware. With the MeshOS app, you can uniformly manage MeshCore companions and MeshOS devices such as T-Deck or T-Pager and send messages via BLE, Wi-Fi, or serial companions. The app brings the design concept of the MeshOS embedded firmware to the smartphone and offers a map with a multibyte path viewer that allows you to track the actual paths of adverts and messages as soon as multibyte repeaters join the network. A signal bar display similar to that of a cell phone shows MeshCore signals at a glance, making it possible to determine range without sending test messages (Meshcore). Politically important for off-grid users: The Android version does not depend on Google services and can be sideloaded onto many devices, including the Unihertz Titan and other keyboard smartphones (Meshcore).
Development is active. MeshOS v0.4.3 introduced multi-transport support via Bluetooth, Wi-Fi TCP, and USB Serial; a Wi-Fi network scanner for automatic device detection; USB Serial connectivity to Companion USB firmware at 115200 baud on Android; transport-specific UI icons; disconnect confirmation, persistent Wi-Fi settings, Room Chat controls for setting and resetting paths, and an update flow adapted for the App Store on iOS (GitHub). The APK is distributed directly via the Releases repository on GitHub. The app is proprietary; the source code is not open-source.
MeshCore One (MC1, Avi0n)
MeshCore One—MC1 for short—is the newest and, at the same time, surprisingly ambitious entry in this comparison. The client is developed by GitHub user Avi0n, the same author who also maintains the older iOS client PocketMesh. MC1 is a native iOS and iPadOS client written in Swift, explicitly labeled as “mostly AI-built,” licensed under GPLv3 (the underlying Swift MeshCore library is licensed under MIT), and requires iOS 18 or later. MC1 can be installed via a TestFlight beta or using unsigned IPA files from the GitHub releases.
What sets MC1 apart, above all, is its range of features in the areas of network diagnostics and remote management, which are closer to power-user tools than a purely messaging-focused approach. At its messaging core, MC1 offers direct messages with delivery status and flood retry, public and private channels, as well as hashtag channels with deep links, Room server connections in guest or participant mode, tracking of heard repeats, emoji reactions, path-hop display, link previews with inline images, @mentions, conversation-based notification levels, and the ability to block contacts or channel senders. Contact management includes automatic mesh discovery, QR code and advert sharing, favorites, and a repeater ping with latency and SNR measurement.
MC1 really shines with its included network tools: Trace Path allows routing via specific repeaters and saving discovered paths; Line of Sight provides terrain analysis including the Fresnel zone and RF parameters; the RX-Log records packet reception in real time; the Noise Floor Monitor displays a live dBm graph with signal quality statistics; finally, a CLI terminal provides remote command-line access to repeaters and room servers. In addition, there are telemetry history charts, full remote configuration of repeaters and room servers (radio parameters, behavior, identity, reboot), node status including battery level, uptime, and repeater neighbors, as well as separate admin and guest authentication. On the companion app side, MC1 supports BLE and Wi-Fi pairing, radio presets, and manual tuning of frequency, TX power, spreading factor, and bandwidth, as well as battery monitoring with OCV curves. Push notifications with quick reply, location-sharing controls, and configuration import/export round out the picture.
Important note: The screenshots in the README show chats, conversations, contacts, a map, settings, line-of-sight, LoS analysis, and the RX log—suggesting a level of functional maturity, even though the first commit was made as recently as December 2025. At the same time, you should take the author’s note about the AI code seriously: There is no publicly available independent third-party security review, and for security-critical features such as key handling and end-to-end encryption, this is a point that should be carefully considered in an off-grid emergency context. On the plus side is the native Swift stack, which interacts with CoreBluetooth more directly than a Flutter plugin layer and thus potentially circumvents the official app’s notorious iOS disconnect issue.
Feature Comparison at a Glance
| Feature | MeshCore (Cottle) | MeshOS (Kirby) | MeshCore One (Avi0n) |
|---|---|---|---|
| Platforms | iOS, Android, macOS, Windows, Linux, Web | Android (iOS coming soon) | iOS 18+, iPadOS 18+ |
| Technology | Flutter | Native (Android), Flutter-like | Native Swift |
| License | proprietary, freemium | proprietary, £8 per device | GPLv3 (open source) |
| Installation | App Store / Play Store | Play Store / sideloaded APK | TestFlight / unsigned IPA |
| Transport | BLE, USB, Wi-Fi/TCP | BLE, Wi-Fi TCP, USB Serial | BLE, Wi-Fi |
| DMs, Channels, Room Server | ✓ | ✓ | ✓ (including hashtag deep links, Guest/Participant mode) |
| Emoji reactions, @mentions, blocking | Partially | Partially | ✓ (explicitly listed) |
| Map with locations | ✓ (Slippy Tile, Coverage, LoS) | ✓ (Multibyte Path Viewer, Signal Bars) | ✓ (Standard/Satellite/Hybrid) |
| Line-of-Sight Analysis | ✓ (Basic Tool) | Partially | ✓ incl. Fresnel zone and RF parameters |
| Trace Path / Path Storage | Partially | ✓ (Path Viewer) | ✓ (can be saved) |
| RX Log / Live Packet Recording | No (noise floor only) | Partially | ✓ |
| Noise Floor Monitor | ✓ (since v1.38) | ✓ | ✓ (Live Chart) |
| CLI terminal for repeaters | indirectly via remote management | ✓ | ✓ directly in the app |
| Remote repeater configuration | ✓ (Wait time can be bypassed with a purchase) | ✓ | ✓ (Radio/Behavior/Identity/Reboot) |
| Telemetry History Charts | Partially | ✓ | ✓ |
| Battery monitoring with OCV curve | No | Partially | ✓ |
| Push notifications with quick reply | Partially | Partially | ✓ |
| Config Import/Export | ✓ | ✓ | ✓ |
| Google services required | Yes (Play Store) | No (sideloading possible) | No (Apple ecosystem) |
| Maturity | Production, weekly releases | Active, v0.4.3 | Experimental, since Dec 2025 |
| German localization | ✓ | Partially | currently in English |
Differences at a Glance
The official MeshCore app is the all-around solution with the broadest platform support and the most active development—if you want to get started quickly or use devices running multiple operating systems, this is practically your only option. MeshOS is the choice if you’re running a standalone T-Deck or T-Pager and want a consistent, Google-free smartphone companion; it’s also the only app with consistently visible multibyte path visualization. MeshCore One caters to the power-user and diagnostics niche on iOS: RX logs, true Fresnel zone analysis, CLI access to repeaters, and a native Bluetooth stack make the app particularly appealing to infrastructure operators and iOS users experiencing connection issues—at the cost of young, AI-generated code without a public audit.
Other Alternatives
In addition to the three apps discussed, it’s worth taking a look at the growing community scene. Meshcore Open by zjs81 is an open-source Flutter client for MeshCore LoRa Mesh devices that communicates via Bluetooth Low Energy and offers peer-to-peer messaging, public channels, and mesh networking, with support for 15 languages including German, configurable notifications for messages, channels, and node ads, a choice of battery chemistry between NMC, LiFePO4, and LiPo, automatic message retry with configurable path clearing, and adjustable transmit power from 10 to 30 dBm (GitHub). For desktop users, PocketMesh (Avi0n, iOS/iPadOS—the predecessor to MC1), and the Colorado-Mesh client, a cross-platform Electron desktop client for Meshtastic and MeshCore on macOS, Linux, and Windows with BLE, USB-serial, Wi-Fi/TCP, MQTT, local SQLite history, routing diagnostics, and keyboard-centric workflows (GitHub). The meshcore.nz web client by Liam Cottle completely replaces the smartphone app in the browser, allowing users to send messages, view mapped nodes, and access the full range of features; it is optimally supported by Chrome and Edge, particularly for Bluetooth and USB connectivity (RegionMesh). For coverage measurements, MeshMapper is a specialized Android wardriving app that sends GPS-tagged pings and uploads signal strengths to a community database. If you want to use the T-Deck or the T-Pager entirely without a smartphone, you can choose between Scott’s official firmware—with an optional unlock for advanced features such as deeper map zoom levels and remote server administration—and MeshOS by Andy Kirby—both are fully functional mesh clients (NodakMesh).
Recommendation Based on User Profile
For getting started and productive day-to-day use, the official MeshCore app remains the practical choice—weekly releases, App Store distribution, and the largest community support this. Those running a T-Deck or T-Pager standalone will also benefit from MeshOS, both as firmware on the device and via the accompanying Android app. iOS users who are struggling with the Bluetooth issues of the official app or who want to test the next-generation diagnostic tools will find MeshCore One to be the most exciting native client currently available—with the caveat that it is a young project developed using AI. And anyone who prefers full open-source access without freemium restrictions should consider Meshcore Open by zjs81 as a top contender.
Sources
- MeshCore official project page (UK) — https://meshcore.io/
- MeshCore Downloads / Overview — https://meshcore.io/
- MeshCore app in the Apple App Store — https://apps.apple.com/us/app/meshcore/id6742354151
- MeshCore app on the Google Play Store — https://play.google.com/store/apps/details?id=com.liamcottle.meshcore.android
- MeshCore Docs / FAQ (Freemium model) — https://docs.meshcore.io/faq/ and https://github.com/meshcore-dev/MeshCore/blob/main/docs/faq.md
- MeshCore Firmware Main Repo — https://github.com/meshcore-dev/MeshCore
- liamcottle/meshcore-web (Legacy Web Client) — https://github.com/liamcottle/meshcore-web
- Release Notes for MeshCore App v1.37.0 / v1.38.0 — https://forum.letsmesh.net/t/meshcore-app-v1-37-0-for-ios-android-and-web/199 and https://forum.letsmesh.net/t/meshcore-app-v1-38-0-for-ios-android-and-web/227
- MeshOS Product Page and License — meshcore.co.uk/meshos.html and store.meshcore.co.uk/products/meshos-for-android-license
- MeshOS Releases (andymux) — https://github.com/andymux/meshos-releases/releases
- MeshCore One Repository with README and Feature List — https://github.com/Avi0n/MeshCoreOne
- MeshCore One TestFlight Beta — https://testflight.apple.com/join/YjGNDTaE
- Author Profile Avi0n (also PocketMesh) — https://github.com/Avi0n
- Meshcore Open (zjs81, FOSS Flutter client) — https://github.com/zjs81/meshcore-open
- awesome-meshcore (curated list of resources) — https://github.com/samuk/awesome-meshcore
- Colorado-Mesh/mesh-client (desktop) — https://github.com/Colorado-Mesh/mesh-client
- MeshCore Web Interface (regionmesh.com) — https://www.regionmesh.com/meshcore-web-interface/
- NodakMesh “MeshCore Explained” (App Ecosystem Classification) — https://nodakmesh.org/blog/meshcore-how-it-works-guide
- OpenELAB Meshtastic vs. MeshCore (Licensing Overview) — https://openelab.io/blogs/getting-started/meshtastic-or-meshcore-it-depends-on-your-use-case
- CNX Software MeshCore Article — https://www.cnx-software.com/2025/07/19/meshcore-lightweight-alternative-to-meshtastic-for-lora-based-off-grid-messaging/