SimpleX channel plugin for OpenClaw.
SimpleX is a strong fit when you want a messaging channel with privacy-first defaults and self-hostable infrastructure options. This plugin lets OpenClaw use SimpleX as a production message channel without custom glue code.
SimpleX channel here is backed by local simplex-chat CLI and supports send/receive (text/media), pairing + allowlist, message actions, invite link + QR generation, onboarding/status, and Control UI config parity.
Why this matters:
- privacy-preserving, end-to-end encrypted option in the channel set
- local runtime via official
simplex-chat(no hosted bot service) - no phone number requirement
- no third-party bot API dependency
- avoids unofficial CLI dependency chains
- low risk to other channels (opt-in and isolated unless configured)
Required runtime (simplex-chat CLI):
Official installer:
curl -o- https://raw.githubusercontent.com/simplex-chat/simplex-chat/stable/install.sh | bashIf the official installer resolves the wrong Darwin/Linux target on your host, use this temporary arch-matrix installer:
curl -o- https://raw.githubusercontent.com/dangoldbj/simplex-chat/install-arch-matrix/install.sh | bashVerify CLI is available:
simplex-chat -hPackage:
npm
npm i @dangoldbj/openclaw-simplexpnpm
pnpm add @dangoldbj/openclaw-simplexyarn
yarn add @dangoldbj/openclaw-simplexOpenClaw plugin setup:
Install plugin in OpenClaw:
openclaw plugins install @dangoldbj/openclaw-simplexEnable plugin:
openclaw plugins enable simplex- OpenClaw loads the plugin and registers the
simplexchannel. - The channel connects to SimpleX via the SimpleX CLI WebSocket API.
- Inbound events are normalized into OpenClaw message context.
- OpenClaw runs policy checks (
dmPolicy,allowFrom, group policy). - Replies/actions are sent back through SimpleX.
+-------------------------+
| OpenClaw |
| (agent + router/core) |
+------------+------------+
|
| channel plugin API
v
+-------------------------+
| @dangoldbj/openclaw- |
| simplex |
| - inbound monitor |
| - outbound actions |
| - policy enforcement |
| - account/runtime state |
+------------+------------+
|
| WebSocket API
v
+-------------------------+
| SimpleX CLI Runtime |
| (simplex-chat) |
+------------+------------+
|
| network
v
+-------------------------+
| SimpleX Network |
+-------------------------+
managed: OpenClaw startssimplex-chatfor you.external: you run SimpleX separately; OpenClaw only connects towsUrl.
Managed mode example:
{
"channels": {
"simplex": {
"enabled": true,
"connection": {
"mode": "managed",
"cliPath": "simplex-chat",
"wsHost": "127.0.0.1",
"wsPort": 5225
},
"allowFrom": ["*"]
}
}
}External mode example:
{
"channels": {
"simplex": {
"enabled": true,
"connection": {
"mode": "external",
"wsUrl": "ws://127.0.0.1:5225"
},
"allowFrom": ["*"]
}
}
}- Channel-level sender gating:
dmPolicy,allowFrom,groupPolicy,groupAllowFrom. - Pairing mode support for explicit sender approval.
- You control process/network boundaries in managed vs external mode.
openclaw plugins list
openclaw plugins info simplexGateway invite methods exposed by this plugin:
simplex.invite.createsimplex.invite.listsimplex.invite.revoke
- Plugin not visible: run
openclaw plugins list, then restart OpenClaw. - Channel not starting: verify
connectionsettings and SimpleX WS reachability. - Inbound drops: review
dmPolicy,allowFrom,groupPolicy,groupAllowFrom. - Media issues: validate URL accessibility and
mediaMaxMblimits.
- Open
Control -> Channels -> SimpleX. - Click
Create 1-time Linkand scan QR in the SimpleX app. - Send a first message in the SimpleX app and note the pairing approval code.
- Run
pnpm openclaw pairing list, then approve in OpenClaw. - Send another message and confirm OpenClaw responds.
Full walkthrough with screenshots:
Control UI channel view:
See full invite flow screenshots:
