| Crates.io | meshchat |
| lib.rs | meshchat |
| version | 0.2.2 |
| created_at | 2025-11-25 14:15:26.793405+00 |
| updated_at | 2026-01-01 16:00:50.875804+00 |
| description | A cross platform Iced Gui application for chatting on the Meshtastic LoRa MESH via connected Bluetooth LE radios |
| homepage | |
| repository | https://github.com/andrewdavidmackenzie/meshchat |
| max_upload_size | |
| id | 1949833 |
| size | 1,041,813 |
Meshchat is an Iced cross-platform GUI application to interact with Meshtastic LoRa radios:
On the left, the Device view, once you have connected to a BLE Radio, shows configured channels, a list of nodes found and nodes you have marked as a favorite.
On the right, the Channel view, Once you have clicked on a channel or a node, shows you the ongoing chat messages with it, with your messages on the right and others on the left.
|
|
*** WARNING: Alpha quality, and few automated tests! ***
Since the app doesn't try to change the configuration of any attached radio, at most it tries to send messages, the risk of "damage" from any bug is kind of low.
Here is the list of Known Bugs
My thinking was to keep the app as simple to look at and use as possible.
I've made some unusual (and questionable) UI choices even in the minimal UI I have. They just kind of materialized as I went, and I don't claim it's great...If people can use it easily, great. If not, help is welcome to improve it.
Here are some of the newer features I have added in recent releases:
This release includes:
I have enabled GitHub discussions, so if you want to talk about things, jump in there.
In particular, I am interested in hearing users thoughts about storing chat history locally
Meshchat uses the Iced, Meshtastic and other rust crates that are all cross-platform, so it should run on
many Operating Systems, including macOS, Windows and Linux.
So far, it has been confirmed to run correctly on:
If you successfully run it on other OS or variants of the above, drop me a message in the repo's discussions with some details, and I will add to a list of known working OS.
Tests are run in GitHub actions on macos-15, ubuntu-latest and window-latest. Coverage is still low, but now at least I am measuring it and working to increase it gradually.
It should work with all Meshtastic radios that are supported by the Meshtastic rust crate.
So far, I have tested with a LillyGo T-ECHO and a T-Deck Pro
Again, if you get it working successfully with other radios, drop me a message in discussions and I will create some list of known working radios.
After a bit of optimizing I did, the release binary size is around 5.6 MBytes
Each release contains installers for macOS, Linux and Windows that you can download and run from Latest Release on GitHub
If you have a working rust toolchain installed, you can use:
cargo install meshchat
to get the binary built and installed and in your $PATH.
Clone the repo, then run meshchat directly with:
cargo run --release
I did this as a bit of an experiment to see if I could get it working with real hardware and the mesh, which I did, so I am delighted.
If you use it successfully on some new OS variant, or LoRa radio, please drop me a message in the discussions.
I may (as usual) play with some aspects of it to learn more rust or Iced or specific things (e.g., I really need to knuckle down and learn about theming and styling in Iced...).
But I would only invest significant amounts of time if I see real interest and usage from people. I have other open source toy projects that keep me busy without this one—the one with the most traction from users will be the one that gets more of my time.
I add to the GitHub Issues as they occur to me. I have marked a few with the "help needed" label, but I would basically welcome help in any area, no matter how small.
Help from someone with some real UI / UX chops would be great.
Major areas of work remaining I would call out are:
If you want to help out, submit a well-written issue, start a discussion or clone the repo and submit a PR.
I keep an eye on MeshCore too, and if there was a reasonable rust crate to talk to MeshCore radios, I would consider working on supporting both simultaneously. That would force cleaning up MeshTastic code that has leaked into the MeshChat code, abstracting away the radio specifics.
These are the top-level dependencies of meshchat and their licenses:
So, due to the meshtastic license, this project is also licensed under the GPL-3.0 License