#9594: feat: add SimpleX messaging channel
docs
app: web-ui
size: XL
Cluster:
Messaging Channel Integrations
## Summary
This PR adds a **SimpleX messaging channel** backed by the local `simplex-chat` CLI. It supports
send/receive (text and media), pairing with allowlist enforcement, message actions, invite link and
QR generation, onboarding status, and Control UI configuration parity.
The integration is implemented as an in-repo channel plugin and is fully opt-in.
## Why This Matters
- Expands the channel set with a privacy-preserving, end-to-end encrypted option
- Runs locally via the official `simplex-chat` CLI (no hosted bot service)
- Addresses gaps in the current channel mix:
- no phone number requirement
- no third-party bot API dependency
- avoids reliance on unofficial CLIs
- Low risk to existing channels, as the implementation is isolated and only active when configured
## Implementation Details
- SimpleX channel implementation with CLI lifecycle management (managed and external modes)
- Gateway method for invite/address links with QR generation
- Control UI card and config schema (DM policy, history limit, streaming block + coalesce)
- Onboarding adapter so the setup wizard reflects configured / not-configured state
- Unit tests covering allowlist enforcement, WebSocket client behavior, invite flow, and account config
## Documentation
- Added `docs/channels/simplex.md` with setup and configuration instructions
- Linked from `docs/channels/index.md`
## Testing
- `pnpm vitest run --config vitest.extensions.config.ts`
## Notes for Reviewers
- SimpleX is optional and only runs when explicitly enabled and configured
- Uses existing routing and channel abstractions; no changes to core routing
- I’m happy to help maintain this integration and address follow-up issues as SimpleX evolves
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
- Adds a new opt-in **SimpleX** channel plugin backed by the local `simplex-chat` CLI + WebSocket API, including routing, pairing/allowlist policy, media, and message actions.
- Introduces a SimpleX Control UI card + config schema wiring so the channel can be configured alongside existing channels.
- Implements a SimpleX monitor that consumes WS events, enforces DM/group policy, downloads media within limits, and dispatches inbound messages into the existing reply/session pipeline.
- Adds docs and tests to cover onboarding, allowlist enforcement, WS client behavior, and invite/pairing flows.
<h3>Confidence Score: 5/5</h3>
- This PR looks safe to merge based on the reviewed changes, with prior critical issues appearing addressed in the head SHA.
- In the head commit, the WebSocket client’s connect lifecycle now properly settles on close-before-open and rejects/clears pending commands on disconnect; outbound and pairing approval now enforce enabled/configured guards; and the monitor path correctly skips over-limit downloads and maps blockStreaming semantics as expected. I did not find additional, definite pre-merge bugs beyond the previously-threaded items (which appear resolved in this SHA).
- extensions/simplex/src/simplex-monitor.ts (policy + routing/identity normalization), extensions/simplex/src/simplex-ws-client.ts (connection/pending lifecycle)
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#19030: feat(simplex): add SimpleX Chat channel plugin
by Bladerunner-hue · 2026-02-17
84.8%
#22260: feat(extensions/deltachat): add Delta.Chat channel extension
by alanz · 2026-02-20
79.2%
#15051: feat: Zulip channel plugin with concurrent message processing
by FtlC-ian · 2026-02-12
78.9%
#23464: feat(synology-chat): add group/channel support
by druide67 · 2026-02-22
78.6%
#17361: feat(channels): add Tuitui (推推) channel support
by haomehaode · 2026-02-15
78.5%
#20348: Add support for Keybase as a channel
by xgess · 2026-02-18
77.4%
#9939: feat(spixi): Add Spixi channel integration.
by subsubl · 2026-02-05
76.8%
#22308: feat(zulip): add Zulip channel plugin
by emadomedher · 2026-02-21
76.1%
#9199: feat: Add Cisco Webex Teams channel plugin
by chrharri · 2026-02-05
76.0%
#17157: feat(messenger): add Facebook Messenger channel integration
by gmjuhasz · 2026-02-15
75.9%