// the find
meshtastic/python
The Python CLI and API for talking to Meshtastic devices
The official Python library and CLI for Meshtastic, the open LoRa mesh-networking firmware. It wraps serial, BLE, and TCP connections to a device behind one pubsub-based event API, so this is for anyone scripting or building tools against Meshtastic hardware rather than just using the phone app.
One API surface covers three transports (serial/BLE/TCP), so you can write against a device without caring how it's physically connected. Protobuf definitions are pulled from the firmware repo via an automated workflow, which keeps the wire protocol from silently drifting out of sync with devices in the field. Test suite includes smoke tests that exercise real and simulated firmware (test_smokemesh.py, firmware_harness.py), not just mocked unit tests, which is rarer than it should be in hardware-adjacent libraries. Container images on GHCR run as non-root by default and pass through serial devices cleanly for anyone deploying this on a gateway or Raspberry Pi.
The README states outright there's no consistent maintainer right now, so anything beyond the roadmap items is community-dependent and could stall. The project's own roadmap admits there's no type annotations throughout and mypy isn't run in strict mode, so you're on your own for catching interface misuse at dev time. There's no persistence layer for packet history or node tracking beyond the transient nodedb, meaning anything that needs state across runs (mapping, charting, history) has to be built from scratch. CLI argument compatibility and pubsub event documentation are both flagged by the maintainers themselves as incomplete, so expect to read source to figure out which flags work together.