Skip to main content
nanobot supports integration with multiple chat platforms, allowing you to interact with your AI assistant through your preferred messaging app. All channels use a unified configuration structure and support common features like:
  • Access control with allowFrom lists
  • Media attachment handling
  • Typing indicators
  • Message threading
  • User authentication

Supported Channels

Telegram

Bot token from @BotFather • Proxy support • Recommended

Discord

Bot token + Message Content intent • Group policies

WhatsApp

QR code scan • Node.js bridge • Media support

Slack

Bot token + App-Level token • Socket Mode • No public URL

Feishu

App ID + App Secret • WebSocket • No public IP needed

DingTalk

App Key + App Secret • Stream Mode

QQ

App ID + App Secret • Private messages • WebSocket

Matrix

Access token • E2EE support • Element compatible

Email

IMAP/SMTP credentials • Auto-reply • Email polling

Mochat

Claw token • Socket.IO • Auto-setup available

Quick Comparison

ChannelSetup DifficultyPublic IP RequiredMedia SupportGroup Chat
TelegramEasyNo✅ Yes✅ Yes
DiscordEasyNo✅ Yes✅ Yes
WhatsAppMediumNo✅ Yes✅ Yes
SlackMediumNo✅ Yes✅ Yes
FeishuMediumNo✅ Yes✅ Yes
DingTalkMediumNo✅ Yes✅ Yes
QQMediumNoLimited❌ No
MatrixMediumNo✅ Yes✅ Yes
EmailEasyNo✅ Yes❌ No
MochatEasyNo✅ Yes✅ Yes

Common Configuration

All channels share these configuration patterns:

Access Control

{
  "channels": {
    "<channel_name>": {
      "enabled": true,
      "allowFrom": ["user_id_1", "user_id_2"]
    }
  }
}
  • Empty allowFrom array ([]) = Allow all users
  • Non-empty array = Only listed users can interact

Group Policies

For channels supporting group chats:
{
  "groupPolicy": "mention"  // or "open" or "allowlist"
}
  • mention - Only respond when @mentioned
  • open - Respond to all messages
  • allowlist - Only respond in specific groups/channels

Gateway Configuration

Global settings that apply to all channels:
{
  "gateway": {
    "port": 18790,
    "sendProgress": true,
    "sendToolHints": false
  }
}
port
integer
default:"18790"
HTTP server port for the gateway
sendProgress
boolean
default:"true"
Stream progress messages during tool execution
sendToolHints
boolean
default:"false"
Show tool call details in messages

Running the Gateway

Start the gateway to enable all configured channels:
nanobot gateway
Options:
  • -w, --workspace - Workspace directory (default: ~/.nanobot/workspace)
  • -c, --config - Config file path (default: ~/.nanobot/config.json)
  • -p, --port - Gateway port (default: 18790)
  • -v, --verbose - Enable debug logging

Next Steps

Configure a Channel

Follow the setup guide for your preferred platform

Security Settings

Learn about access control and security best practices

Build docs developers (and LLMs) love