🛰️ Meshtastic Client for Windows and Linux
A modern Python-based desktop client for managing Meshtastic networks on Windows and Linux. This project provides an intuitive graphical interface to connect via IP, USB or Bluetooth to Meshtastic devices, monitor nodes in real time, send and receive messages, and manage network settings — all without using the command line.
Built entirely in Python, it features:
- Real-time node list with shortname, longname, since, hops, dist, speed, alt, hw, role
- Message send/receive for the channels public, direct and private (all channels)
- Support for light and dark themes
- Direct IP, USB and Bluetooth connection support
- Auto-refresh and title with node count default sort since
- Automatic “Ping → Pong” reply function — the client automatically responds to incoming “ping” with “pong” on a direct message
- Node count, node filter, and sorting by short name, long name, since, hops, distance, hardware, and role.
- Right click menu on the node to Show node info, Show node on Map and Traceroute the node and delete node.
- Send "To selected" to send direct messages.
- Links menu to Meshtastic internet sites.
Standalone Windows GUI for their Meshtastic devices.
🧰 Installation & Setup (Windows)
You can also download the ready to use Mestastic_Client.exe or the .deb file to install it on Linux Mint 22 or Debian 13.
-
Install Python 3.10 or newer
-
Download from https://www.python.org/downloads/windows/
-
✅ During setup, check “Add Python to PATH”.
-
After installation, open Command Prompt and verify:
python --version pip --version
-
-
Upgrade pip and install all required dependencies
python -m pip install --upgrade pip pip install --upgrade meshtastic pyserial bleak pypubsub dotmap timeago requests pyyaml tabulate packagingDependency overview
Package Purpose meshtasticCore library for TCP / USB / BLE connections pyserialEnables USB / Serial communication bleakBluetooth Low Energy support pypubsubEvent/pub-sub messaging used by the library dotmapEasy access to nested dictionaries timeagoHuman-readable time display requestsHTTP utilities (used internally) pyyamlConfiguration and serialization tabulateCLI table output packagingVersion comparison utilities -
Install USB drivers (if using Serial/USB connection)
-
Install Silicon Labs CP210x or CH9102 drivers, depending on your device.
-
Official driver links:
-
-
(Optional) Clone the official Meshtastic Python repository
git clone https://github.com/meshtastic/python.git -
Download this GUI client Place
meshtastic_client.py(your version) in a folder such asC:\Users\<YourName>\MeshtasticClient -
Run the program
cd C:\Users\<YourName>\MeshtasticClient python meshtastic_client.py -
Connect your Meshtastic device
- Connection → Connect (TCP) — for Wi-Fi / Ethernet connections
- Connection → Connect via USB/Serial… — for direct cable connection
- Connection → Connect via Bluetooth… — scan and pair over BLE
-
**Enable Bluetooth in Windows Settings → Bluetooth & devices → “Add device” to ensure permissions.
Here’s a short GitHub installation & run description for your meshtastic_client.py on Raspberry Pi OS (Trixie):
🐍 Meshtastic Client for Raspberry Pi OS Trixie (linux)
Description: A Python GUI client for Meshtastic devices running fully offline on Raspberry Pi OS Trixie (Debian 13). Connect via USB or Bluetooth, send and receive messages, and view node info in real time.
⚙️ Installation
sudo apt update
sudo apt install -y python3-full python3-venv bluetooth bluez bluez-tools python3-serial git
git clone https://github.com/<yourname>/meshtastic_client.git
cd meshtastic_client
python3 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
pip install "meshtastic[cli]" pyserial bleak pypubsub dotmap timeago requests pyyaml tabulate packaging
Add user to serial groups:
sudo usermod -aG dialout $USER
sudo usermod -aG tty $USER
# log out and back in
▶️ Run
source venv/bin/activate
python3 meshtastic_client.py
🧩 Notes
- Works on Raspberry Pi 4/5 with Raspberry Pi OS Bookworm/Trixie.
- No internet connection required after setup.
- To exit the virtual environment:
deactivate.
Have fun
PS. Use IP or serial - bluetooth is slow.
Knud ;O)