Connect your Hexis agent to messaging platforms. Each channel runs as an adapter that bridges the platform to RabbitMQ, where the agent processes messages.
| Channel | Library | Connection | Auth | Docker Profile |
|---|---|---|---|---|
| Discord | discord.py |
WebSocket | Bot token | active |
| Telegram | python-telegram-bot |
Long polling | Bot token | active |
| Slack | slack-bolt |
Socket Mode / HTTP | Bot + App token | active |
| Signal | aiohttp |
SSE stream | Phone number + sidecar | active + signal |
aiohttp |
Webhook | Meta Business API | active |
|
| iMessage | aiohttp |
Polling (2s) | BlueBubbles server | macOS only |
| Matrix | matrix-nio |
Sync loop | Access token | active |
| Capability | Discord | Telegram | Slack | Signal | iMessage | Matrix | |
|---|---|---|---|---|---|---|---|
| Direct messages | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Group messages | Yes | Yes | Yes | Yes | Yes | No | Yes |
| Threads | Yes | Yes (forums) | Yes | No | No | No | Yes |
| Reactions | Yes | Yes | Yes | Yes | Yes | Yes (tapback) | Yes |
| Media | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Typing indicator | Yes | Yes | No-op | No | No-op | Yes | Yes |
| Edit messages | Yes | Yes | Yes | No | No | No | Yes |
| Max message length | 2,000 | 4,096 | 4,000 | 8,000 | 4,096 | 20,000 | 65,536 |
All channels follow the same pattern:
- Configure credentials --
hexis channels setup <channel> - Start the channel worker -- included in
docker compose --profile active up -d - Verify --
hexis channels status
See Channels Setup guide for the general pattern and tips.
Platform API <--> Channel Adapter <--> RabbitMQ <--> Agent Loop
Each adapter implements the ChannelAdapter ABC from channels/base.py, providing:
start(on_message)-- connect and listen for inbound messagesstop()-- disconnect gracefullysend(channel_id, text, reply_to, thread_id)-- send a messagecapabilities-- declares supported features viaChannelCapabilitiesdataclass
Adapters run in the channel worker container, maintaining persistent connections to platform APIs and routing messages through RabbitMQ to the agent's conversation loop.
- Easiest setup: Discord or Telegram (bot token only, no external services)
- Enterprise: Slack (Socket Mode works behind firewalls)
- Privacy-focused: Signal or Matrix (self-hosted, encrypted)
- Mobile: WhatsApp or iMessage (phone-based messaging)
- Self-hosted: Matrix (bring your own homeserver)
- Channels Setup guide -- general setup walkthrough
- Workers -- channel worker lifecycle