Capabilities
| Feature | Supported |
|---|---|
| Direct messages | Yes |
| Room messages | Yes |
| End-to-end encryption | Optional |
| File uploads | Yes |
| Reactions | Yes |
| Federation | Yes (any homeserver) |
| Room allowlist | Yes |
Setup
Register a Matrix account
Create a bot account on your Matrix homeserver (or matrix.org). Use a dedicated account, not your personal one.
Environment Variables
Your Matrix homeserver URL (e.g.,
https://matrix.org or https://your-homeserver.com).Bot user access token. Format:
syt_...Bot user ID. Format:
@username:homeserver.comDevice ID for E2EE sessions. Auto-generated if not set.
Enable end-to-end encryption. Defaults to
false. Requires additional setup.Comma-separated list of room IDs the bot will respond in. Leave empty to allow all rooms.
Configuration Example
- .env
- Self-hosted homeserver
- settings.yml
Notes
- Matrix uses long-polling (
/sync) by default - no public webhook URL required. - E2EE requires the bot’s device to exchange keys with room members. Enable only if needed.
- The bot joins rooms automatically when invited.
- For Synapse homeservers, you can register the bot with admin-level access using the registration token.
- Works with any Matrix client: Element, FluffyChat, Nheko, etc.
Related
- Chat Providers Overview - Compare all 27 supported channels
- Rocket.Chat - Another self-hosted open-source messaging option
- Signal - End-to-end encrypted messaging via signald bridge
- profclaw channels - Enable and test the Matrix connection from the CLI