npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@turquoisebay/mqtt

v0.1.17

Published

MQTT channel plugin for OpenClaw - bidirectional messaging via MQTT brokers

Downloads

498

Readme

@turquoisebay/mqtt

CI npm License: MIT

MQTT channel plugin for OpenClaw — bidirectional messaging via MQTT brokers.

Features

  • 🔌 Bidirectional messaging — subscribe and publish to MQTT topics
  • 🔁 Robust reconnection — recovers from broker restarts and cold starts
  • 🔒 TLS support — secure connections to cloud brokers
  • QoS levels — configurable delivery guarantees (0, 1, 2)

Installation

openclaw plugins install @turquoisebay/mqtt

Or manually:

git clone https://github.com/hughmadden/openclaw-mqtt ~/.openclaw/extensions/mqtt
cd ~/.openclaw/extensions/mqtt && npm install

Configuration

Add to ~/.openclaw/openclaw.json:

{
  channels: {
    mqtt: {
      brokerUrl: "mqtt://localhost:1883",
      // Optional auth
      username: "openclaw",
      password: "secret",
      // Topics
      topics: {
        inbound: "openclaw/inbound",   // Subscribe to this
        outbound: "openclaw/outbound"  // Publish responses here
      },
      // Quality of Service (0=fire-and-forget, 1=at-least-once, 2=exactly-once)
      qos: 1
    }
  }
}

Then restart the gateway:

openclaw gateway restart

Usage

Sessions & correlation IDs (important)

  • Sessions are keyed by senderId → OpenClaw uses mqtt:{senderId} as the SessionKey, so memory and conversation history are grouped by sender.
  • correlationId is request‑level only → if you include it in inbound JSON, it’s echoed back in the outbound reply for client-side matching. It does not create a new session or change memory.

If you want separate conversations, use distinct senderIds.

Receiving messages (inbound)

Messages published to your inbound topic will be processed by OpenClaw. You can send either plain text or JSON (recommended):

# Plain text
mosquitto_pub -t "openclaw/inbound" -m "Alert: Service down on playground"

# JSON (recommended)
mosquitto_pub -t "openclaw/inbound" -m '{"senderId":"pg-cli","text":"hello","correlationId":"abc-123"}'

Sending messages (outbound)

Agent replies are published to the outbound topic as JSON:

{"senderId":"openclaw","text":"...","kind":"final","ts":1700000000000}

If you want to publish custom text via CLI, use the message tool:

openclaw agent --message "Send MQTT: Temperature is 23°C"

Security

Important: Any client that can publish to the inbound topic has full access to your OpenClaw agent. Treat MQTT as a trusted channel only (restricted broker, auth, private network). If you need untrusted access, add a validation layer before publishing to openclaw/inbound.

Development

# Clone (replace with your host)
git clone ssh://<host>/opt/git/openclaw-mqtt.git
cd openclaw-mqtt

# Install deps
npm install

# Run tests
npm test

# Type check
npm run typecheck

# Build
npm run build

Architecture

MQTT Broker (Mosquitto/EMQX)
     │
     ├─► inbound topic ──► OpenClaw Gateway ──► Agent
     │
     └─◄ outbound topic ◄── OpenClaw Gateway ◄── Agent

License

MIT © Hugh Madden

See Also