MeshCore Packet Capture
Monitoring / Management StableStandalone Python script for capturing and analyzing packets from MeshCore companion radios. Connects via BLE, serial or TCP and outputs structured data to console, file and MQTT broker. Designed for companion radios only; for repeaters and room servers use meshcoretomqtt instead.
- Maintainer
- agessaman ↗
- Kind
- Monitoring & Management
- Maturity
- Stable
- Language
- Python
- Licensing
- Open source
- Latest version
- 2.0.0 · 2026-06-22
- License
- MIT
- Platforms
- Linux macOS Windows
Capabilities
Interfaces
- ✓ CLI
Connections
- ✓ BLE
- ✓ Serial
- ✓ TCP
- ✓ MQTT
Capabilities
- ✓ Monitoring
- ✓ Packet analysis
- ✓ Telemetry
Node role
- ✓ Companion
Install
Releases
from GitHub · updated 2026-07-05v2.0.0 # Latest 28 days ago · 2026-06-22 21:21 UTC
Realigns configuration, install, and runtime layout with meshcoretomqtt.
Added
- TOML configuration under
/etc/meshcore-packet-capture/(config.toml+config.d/*.toml, deep-merged;[[broker]]merges by name). - Python installer (
python3 -m installer) with install / update / migrate, systemd & launchd units, Docker, service account, and BLE/serial/TCP setup. - PyPI distribution:
pipx install meshcore-packet-capture+meshcore-packet-captureCLI. - Bundled broker presets (
presets/, installed asconfig.d/10-*.toml). - Unlimited sequentially-numbered MQTT brokers.
- JWT auth via pure-Python Ed25519 (pynacl), per-broker owner/email, token TTL.
- Device stats (core/radio/packets) in MQTT status messages.
- macOS BLE support via a per-user LaunchAgent.
Changed
- App installs to
/opt, config to/etc, state to/var/lib(FHS). .env/.env.localare now a legacy fallback, overridden by TOML.- Requires Python 3.11+ and
meshcore >= 2.2.31. - Default advert interval standardized at 47 hours.
- Docker image no longer bundles Node.js (JWT signing is pure-Python).
Upgrading
Run the installer to migrate a legacy
~/.meshcore-packet-captureinstall to the new/opt+/etclayout; your.env/.env.localis converted toconfig.d/99-user.toml. The old directory is left in place for rollback.New Contributors
- @vergoh made their first contribution in https://github.com/agessaman/meshcore-packet-capture/pull/26
- @maxious made their first contribution in https://github.com/agessaman/meshcore-packet-capture/pull/32
Full Changelog: https://github.com/agessaman/meshcore-packet-capture/compare/v0.4...v2.0.0
- TOML configuration under
v0.4 # 4 months ago · 2026-03-28 18:38 UTC
What's Changed
- Add device listing for FreeBSD by @samm-git in https://github.com/agessaman/meshcore-packet-capture/pull/9
- Enhance advert state management to avoid adverts on every launch and update install.sh to 1.2.1 by @agessaman in https://github.com/agessaman/meshcore-packet-capture/pull/14
- Enhance packet capture and installation scripts for MeshCore 1.14.0 compatibility by @agessaman in https://github.com/agessaman/meshcore-packet-capture/pull/16
- Align advert and control parsing with MeshCore by @robekl in https://github.com/agessaman/meshcore-packet-capture/pull/19
- Preserve decoded advert metadata by @robekl in https://github.com/agessaman/meshcore-packet-capture/pull/20
- Harden advert parsing against partial payloads by @robekl in https://github.com/agessaman/meshcore-packet-capture/pull/22
- Avoid duplicate packet publishes from RAW events by @robekl in https://github.com/agessaman/meshcore-packet-capture/pull/21
New Contributors
- @samm-git made their first contribution in https://github.com/agessaman/meshcore-packet-capture/pull/9
- @robekl made their first contribution in https://github.com/agessaman/meshcore-packet-capture/pull/19
Full Changelog: https://github.com/agessaman/meshcore-packet-capture/compare/v0.3...v0.4
v0.3 # 7 months ago · 2025-12-20 22:51 UTC
- Refactored auth token signing to use the radio to sign JWTs, with fallbacks to a python implementation (typically unnecessary unless then firmware is 6+ months old). Removes dependency on meshcore-decoder.
- Improved BLE timeout and reconnect handling.
- Fixes pairing process in pairing_helper.py on MacOS
- Improvements in install.sh
Project signals
popularity 2026-07-20 verification 2026-07-20
- GitHub stars
- 73
- Forks
- 20
- Watchers
- 1
- Open issues
- 8
- Contributors
- 9
- Release downloads
- 0
- Latest downloads
- 0
- Source available
- Yes
- Releases available
- Yes
- Signed releases
- No
- CI builds
- Yes
- Documentation
- Yes
- For companion radios only; repeaters/room servers should use meshcoretomqtt.
- Based on the original meshcoretomqtt project by Cisien.
- Available on PyPI; includes systemd/launchd managed service installer.