This document provides detailed, step-by-step configuration guides for all supported messaging platforms in OmicsClaw.
Before configuring a channel, make sure your .env already contains a working LLM credential. You can do this either by:
oc onboardor by copying .env.example to .env and filling in the required keys manually.
At runtime, OmicsClaw accepts either:
LLM_API_KEY- A provider-specific key such as
DEEPSEEK_API_KEY,OPENAI_API_KEY, orANTHROPIC_API_KEY
- Telegram (Recommended for quick start)
- Feishu / Lark (Recommended for enterprise)
- DingTalk 钉钉
- Discord
- Slack
- WeChat企业微信 / 公众号
- iMessage (macOS only)
Telegram is the easiest channel to set up. It offers quick bot creation, unlimited messaging, and built-in rate limiting capabilities.
- Open Telegram and search for @BotFather
- Send the
/newbotcommand - Follow prompts:
- Bot name:
OmicsClaw(or any display name) - Bot username:
omicsclaw_bot(must end with_bot, must be unique)
- Bot name:
- BotFather will reply with your bot token (format:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz1234567890). Save this token securely.
Send these commands to @BotFather to customize your bot:
/setdescription @omicsclaw_bot-> "AI research assistant for multi-omics analysis. Supports spatial transcriptomics, single-cell, genomics, proteomics, and metabolomics."/setabouttext @omicsclaw_bot-> "OmicsClaw - Your persistent AI research partner."/setcommands @omicsclaw_bot->start - Welcome message and instructions skills - List all available analysis skills demo - Run a skill demo status - Bot uptime and configuration health - System health check
TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz1234567890
# Optional: Admin chat ID to bypass Telegram rate limits
# Get your chat ID by sending /start to @userinfobot
# TELEGRAM_CHAT_ID=123456789
# Optional: per-user rate limit for Telegram (default: 10, 0 = unlimited)
# RATE_LIMIT_PER_HOUR=10Before diving into console configuration, you must have the long connection script running locally because Feishu validates webhook/connection status.
# Start the bot locally first!
python -m bot.run --channels feishuIf you see debugging messages indicating WebSocket connection success, leave the terminal running and proceed to the next step.
- Log in to the Feishu Developer Console (or Lark Developer) and create a custom app.
- Add Bot Capability: Navigate to Add Features on the left menu and enable the "Bot" feature.
- Manage Permissions: Go to Permissions on the left menu. Permission type must be "Application Permission". Add these required permissions:
- ✅ Read single/group chat messages (
im:message.p2p_msg/im:message.receive_v1) - ✅ Receive @bot events in groups
- ✅ Send messages as bot (
im:message:send_as_bot) ⚠️ Get all messages in group chat (im:message.group_msg) - Critical permission for group chats.- ✅ Upload and download resource files (
im:resource) - ✅ Read group info (
im:chat)
- ✅ Read single/group chat messages (
- Enable Long Connection: Go to Event Subscriptions. Do not configure a Request URL (Webhook). Instead, directly enable the "Long Connection" option.
- Add Event Subscriptions: Still in "Event Subscriptions", click "Add events", then search and add the Receive message (
im.message.receive_v1) event.
- Navigate to Version Management & Release.
- Click "Create a version".
- Provide an App version number (e.g.,
1.0.1) and update notes. - Double-check the "Requested privileges" list at the bottom to ensure ALL permissions you added above are included.
- Click Submit for release.
Your bot will only be able to receive messages properly after the version status successfully transitions to "Published".
FEISHU_APP_ID=cli_xxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxxxxxxx
# Optional tuning
# FEISHU_THINKING_THRESHOLD_MS=2500
# FEISHU_MAX_INBOUND_IMAGE_MB=12
# FEISHU_MAX_INBOUND_FILE_MB=40
# FEISHU_MAX_ATTACHMENTS=4
# FEISHU_RATE_LIMIT_PER_HOUR=60
# FEISHU_BRIDGE_DEBUG=0- Create a robot at DingTalk Open Platform.
- Go to Features -> Robot and enable it.
- Enable Stream Mode (长连接) - This allows receiving messages via WebSocket without needing a public IP.
- Publish the app and add the bot to a group, or test via direct message.
- Set variables in
.env:DINGTALK_CLIENT_ID=ding... DINGTALK_CLIENT_SECRET=xxxxxxxxxxxxxxxxxx # Optional # DINGTALK_RATE_LIMIT_PER_HOUR=60
- Go to Discord Developer Portal and create a New Application.
- Left menu Bot -> Reset Token -> Copy the Bot Token.
- CRITICAL: Under Privileged Gateway Intents, enable Message Content Intent.
- Left menu OAuth2 -> URL Generator:
- Scopes: check
bot - Bot Permissions: check
Send Messages,Read Message History,Attach Files,Add Reactions - Copy the generated URL, open in browser, select a server to invite the bot.
- Scopes: check
- Set variables in
.env:DISCORD_BOT_TOKEN=MTIzNDU2Nzg5.xxxx.xxxxx # Optional # DISCORD_RATE_LIMIT_PER_HOUR=60 # DISCORD_PROXY=http://127.0.0.1:7890
- Go to Slack API App Dashboard and Create New App (From scratch).
- Go to Socket Mode -> enable -> Generate App-Level Token (scope
connections:write). Copy thisxapp-...token. - Go to OAuth & Permissions -> add these Bot Token Scopes:
chat:write,channels:history,groups:history,im:history,files:read,files:write,reactions:write - Click Install to Workspace -> copy the Bot User OAuth Token (
xoxb-...). - Go to Event Subscriptions -> enable -> Subscribe to bot events:
message.channels,message.groups,message.im,app_mention. - Set variables in
.env:SLACK_BOT_TOKEN=xoxb-xxxx-xxxx-xxxx SLACK_APP_TOKEN=xapp-1-xxxx-xxxx # Optional # SLACK_RATE_LIMIT_PER_HOUR=60
WeChat requires a publicly accessible webhook URL (port 9001 by default). For local development, use ngrok http 9001.
- Log in to WeCom Admin Console -> App Management -> create a custom app.
- Copy the Corp ID (from "My Enterprise"), AgentId, and Secret (from the App).
- In app details -> Receive Messages -> Set API Receive -> URL:
http://your-server-ip:9001/wechat/callback - Copy Token and EncodingAESKey.
- CRITICAL: In app details -> Trusted IP -> add your server's public IP address. Without this, WeChat APIs will fail with error
60020. - Configure
.env:WECOM_CORP_ID=ww... WECOM_AGENT_ID=1000002 WECOM_SECRET=xxxxxxxxxxxxxxxxxx WECOM_TOKEN=xxxxxxxxxxxxxxxxxx WECOM_ENCODING_AES_KEY=xxxxxxxxxxxxxxxxxx WECOM_WEBHOOK_PORT=9001
- Log in to WeChat Official Account Platform -> Settings & Development -> Basic Configuration.
- Copy AppID and AppSecret.
- Configure Server URL:
http://your-server-ip:9001/wechat/callback - Configure
.env:WECHAT_APP_ID=wx... WECHAT_APP_SECRET=xxxxxxxxxxxxxxxxxx WECHAT_TOKEN=xxxxxxxxxxxxxxxxxx WECHAT_ENCODING_AES_KEY=xxxxxxxxxxxxxxxxxx WECHAT_WEBHOOK_PORT=9001
- Register as a developer at QQ Open Platform.
- Create a bot application and complete developer verification.
- Copy the App ID and App Secret.
- In the bot dashboard, ensure you enable the "C2C消息" (Direct Message) and "群聊消息" (Group Chat) intents.
- Search for and add the bot as a friend in QQ, or add it to a group.
- Configure
.env:QQ_APP_ID=xxxxxxxxxx QQ_APP_SECRET=xxxxxxxxxxxxxxxxxx # Optional # QQ_ALLOWED_SENDERS=12345678,87654321 # QQ_RATE_LIMIT_PER_HOUR=60
Email operates as a channel by polling an IMAP inbox and responding via SMTP.
- Prepare an email account (Gmail, Outlook, custom domain).
- For Gmail, you must enable 2FA and generate an App Password (standard passwords will not work). Go to Google App Passwords.
- Ensure IMAP access is enabled in the account settings.
- Configure
.env:EMAIL_IMAP_HOST=imap.gmail.com EMAIL_IMAP_PORT=993 EMAIL_IMAP_USERNAME=your-bot@gmail.com EMAIL_IMAP_PASSWORD=your-app-password EMAIL_SMTP_HOST=smtp.gmail.com EMAIL_SMTP_PORT=587 EMAIL_SMTP_USERNAME=your-bot@gmail.com EMAIL_SMTP_PASSWORD=your-app-password EMAIL_FROM_ADDRESS=your-bot@gmail.com # Optional # EMAIL_IMAP_MAILBOX=INBOX # EMAIL_IMAP_USE_SSL=1 # EMAIL_SMTP_STARTTLS=1 # EMAIL_POLL_INTERVAL=30 # EMAIL_MARK_SEEN=1 # EMAIL_ALLOWED_SENDERS=alice@example.com,bob@example.com
iMessage integration relies on the imsg CLI and requires a macOS host natively signed into Messages.app.
- Ensure Messages.app is signed into iCloud and functioning locally.
- Install the
imsgCLI via Homebrew:brew install anthropics/tap/imsg
- Verify installation:
imsg --version - CRITICAL: Grant your Terminal app (or IDE) "Full Disk Access" in macOS
System Settings -> Privacy & Security. This is required to read the iMessagechat.db. - Configure
.env:IMESSAGE_CLI_PATH=/opt/homebrew/bin/imsg # Or $(which imsg) IMESSAGE_ALLOWED_SENDERS=+1234567890,user@icloud.com # Optional # IMESSAGE_SERVICE=auto # IMESSAGE_REGION=US
Recommended: Always set an allowlist for iMessage to prevent the bot from responding to unintended personal messages.