Channels¶
Channels connect Rune agents to 40+ messaging platforms. Inbound messages route to agents via the channel bridge; agents can send outbound messages via the channel-send tool.
Supported Platforms¶
Partial list: Slack, Discord, Telegram, Teams, WhatsApp, Matrix, Mattermost, Signal, Rocket.Chat, Email, IRC, XMPP, Twitch, Reddit, Mastodon, Nostr, Bluesky, LinkedIn, Line, Viber, Webex, Zulip, DingTalk, Feishu, Lark, Guilded, Revolt, Gitter, Keybase, Nextcloud Talk, Ntfy, Gotify, Mumble, Pumble, Twist, Threema, Discourse
Architecture¶
- Each platform has a ChannelAdapter implementation
- BridgeManager owns adapters and exposes a ChannelBridgeHandle
- Inbound messages route to the appropriate agent via AgentRouter
- Gateway exposes:
POST /channels/webhook— Inbound HTTP (requiresRUNE_WEBHOOK_SECRET,X-Webhook-Signature)GET /channels/status— Channel adapter statuses
Configuration (channels.yaml)¶
Channel integrations are configured in a channels.yaml file in the agent or project directory:
channels:
- type: telegram
bot_token: ${RUNE_TELEGRAM_BOT_TOKEN}
- type: slack
bot_token: ${RUNE_SLACK_BOT_TOKEN}
signing_secret: ${RUNE_SLACK_SIGNING_SECRET}
- type: discord
bot_token: ${RUNE_DISCORD_BOT_TOKEN}
- Values starting with
${...}are resolved from environment variables at runtime - The
typefield must match one of the supported platform identifiers (lowercase) - Multiple channels of different types can be active simultaneously
Outbound¶
Agents use the built-in rune@channel-send tool to send messages to channels.