-
Notifications
You must be signed in to change notification settings - Fork 2
Backends
csp-bot connects to chat platforms through csp adapters, wrapped by chatom for a unified message, user, and channel model.
This page is the reference for which backends exist, how to authenticate them, and what each one can do.
| Backend | Adapter | Support |
|---|---|---|
| Slack | point72/csp-adapter-slack | Official |
| Symphony | point72/csp-adapter-symphony | Official |
| Discord | csp-community/csp-adapter-discord | Community |
| Telegram | csp-community/csp-adapter-telegram | Community |
The adapters are optional dependencies — install the ones you need:
pip install csp-adapter-slack csp-adapter-telegramEach backend reads its credentials from environment variables, matching the names used by the built-in backend configs.
| Backend | Environment variables |
chatom config field |
|---|---|---|
| Slack |
SLACK_BOT_TOKEN, SLACK_APP_TOKEN
|
bot_token, app_token
|
| Discord | DISCORD_TOKEN |
token |
| Symphony |
SYMPHONY_HOST, SYMPHONY_BOT_USERNAME, SYMPHONY_CERT_PATH
|
host, bot_username, bot_certificate_path
|
| Telegram | TELEGRAM_BOT_TOKEN |
bot_token |
Symphony needs a host, a bot username, and either a certificate or an RSA private key.
The built-in preset uses certificate authentication with a combined certificate/key .pem file on disk (bot_certificate_path); a path keeps long-lived key material out of the process environment.
Discord's message_content is a privileged intent.
The built-in preset requests it, but it must also be enabled for the bot in the Discord Developer Portal, or the bot will not receive command text in guild channels.
To set a field other than the defaults — for example, to authenticate Symphony with an RSA key instead of a certificate — override it in your own config:
# @package modules.bot.config
symphony:
config:
bot_private_key_path: /path/to/bot-key.pemFor platform-specific setup of tokens and bot accounts, follow the adapter guides:
| Backend | Public Room | Private Room | User-initiated IM | Threads | Reactions | Attachments |
|---|---|---|---|---|---|---|
| Slack | X | X | X | X | X | |
| Symphony | X | X | X | |||
| Discord | X | X | X | X | X | |
| Telegram | X | X | X |
Response formatting varies between backends, and built-in commands render their output in the right dialect for each one.
| Backend | Format | Tables | Images |
|---|---|---|---|
| Slack | Minimal Markdown | No | Yes |
| Symphony | Custom HTML | Yes | Yes |
| Discord | Minimal Markdown | No | Yes |
| Telegram | HTML | No | Yes |
This wiki is autogenerated. To made updates, open a PR against the original source file in docs/wiki.
Get Started
For Developers
Coming soon!
For Contributors