Channel Reference

10 Channels. One Config.

Every channel implements the same Go interface. Enable, configure, and forget — the gateway handles the rest.

Filter:
Telegram
Messaging
● Stable

Full Telegram bot using gopkg.in/telebot.v3 long-polling. Handles text, photos, and document uploads with multi-account support.

telebot.v3 Long-poll Multi-account
# Get token from @BotFather
channels:
  telegram:
    enabled: true
    adapter: telegram
    accounts:
      - id: main
        token: "${TELEGRAM_BOT_TOKEN}"
  1. Message @BotFather on Telegram → /newbot
  2. Copy the token to TELEGRAM_BOT_TOKEN env var
  3. Set enabled: true in config.yaml
Discord
Gaming / Community
● Stable

Discord bot using discordgo. Listens to guild and DM messages. Respects guild/DM intents and ignores its own messages to prevent loops.

discordgo WebSocket Intents
# discord.com/developers → Application → Bot
channels:
  discord:
    enabled: true
    adapter: discord
    accounts:
      - id: main
        token: "${DISCORD_BOT_TOKEN}"
  1. Create application at discord.com/developers
  2. Add a Bot → copy token → enable Message Content Intent
  3. Invite bot to server via OAuth2 URL generator
#
Slack
Workspace
● Stable

Pure HTTP webhook adapter — no Slack SDK. Listens on :3000/slack/events. Handles URL verification challenge automatically and ignores bot messages.

Pure stdlib Webhook Port :3000
# Point Slack Events API to /slack/events
channels:
  slack:
    enabled: true
    adapter: slack
    accounts:
      - id: main
        token: "${SLACK_BOT_TOKEN}"
  1. Create Slack app at api.slack.com/apps
  2. Enable Events API, subscribe to message.channels
  3. Point webhook URL to https://yourhost:3000/slack/events
WhatsApp
Messaging
● Stable

Meta Cloud API webhook on :3001/whatsapp/events. Handles GET verify challenge and POST message events. Sends replies via the Messages API.

Pure stdlib Meta Cloud API Port :3001
channels:
  whatsapp:
    enabled: true
    adapter: whatsapp
    options:
      verify_token: "${WHATSAPP_VERIFY_TOKEN}"
    accounts:
      - id: main
        token: "${WHATSAPP_ACCESS_TOKEN}"
        name: "${WHATSAPP_PHONE_NUMBER_ID}"
  1. Set up business account at developers.facebook.com
  2. Create an app → WhatsApp → copy Phone Number ID
  3. Configure webhook pointing to /whatsapp/events
Signal
Secure Messaging
◐ Beta

Bridges the signal-cli-rest-api project. Supports both webhook mode (push) and polling mode (2-second GET loop). Account name is your phone number.

signal-cli REST Webhook / Poll Port :3002
# Run: docker run -p 8080:8080 bbernhard/signal-cli-rest-api
channels:
  signal:
    enabled: true
    adapter: signal
    options:
      base_url: "http://localhost:8080"
      mode: "webhook"
    accounts:
      - id: main
        name: "+15551234567"
  1. Run signal-cli-rest-api via Docker
  2. Register your Signal number via the REST API
  3. Set mode to webhook or polling
Twitch
Live Chat / Streaming
● Stable

Raw TCP IRC connection to irc.chat.twitch.tv:6667. Zero external dependencies. Handles PING/PONG keepalive and auto-reconnects on drop. Account name = channels to join.

Pure stdlib TCP / IRC Auto-reconnect
# Token format: "oauth:your_token_here"
channels:
  twitch:
    enabled: true
    adapter: twitch
    accounts:
      - id: main
        token: "${TWITCH_OAUTH_TOKEN}"
        name: "mychannel,otherchannel"
  1. Get OAuth token at dev.twitch.tv/console
  2. Token must include chat:read and chat:edit scopes
  3. Set name to comma-separated list of channels to join
Matrix
Decentralised Messaging
◐ Beta

Pure HTTP long-polling via /_matrix/client/v3/sync. Auto-joins invited rooms. Skips own messages. Account name is the homeserver URL.

Pure stdlib CS API v3 Self-hostable
channels:
  matrix:
    enabled: true
    adapter: matrix
    accounts:
      - id: main
        token: "${MATRIX_ACCESS_TOKEN}"
        name: "https://matrix.org"
  1. Register a bot account on any Matrix homeserver
  2. Get access token via login API or Element settings
  3. Set name to your homeserver URL
iMessage
Apple / BlueBubbles
◐ Beta

Bridges Apple iMessage via the BlueBubbles server. Webhook on :3003/imessage/events. Requires a Mac with iMessage signed in.

Pure stdlib BlueBubbles API Port :3003
# Requires BlueBubbles on a Mac — bluebubbles.app
channels:
  imessage:
    enabled: true
    adapter: imessage
    accounts:
      - id: main
        token: "${BLUEBUBBLES_PASSWORD}"
        name: "http://192.168.1.10:1234"
  1. Install BlueBubbles on a Mac with iMessage active
  2. Enable webhooks in BlueBubbles → point to /imessage/events
  3. Set name to your BlueBubbles server URL
Obsidian
Knowledge Base
◐ Beta

Polls your Obsidian vault via the Local REST API community plugin. Detects modified notes and appends AI responses under a configurable heading. Skips notes that already have a response.

Pure stdlib Local REST API Polling
channels:
  obsidian:
    enabled: true
    adapter: obsidian
    options:
      poll_interval: "5s"
      watch_folder:  "Inbox"
      response_heading: "## AI Response"
      skip_tls_verify: true
    accounts:
      - id: main
        token: "${OBSIDIAN_API_KEY}"
        name: "https://127.0.0.1:27124"
  1. Install "Local REST API" community plugin in Obsidian
  2. Settings → Local REST API → copy API key
  3. Set watch_folder to the folder you want monitored
MQTT
IoT / Embedded
◐ Beta

Full MQTT 3.1.1 client written from scratch with Go stdlib. No external broker library. IoT devices publish to devices/{id}/messages, AI responds to devices/{id}/responses.

Pure stdlib MQTT 3.1.1 QoS 0/1
# Mosquitto: brew install mosquitto
channels:
  mqtt:
    enabled: true
    adapter: mqtt
    options:
      broker:    "tcp://localhost:1883"
      client_id: "superfastclaw"
      username:  "${MQTT_USERNAME}"
      password:  "${MQTT_PASSWORD}"
      qos: 1
  1. Install Mosquitto or any MQTT 3.1.1 broker
  2. IoT devices publish to devices/{device_id}/messages
  3. Receive AI responses at devices/{device_id}/responses