Skip to content

Repository files navigation

MMRelay

Meshtastic ↔ Matrix Relay

MMRelay is a self-hosted bridge between a Meshtastic meshnet and Matrix. It runs as a long-lived service, connects to one Meshtastic node, logs in to Matrix with a bot account, and relays eligible traffic between configured Meshtastic channels and Matrix rooms.

Meshtastic meshnet ⇄ Meshtastic node ⇄ MMRelay ⇄ Matrix rooms

How it works at a glance

  • Meshtastic side: MMRelay connects to a Meshtastic node over Serial, BLE, or TCP/network (for example, a node reachable over Wi-Fi).
  • Matrix side: MMRelay joins configured rooms using a dedicated Matrix bot account.
  • Room/channel mapping: one or more Meshtastic channels (0–7), each mapped 1:1 to a Matrix room.
  • Bidirectional relay: eligible mesh traffic can be posted to the mapped Matrix room, and eligible Matrix traffic can be transmitted on the mapped Meshtastic channel.
  • Identity boundary: messages posted into Matrix are sent by the MMRelay bot. Meshtastic sender names and node IDs are preserved as attribution; they are not Matrix-authenticated identities.

For the full conceptual model—including meshnet terminology, the recommended relay-node setup, message flow, mapping behavior, and the identity/trust boundary—see How MMRelay Works.

Start here

Highlights

  • Bidirectional Meshtastic ↔ Matrix message relay
  • Multiple meshnets and configurable room/channel mappings
  • Serial, BLE, and TCP/network Meshtastic connections
  • Matrix end-to-end encryption support
  • Replies and reactions across the bridge
  • Message formatting and payload-size handling for Meshtastic
  • SQLite-backed node/message state
  • Docker and Kubernetes deployment support
  • Core, community, and local plugin support
  • Optional MQTT integration through Meshtastic firmware

E2EE: MMRelay uses mindroom-nio with vodozemac for encrypted Matrix rooms. Cross-signing applies to the Matrix bot device only; it does not authenticate Meshtastic identities. See the E2EE guide, especially before resetting authentication or cross-signing state.

Meshtastic library: MMRelay uses mtjk, a Meshtastic Python fork with additional BLE, connection-lifecycle, and thread-safety work used by this project.

Plugins

MMRelay can be extended with built-in core plugins, Git-managed community plugins, and local custom plugins. Plugins run inside the MMRelay process, so install third-party code only from sources you trust.

Community

About

A relay between a Matrix room and a Meshtastic radio. This relay extends your Matrix.org-based communication with a LoRa-based Meshtastic radio mesh. This is not an official product of Matrix.org or Meshtastic.

Topics

Resources

Stars

199 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages