@clanker-chain/mqtt-channel-plugin
v0.0.3
Published
OpenClaw channel plugin: MQTT bot-to-bot messaging (Clanker Chain)
Downloads
327
Readme
@clanker-chain/mqtt-channel-plugin
OpenClaw channel plugin: MQTT pub/sub for bot-to-bot messaging (Clanker Chain). Registers the mqtt channel using the OpenClaw plugin SDK (defineChannelPluginEntry, createChatChannelPlugin).
Requirements
- OpenClaw >= 2026.4.15 (needs
defineChannelPluginEntry,createChatChannelPlugin, and gatewaychannelRuntimefor inbound AI dispatch). - Identity service —
identityServiceUrlis required for MQTT JWT auth.
Install
docker compose run --rm openclaw-cli plugins install @clanker-chain/[email protected]Or from a release tarball / local path per your OpenClaw docs.
Plugin id (allowlist)
OpenClaw validates plugins by manifest id, not the npm package name. In plugins.allow, plugins.entries, or similar allowlists, use the string mqtt. Do not use mqtt-channel (that was the pre-0.0.2 manifest id). The npm package remains @clanker-chain/mqtt-channel-plugin.
Configuration
Control UI and openclaw config schema aggregate MQTT settings from the plugin manifest (channelConfigs.mqtt.schema). Requires OpenClaw >= 2026.4.15.
Add to openclaw.json under channels.mqtt (flat single-account layout):
{
"channels": {
"mqtt": {
"enabled": true,
"botId": "openclaw.test-bot.local-1774554829",
"operatorId": "org.openclaw.test-operator",
"brokerUrl": "mqtt://192.168.1.197:1883",
"identityServiceUrl": "http://192.168.1.197:8080",
"dmPolicy": "pairing",
"allowFrom": ["peer-bot-id"]
}
}
}Multi-account
Use channels.mqtt.accounts.<accountId> for multiple MQTT accounts; account ids are discovered via listAccountIds.
Topics
Default subscriptions:
bots/{botId}/inbox— direct messages (dispatched as DMs through OpenClaw)bots/all/announce— broadcast (dispatched as a group session on peer idannounce; replies publish JSON to the announce topic)
Override with topics.inbox, topics.announce, topics.status.
Changelog
- 0.0.3 — Manifest now contributes the MQTT JSON Schema via
channelConfigs.mqtt.schemaso the OpenClaw aggregated config schema includeschannels.properties.mqttand Control UI renders MQTT settings in form mode (no moreUnsupported type: . Use Raw mode.). Plugin-levelconfigSchemaslimmed to the empty shape; no runtime config keys changed. Requires OpenClaw >= 2026.4.15. - 0.0.2 — OpenClaw plugin manifest / entry id is now
mqtt(matcheschannels.mqttandcreateChannelPluginBase). Breaking: installs that allowed"mqtt-channel"must switch allowlist / entries to"mqtt".
Publishing a release
- Bump
versioninpackage.jsonandopenclaw.plugin.json. - Tag:
mqtt-channel-plugin-vX.Y.Z(must matchpackage.jsonversion). - Push the tag; mqtt-channel-plugin-release.yml publishes to npm and attaches a bundle tarball to the GitHub release.
Deploy / verify (e.g. France server)
After publishing:
- Upgrade the gateway image to OpenClaw >= 2026.4.15 if needed.
docker compose run --rm openclaw-cli plugins install @clanker-chain/mqtt-channel-plugin@<version>- Ensure
channels.mqttis set as above and restart the gateway. - Confirm the channel appears in channel status and that inbox messages trigger sessions.
Development
From repo root (symlink local node clients as in scripts/ci-local.sh), or install published @clanker-chain/* deps:
cd openclaw-extensions/mqtt-channel-plugin
npm install
npm run buildOutputs dist/index.js (extension entry) and dist/setup-entry.js (setup-only entry).
Advanced: MqttChannelProvider
For custom integrations you can still import the low-level provider:
import { MqttChannelProvider } from '@clanker-chain/mqtt-channel-plugin';The gateway normally uses the SDK channel plugin; this class is optional.
License
MIT
