{"id":47729399,"url":"https://github.com/dangoldbj/openclaw-simplex","last_synced_at":"2026-04-24T18:05:45.947Z","repository":{"id":341580559,"uuid":"1170692275","full_name":"dangoldbj/openclaw-simplex","owner":"dangoldbj","description":"SimpleX channel plugin for OpenClaw.","archived":false,"fork":false,"pushed_at":"2026-04-12T22:05:36.000Z","size":5338,"stargazers_count":36,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-13T00:19:27.297Z","etag":null,"topics":["e2ee","encryption","end-to-end-encryption","messaging","openclaw","privacy","security","simplex"],"latest_commit_sha":null,"homepage":"https://openclaw-simplex.mintlify.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dangoldbj.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-02T12:08:24.000Z","updated_at":"2026-04-12T22:05:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dangoldbj/openclaw-simplex","commit_stats":null,"previous_names":["dangoldbj/openclaw-simplex"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/dangoldbj/openclaw-simplex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangoldbj%2Fopenclaw-simplex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangoldbj%2Fopenclaw-simplex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangoldbj%2Fopenclaw-simplex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangoldbj%2Fopenclaw-simplex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dangoldbj","download_url":"https://codeload.github.com/dangoldbj/openclaw-simplex/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dangoldbj%2Fopenclaw-simplex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32232612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e2ee","encryption","end-to-end-encryption","messaging","openclaw","privacy","security","simplex"],"created_at":"2026-04-02T21:18:05.542Z","updated_at":"2026-04-24T18:05:45.908Z","avatar_url":"https://github.com/dangoldbj.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @dangoldbj/openclaw-simplex\n\n\u003e **TL;DR:** Run OpenClaw agents over SimpleX with no phone numbers, no hosted or unofficial bot APIs, and full end-to-end encryption.\n\n\u003e **Breaking in `1.0.0`:** the plugin id and channel id are now `openclaw-simplex`, managed mode was removed, and existing users should run `openclaw simplex migrate`. See the [migration guide](https://dangoldbj.github.io/openclaw-simplex/guide/migration).\n\nPrivacy-first SimpleX messaging channel for OpenClaw.\n\nThis plugin enables OpenClaw agents to communicate over SimpleX, a decentralized, end-to-end encrypted messaging network, without requiring phone numbers, hosted bot APIs, or third-party infrastructure.\n\nIt introduces a new class of channel for OpenClaw: **local-first, self-hostable, and identity-minimal agent communication.**\n\nDesigned for real-world OpenClaw deployments where privacy, local control, and minimal external dependencies are required.\n\n---\n\n## Quick Start\n\nFresh install:\n\n1. Install `simplex-chat`.\n2. Start the WebSocket runtime:\n\n```bash\nsimplex-chat -p 5225\n```\n\n3. Install and enable the plugin:\n\n```bash\nopenclaw plugins install @dangoldbj/openclaw-simplex\n```\n\n```bash\nopenclaw plugins enable openclaw-simplex\n```\n\n4. Configure the channel:\n\n```bash\nopenclaw channels add --channel openclaw-simplex --url ws://127.0.0.1:5225\n```\n\nUpgrade from older `simplex` ids:\n\n```bash\nopenclaw simplex migrate\n```\n\nFull docs:\n\n* Getting started: https://dangoldbj.github.io/openclaw-simplex/guide/getting-started\n* Migration: https://dangoldbj.github.io/openclaw-simplex/guide/migration\n* Full documentation: https://dangoldbj.github.io/openclaw-simplex/\n\n---\n\n## Why this plugin exists\n\nOpenClaw supports multiple messaging channels, but most rely on:\n\n* phone numbers or platform-bound identities\n* hosted bot APIs\n* centralized infrastructure\n\nThis plugin adds support for SimpleX, enabling:\n\n* fully end-to-end encrypted messaging\n* no global identifiers, so no phone or email is required\n* self-hosted or local-first operation\n* agent communication without third-party dependencies\n\n**This adds a privacy-first messaging option to the OpenClaw channel set.**\n\n### How This Differs From Typical Bot/API Channels\n\nUnlike typical messaging integrations (e.g. bot APIs or phone-based channels), this plugin:\n\n* does not require phone numbers\n* does not depend on hosted or unofficial bot APIs\n* uses end-to-end encrypted messaging by default\n* inherits stronger privacy properties from SimpleX, including reduced metadata exposure compared with typical bot-platform channels\n\n---\n\n## Why SimpleX\n\nSimpleX is uniquely suited for privacy-critical communication:\n\n* no user identifiers, so no phone or email\n* end-to-end encrypted by default\n* decentralized relay architecture\n* fully supports self-hosting\n\nThis plugin integrates SimpleX into OpenClaw as a dedicated channel backed by the official `simplex-chat` CLI.\n\n---\n\n## What this plugin provides\n\n* send and receive messages reliably, including text and media\n* pairing and allowlist support\n* invite link and QR generation\n* shared `message` actions including `upload-file`, reactions, edits, deletes, and group actions\n* plugin tools for invite and group administration\n* runtime status and lifecycle management\n* Control UI configuration\n* external WebSocket runtime integration\n* explicit runtime and policy control\n\n---\n\n## Use Cases\n\n* running OpenClaw agents in fully self-hosted environments\n* privacy-sensitive workflows with no external messaging providers\n* peer-to-peer agent communication without global identifiers\n* secure local automation systems\n* experimental decentralized agent networks\n\nThis plugin is particularly relevant for developers building privacy-first or fully self-hosted agent systems.\n\n---\n\n## Install\n\n### 1. Install SimpleX CLI (`simplex-chat`)\n\nOfficial installer:\n\n```bash\ncurl -o- https://raw.githubusercontent.com/simplex-chat/simplex-chat/stable/install.sh | bash\n```\n\nIf the official installer resolves the wrong Darwin/Linux target:\n\n```bash\ncurl -o- https://raw.githubusercontent.com/dangoldbj/simplex-chat/install-arch-matrix/install.sh | bash\n```\n\nVerify:\n\n```bash\nsimplex-chat -h\n```\n\nStart the long-running WebSocket process:\n\n```bash\nsimplex-chat -p 5225\n```\n\n---\n\n### 2. Install in OpenClaw\n\n```bash\nopenclaw plugins install @dangoldbj/openclaw-simplex\n```\n\nThis release no longer requires the unsafe-install override because the plugin does not spawn `simplex-chat`.\n\nEnable:\n\n```bash\nopenclaw plugins enable openclaw-simplex\n```\n\nTrust plugin:\n\n```bash\nopenclaw config set plugins.allow \"$(\n  (openclaw config get plugins.allow --json 2\u003e/dev/null || echo '[]') \\\n  | jq -c '. + [\"openclaw-simplex\"] | unique'\n)\" --strict-json\n```\n\nThis appends `openclaw-simplex` to the existing allowlist instead of replacing it.\n\nImportant:\n\n* `openclaw plugins enable openclaw-simplex` only enables the plugin\n* OpenClaw will not start the SimpleX channel until `channels.openclaw-simplex.connection` is configured\n* The current Control UI SimpleX card is a config editor; it does not expose custom invite buttons for this plugin\n* configure `channels.openclaw-simplex.connection.wsUrl` to the running SimpleX WebSocket endpoint\n* if `simplex-chat` is not running at that endpoint, OpenClaw will mark the channel disconnected and store the connection error in channel status\n* The interactive `openclaw channels add` picker may not list this external plugin yet\n\n## Migration from `simplex`\n\n`1.0.0` renames both the plugin id and the channel id from `simplex` to `openclaw-simplex`.\n\nIf you are upgrading from `0.x`, run:\n\n```bash\nopenclaw simplex migrate\n```\n\nThis migrates:\n\n* `plugins.entries.simplex` -\u003e `plugins.entries.openclaw-simplex`\n* `plugins.installs.simplex` -\u003e `plugins.installs.openclaw-simplex`\n* `plugins.allow` / `plugins.deny` entries from `simplex` -\u003e `openclaw-simplex`\n* `channels.simplex` -\u003e `channels.openclaw-simplex`\n* OpenClaw pairing and allowlist state files under the OpenClaw state directory\n\nYou can preview the changes first:\n\n```bash\nopenclaw simplex migrate --dry-run\n```\n\nBreaking changes in `1.0.0`:\n\n* managed mode was removed; run `simplex-chat` separately and configure `wsUrl`\n* the plugin id is now `openclaw-simplex`\n* the channel id is now `openclaw-simplex`\n* pairing approval commands now use `openclaw-simplex`\n* gateway method names remain `simplex.invite.*`; they were not renamed in this release\n\n## Invite and Address Commands\n\nThe most user-friendly path is now the plugin CLI itself:\n\nCreate a one-time invite link:\n\n```bash\nopenclaw simplex invite create --qr\n```\n\nList current invite and address state:\n\n```bash\nopenclaw simplex invite list\n```\n\nShow the current address link:\n\n```bash\nopenclaw simplex address show --qr\n```\n\nRevoke the current address link:\n\n```bash\nopenclaw simplex address revoke\n```\n\nThese commands connect to the configured SimpleX WebSocket endpoint and can print a terminal QR code with `--qr`.\n\nYou can still use the `simplex-chat` console directly:\n\n```text\n/c\n/ad\n/show_address\n/delete_address\n```\n\nThese correspond to:\n\n* `/c`: create a one-time connect link\n* `/ad`: create or return the account address link\n* `/show_address`: show the current address link\n* `/delete_address`: revoke the current address link\n\nFor automation and integrations, OpenClaw also exposes gateway methods and plugin tools:\n\n* `simplex.invite.create`\n* `simplex.invite.list`\n* `simplex.invite.revoke`\n\n---\n\n## How It Works\n\n1. OpenClaw loads the plugin and registers the `openclaw-simplex` channel\n2. OpenClaw can load the lightweight setup entry before the full runtime entry for disabled or unconfigured channels\n3. The channel only becomes startup-capable after `channels.openclaw-simplex.connection` is configured\n4. The plugin connects to SimpleX via the CLI WebSocket API\n5. Incoming messages are normalized into OpenClaw context\n6. OpenClaw applies policies such as `dmPolicy` and `allowFrom`\n7. Responses are sent back through SimpleX\n\n---\n\n## Architecture\n\n```text\n            +-------------------------+\n            |        OpenClaw         |\n            |  (agent + router/core)  |\n            +------------+------------+\n                         |\n                         | channel plugin API\n                         v\n            +-------------------------+\n            | @dangoldbj/openclaw-    |\n            |        simplex          |\n            | - inbound monitor       |\n            | - outbound actions      |\n            | - policy enforcement    |\n            | - account/runtime state |\n            +------------+------------+\n                         |\n                         | WebSocket API\n                         v\n            +-------------------------+\n            |   SimpleX CLI Runtime   |\n            |      (simplex-chat)     |\n            +------------+------------+\n                         |\n                         | network\n                         v\n            +-------------------------+\n            |      SimpleX Network    |\n            +-------------------------+\n```\n\n---\n\n## Setup\n\nRun `simplex-chat` separately and point OpenClaw at its WebSocket endpoint:\n\n```bash\nsimplex-chat -p 5225\n```\n\n```json\n{\n  \"channels\": {\n    \"openclaw-simplex\": {\n      \"enabled\": true,\n      \"connection\": {\n        \"wsUrl\": \"ws://127.0.0.1:5225\"\n      },\n      \"allowFrom\": [\"*\"]\n    }\n  }\n}\n```\n\nOpenClaw does not supervise `simplex-chat` for external plugins. If you want it to start automatically, run it as a host-managed user service such as `systemd --user` or `launchd`.\n\nFor full persistent runtime examples, see:\n\n* https://dangoldbj.github.io/openclaw-simplex/guide/setup\n\n---\n\n## Security Model\n\n* channel-level sender gating such as `dmPolicy` and `allowFrom`\n* pairing-based approval flow\n* explicit control over runtime boundaries\n* no reliance on external messaging APIs\n\n---\n\n## Example Commands\n\n```bash\nopenclaw plugins list\n```\n\n```bash\nopenclaw plugins info openclaw-simplex\n```\n\n```bash\nopenclaw channels add --channel openclaw-simplex --url ws://127.0.0.1:5225\n```\n\n```bash\nopenclaw simplex migrate --dry-run\n```\n\n```bash\nopenclaw pairing list\n```\n\nInvite APIs:\n\n* `simplex.invite.create`\n* `simplex.invite.list`\n* `simplex.invite.revoke`\n\nPlugin tools:\n\n* `simplex_invite_create`\n* `simplex_invite_list`\n* `simplex_invite_revoke`\n* `simplex_group_add_participant`\n* `simplex_group_remove_participant`\n* `simplex_group_leave`\n\n---\n\n## Troubleshooting\n\n* plugin not visible: check `plugins.allow` and `openclaw plugins list`\n* channel not starting: verify `channels.openclaw-simplex.connection` exists and points to a working SimpleX runtime\n* `Configured No`: add explicit `channels.openclaw-simplex.connection` config; plugin defaults alone are not enough for OpenClaw startup\n* inbound issues: review policies such as `allowFrom`, `dmPolicy`, and group policy\n* media issues: validate URLs and size limits\n\n---\n\n## Happy Path\n\n1. Open `Control -\u003e Channels -\u003e SimpleX`\n2. Start `simplex-chat` separately and configure OpenClaw with its `wsUrl`\n3. Generate an invite link in `simplex-chat` or through the gateway/tool automation path\n4. Connect via the SimpleX app\n5. Approve pairing in OpenClaw\n6. Send a message and verify the response\n\nFull walkthrough:\n\n* https://dangoldbj.github.io/openclaw-simplex/guide/getting-started\n\n## Full Docs\n\n* https://dangoldbj.github.io/openclaw-simplex/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdangoldbj%2Fopenclaw-simplex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdangoldbj%2Fopenclaw-simplex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdangoldbj%2Fopenclaw-simplex/lists"}