Channels

Mudabbir connects to multiple messaging platforms through channel adapters. Each adapter translates between the platform’s native protocol and Mudabbir’s internal message bus.

Supported Channels

Running Channels

Web Dashboard (Default)

The web dashboard is the default mode. Simply run:

Terminal window
mudabbir

The dashboard auto-starts all configured channel adapters on startup. You can manage channels from the Channels modal in the sidebar.

Headless Mode

Run specific channels without the web dashboard:

Terminal window
# Single channel
mudabbir --telegram
mudabbir --discord
mudabbir --slack
# Multiple channels
mudabbir --discord --slack --whatsapp
# All channel flags
mudabbir --telegram --discord --slack --whatsapp --signal --matrix --teams --gchat

Channel Management API

The web dashboard exposes REST endpoints for channel management:

EndpointMethodDescription
/api/channels/statusGETGet status of all channels
/api/channels/savePOSTSave channel configuration
/api/channels/togglePOSTStart or stop a channel

Streaming Behavior

Each channel handles streaming differently based on platform limitations:

ChannelStreaming Method
Web DashboardReal-time WebSocket chunks
TelegramEdit-in-place (message updates)
DiscordEdit-in-place (1.5s rate limit)
SlackThread message updates
WhatsAppAccumulate + send on completion
SignalAccumulate + send on completion
MatrixEdit-in-place (m.replace)
TeamsAccumulate + send on completion
Google ChatAccumulate + send on completion

Channel-Specific Session Keys

Each channel generates unique session keys to maintain separate conversations:

  • Telegram: {chat_id} or {chat_id}:topic:{topic_id}
  • Discord: {channel_id} or dm:{user_id}
  • Slack: {channel_id}:{thread_ts}
  • WhatsApp: {phone_number}
  • Signal: {phone_number}
  • Matrix: {room_id}
  • Teams: {conversation_id}
  • Google Chat: {space_name}

Access Control

Each channel supports allow-listing to restrict who can interact with your agent:

Terminal window
# Telegram
export MUDABBIR_ALLOWED_TELEGRAM_IDS="123456,789012"
# Discord
export MUDABBIR_DISCORD_ALLOWED_GUILD_IDS="111,222"
export MUDABBIR_DISCORD_ALLOWED_USER_IDS="333,444"
# Slack
export MUDABBIR_SLACK_ALLOWED_CHANNEL_IDS="C01,C02"
# WhatsApp
export MUDABBIR_WHATSAPP_ALLOWED_PHONE_NUMBERS="+1234567890"