Skip to content

Overview

github-actions[bot] edited this page Jun 22, 2026 · 9 revisions

csp-bot is a framework for building command-driven chat bots that run against one or more chat platforms at once.

It is composed of two major components:

  • Engine: csp and csp-gateway, a streaming, complex event processor core and corresponding application framework
  • Configuration: ccflow, a Pydantic/Hydra based extensible, composeable dependency injection and configuration framework

Messages, users, and channels are unified across platforms by chatom, so a single bot and its commands work the same on Slack, Symphony, Discord, and Telegram.

Running your first bot

Let's run a Slack bot. First, follow the csp-adapter-slack setup to create a bot named "CSP Bot". That gives you two tokens: an app token and a bot token.

Warning

Be sure to avoid committing tokens for any backend into a repository.

Provide the tokens through the environment and start the bot:

export SLACK_BOT_TOKEN=xoxb-...
export SLACK_APP_TOKEN=xapp-...

csp-bot-start +gateway=slack

csp-bot uses ccflow and hydra for configuration, so the command line is composed of config selections rather than flags. +gateway=slack selects the pre-canned Slack gateway; see Configuration for the full picture.

Message your bot, and by default it replies with a help menu of all available commands:

Message to bot with a response of all commands

Running against multiple backends

The same bot can connect to several platforms simultaneously. Add backends by listing them — no per-combination config required:

csp-bot-start +gateway=bot +backend='[slack,telegram]'

See Configuration for pre-canned combinations and how to capture your selection in a file.

Where to go next

Clone this wiki locally