Every channel implements the same Go interface. Enable, configure, and forget — the gateway handles the rest.
Full Telegram bot using gopkg.in/telebot.v3 long-polling. Handles text, photos, and document uploads with multi-account support.
# Get token from @BotFather channels: telegram: enabled: true accounts: - id: main token: "${TELEGRAM_BOT_TOKEN}"
/newbotTELEGRAM_BOT_TOKEN env varenabled: true in config.yamlDiscord bot using discordgo. Listens to guild and DM messages. Respects guild/DM intents and ignores its own messages to prevent loops.
# discord.com/developers → Bot channels: discord: enabled: true accounts: - id: main token: "${DISCORD_BOT_TOKEN}"
Pure HTTP webhook adapter — no Slack SDK. Listens on :3000/slack/events. Handles URL verification challenge automatically.
# Point Slack Events API to /slack/events channels: slack: enabled: true accounts: - id: main token: "${SLACK_BOT_TOKEN}"
message.channelshttps://yourhost:3000/slack/eventsMeta Cloud API webhook on :3001/whatsapp/events. Handles GET verify challenge and POST message events.
channels:
whatsapp:
enabled: true
options:
verify_token: "${WHATSAPP_VERIFY_TOKEN}"
accounts:
- id: main
token: "${WHATSAPP_ACCESS_TOKEN}"
name: "${WHATSAPP_PHONE_NUMBER_ID}"
/whatsapp/eventsBridges the signal-cli-rest-api project. Supports both webhook mode (push) and polling mode (2-second GET loop).
# docker run -p 8080:8080 bbernhard/signal-cli-rest-api channels: signal: enabled: true options: base_url: "http://localhost:8080" mode: "webhook" accounts: - id: main name: "+15551234567"
webhook or pollingRaw TCP IRC connection to irc.chat.twitch.tv:6667. Zero external dependencies. Auto-reconnects on drop.
# Token format: "oauth:your_token_here" channels: twitch: enabled: true accounts: - id: main token: "${TWITCH_OAUTH_TOKEN}" name: "mychannel,otherchannel"
chat:read and chat:edit scopesname to comma-separated list of channels to joinPure HTTP long-polling via /_matrix/client/v3/sync. Auto-joins invited rooms. Skips own messages.
channels:
matrix:
enabled: true
accounts:
- id: main
token: "${MATRIX_ACCESS_TOKEN}"
name: "https://matrix.org"
name to your homeserver URLBridges Apple iMessage via the BlueBubbles server. Webhook on :3003/imessage/events. Requires a Mac with iMessage signed in.
# Requires BlueBubbles on a Mac — bluebubbles.app channels: imessage: enabled: true accounts: - id: main token: "${BLUEBUBBLES_PASSWORD}" name: "http://192.168.1.10:1234"
/imessage/eventsname to your BlueBubbles server URLPolls your Obsidian vault via the Local REST API community plugin. Detects modified notes and appends AI responses under a configurable heading.
channels:
obsidian:
enabled: true
options:
poll_interval: "5s"
watch_folder: "Inbox"
accounts:
- id: main
token: "${OBSIDIAN_API_KEY}"
name: "https://127.0.0.1:27124"
watch_folder to the folder you want monitoredFull MQTT 3.1.1 client written from scratch with Go stdlib. IoT devices publish to devices/{id}/messages, AI responds to devices/{id}/responses.
# brew install mosquitto channels: mqtt: enabled: true options: broker: "tcp://localhost:1883" client_id: "rapidsecureclaw" username: "${MQTT_USERNAME}" password: "${MQTT_PASSWORD}" qos: 1
devices/{device_id}/messagesdevices/{device_id}/responses