All software

MeshCore Packet Capture

Monitoring / Management Stable

Standalone 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

  • PyPI meshcore-packet-capture pipx install meshcore-packet-capture Open ↗
  • Source Open ↗

Releases

from GitHub · updated 2026-07-05
  1. v2.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-capture CLI.
    • Bundled broker presets (presets/, installed as config.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.local are 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-capture install to the new /opt + /etc layout; your .env/.env.local is converted to config.d/99-user.toml. The old directory is left in place for rollback.

    New Contributors

    Full Changelog: https://github.com/agessaman/meshcore-packet-capture/compare/v0.4...v2.0.0

  2. v0.4 # 4 months ago · 2026-03-28 18:38 UTC

    What's Changed

    New Contributors

    Full Changelog: https://github.com/agessaman/meshcore-packet-capture/compare/v0.3...v0.4

  3. 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
Show all 5 releases →

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.

Tags