Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/HKUDS/nanobot/llms.txt

Use this file to discover all available pages before exploring further.

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