meshtastic
Python API & client shell for talking to Meshtastic devices
Decision gist · record as of 2026-08-14
Yes, if you own or plan to use Meshtastic devices and need Python integration. The library is actively maintained, has low install friction, and provides both programmatic and CLI access to device functionality. The GPL-3.0 copyleft license is a hard blocker for proprietary projects; open-source or internal-use projects face no barrier. No known security vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a connected Meshtastic device accessible via serial port or Bluetooth; bleak (for Bluetooth) or pyserial (for USB/serial) must be able to communicate with the device.
- Low install friction with a pure-Python wheel distribution.
- Actively maintained with a release 28 days ago.
License · maintenance · safety
GPL-3.0-only (copyleft) — GPL-3.0-only copyleft license means any code that links this library must also be released under GPL-3.0 or a compatible license. Proprietary or permissively-licensed projects cannot use it without legal review.
last release 2026-07-17 (28 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 113,227 downloads/mo, #12,350 on PyPI
Alternatives
Verify before relying
pip install meshtastic
import meshtastic
import meshtastic.serial_interface
# Connect to device via serial
iface = meshtastic.serial_interface.SerialInterface()
# Define a callback for received messages
def on_receive(packet):
print(f"Received: {packet}")
# Subscribe to receive events
iface.on_receive = on_receive
# Send a message
iface.sendText("Hello mesh", destinationId=0xFFFFFFFF)- Whether the library works with all Meshtastic device models and firmware versions currently in circulation.
- Performance characteristics when handling high message volumes or many simultaneous subscriptions.
- Stability of the async-friendliness roadmap item and whether async support is currently available.
What it is and what it does
Meshtastic is a Python interface to Meshtastic mesh radio devices, which are low-power LoRa-based radios that form self-healing mesh networks. The library wraps the device protocol and exposes it through a publish-subscribe event system, so you can subscribe to message types you care about and react to them in your code. It also provides a command-line tool that mirrors the capabilities of the official Android and device UI applications.
The library depends on bleak for Bluetooth communication, pyserial for USB/serial connections, protobuf for message serialization, and several utility libraries. It's designed to work with the device's native mesh protocol, so you can build applications that integrate mesh messaging into Python workflows—from simple scripts that relay messages to external systems, to more complex monitoring or logging applications.
Use it for
- Build a Python script that receives mesh radio messages and logs them to a database or cloud service.
- Create a CLI tool that queries device status, node information, and mesh topology from connected Meshtastic radios.
- Integrate mesh messaging into a larger application using the publish-subscribe event model to react to incoming messages.
- Monitor mesh network health by subscribing to device telemetry and position updates from multiple nodes.
- Automate device configuration and firmware updates across a fleet of Meshtastic radios via serial or Bluetooth.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you own or plan to use Meshtastic devices and need Python integration.
The library is actively maintained, has low install friction, and provides both programmatic and CLI access to device functionality. The GPL-3.0 copyleft license is a hard blocker for proprietary projects; open-source or internal-use projects face no barrier. No known security vulnerabilities.
Install
meshtastic on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with a release 28 days ago. Supports Python 3.9 through 3.14. Eight runtime dependencies are all common, stable libraries (bleak, protobuf, pypubsub, pyserial, pyyaml, requests, packaging, tabulate).
Requires a connected Meshtastic device accessible via serial port or Bluetooth; bleak (for Bluetooth) or pyserial (for USB/serial) must be able to communicate with the device.
License in practice
GPL-3.0-only copyleft license means any code that links this library must also be released under GPL-3.0 or a compatible license. Proprietary or permissively-licensed projects cannot use it without legal review.
Quickstart
pip install meshtastic
import meshtastic
import meshtastic.serial_interface
# Connect to device via serial
iface = meshtastic.serial_interface.SerialInterface()
# Define a callback for received messages
def on_receive(packet):
print(f"Received: {packet}")
# Subscribe to receive events
iface.on_receive = on_receive
# Send a message
iface.sendText("Hello mesh", destinationId=0xFFFFFFFF)
Verify before relying
- Whether the library works with all Meshtastic device models and firmware versions currently in circulation.
- Performance characteristics when handling high message volumes or many simultaneous subscriptions.
- Stability of the async-friendliness roadmap item and whether async support is currently available.
Package facts
| License | GPL-3.0-only copyleft |
| Python support | Supports the current Python release <3.15,>=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 8 packagesbleakpackagingprotobufpypubsubpyserialpyyamlrequeststabulate |
| Maintenance | Actively maintained 28 days since the last release |
| First released | |
| Downloads | 113,227 / month, #12,350 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: GNU General Public License v3 (GPLv3)Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9 |
Evidence: meshtastic-2.7.11-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “mesh radio communication python”
- meshtasticA Python library and CLI for communicating with Meshtastic mesh radio…
- zhaZHA is a hardware-independent Zigbee gateway implementation that…
- ciris-edgeA Rust-based transport and replication layer for the CIRIS Epistemic…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also zigpy-xbee · zigpy · pymysensors · rf-protocols · zigpy-zigate · airthings-cloud · radios · wiim · afsapi · google-cloud-pubsub