Overview
OrcBot supports multiple communication channels with per-channel configuration for auto-reply, admin permissions, and channel-specific features.Telegram
Basic Configuration
Telegram bot token obtained from @BotFather.Policy: LOCKED - Critical authentication credential.Environment variable:
TELEGRAM_TOKENEnable automatic replies to all messages without requiring /commands.
Getting Started
Create a bot with BotFather
- Open Telegram and search for @BotFather
- Send
/newbotand follow the prompts - Copy the bot token provided
Find your user ID
Send a message to your bot, then check logs or use the
/admin command to see your Telegram user ID.Commands
List of available Telegram commands displayed in the bot menu.
Rich Features
OrcBot provides enhanced Telegram UX through specialized skills:Inline Buttons
Send messages with interactive inline keyboard buttons.
Polls
Create native Telegram polls.
Reactions
React with emoji (falls back to reply if blocked).
Message Editing
Edit previously sent messages.
Pin Messages
Pin important messages in chats.
Progress Indicators
Show typing indicators during processing.
Example Configuration
orcbot.config.yaml
Basic Configuration
Enable WhatsApp channel integration.Policy: LOCKED - Channel configuration affects system architecture.
Path to WhatsApp session storage directory (for Baileys multi-device).
Enable automatic replies to all WhatsApp messages.
Owner JID for WhatsApp (format:
1234567890@s.whatsapp.net).Feature Flags
Enable replies to WhatsApp status updates.
Enable automatic reactions to messages.
Enable context profiling for better conversation understanding.
Getting Started
Scan QR code
- Open WhatsApp on your phone
- Go to Settings → Linked Devices
- Tap “Link a Device”
- Scan the QR code shown in the terminal
Find your JID
Send a message to the bot, then check logs for your JID (format:
1234567890@s.whatsapp.net).Multi-Modal Support
WhatsApp channels support:- Text messages - Standard text communication
- Voice notes - Send TTS-generated voice messages
- Images - Send and analyze images
- Documents - Send files and documents
- Reactions - React to messages with emoji
Example Configuration
orcbot.config.yaml
Discord
Basic Configuration
Discord bot token obtained from the Discord Developer Portal.Policy: LOCKED - Critical authentication credential.Environment variable:
DISCORD_TOKENEnable automatic replies to all messages (not just mentions).
Getting Started
Create Discord application
- Go to Discord Developer Portal
- Click “New Application”
- Name your bot and create it
Create bot user
- Go to the “Bot” section
- Click “Add Bot”
- Enable these Privileged Gateway Intents:
- Presence Intent
- Server Members Intent
- Message Content Intent (required)
Invite bot to server
- Go to “OAuth2” → “URL Generator”
- Select scopes:
bot,applications.commands - Select permissions:
Send Messages,Read Messages,Attach Files - Copy the generated URL and open it to invite the bot
Find your user ID
- Enable Developer Mode in Discord (Settings → Advanced)
- Right-click your username and select “Copy User ID”
Example Configuration
orcbot.config.yaml
Slack
Basic Configuration
Slack bot token (starts with
xoxb-).Policy: LOCKED - Critical authentication credential.Environment variable: SLACK_BOT_TOKENSlack app-level token for Socket Mode (starts with
xapp-).Policy: LOCKED - Critical authentication credential.Environment variable: SLACK_APP_TOKENSlack signing secret for webhook verification.Policy: LOCKED - Critical authentication credential.Environment variable:
SLACK_SIGNING_SECRETEnable automatic replies to all messages (not just mentions).
Getting Started
Create Slack app
- Go to Slack API
- Click “Create New App” → “From scratch”
- Name your app and select a workspace
Enable Socket Mode
- Go to “Socket Mode” in the sidebar
- Enable Socket Mode
- Generate an app-level token with
connections:writescope - Copy the token (starts with
xapp-)
Configure bot scopes
Go to “OAuth & Permissions” → “Scopes” and add:
chat:write- Send messageschannels:read- View channelschannels:history- Read messages in public channelsgroups:history- Read messages in private channelsim:history- Read direct messagesmpim:history- Read group messagesusers:read- View usersfiles:write- Upload files
Enable event subscriptions
- Go to “Event Subscriptions”
- Enable events
- Subscribe to bot events:
message.channelsmessage.groupsmessage.immessage.mpim
Install to workspace
- Go to “Install App”
- Click “Install to Workspace”
- Copy the Bot User OAuth Token (starts with
xoxb-)
Example Configuration
orcbot.config.yaml
OrcBot uses Socket Mode for Slack, which doesn’t require exposing a public endpoint. This makes it easier to run behind firewalls.
Basic Configuration
Enable email channel integration (SMTP + IMAP).
Enable automatic replies to incoming emails.
Email address for the bot.Environment variable:
EMAIL_ADDRESSDisplay name for outgoing emails.
Default subject line for outgoing emails.
Socket timeout for email operations in milliseconds.Environment variable:
EMAIL_SOCKET_TIMEOUT_MSSMTP Configuration (Sending)
SMTP server hostname (e.g.,
smtp.gmail.com).Environment variable: SMTP_HOSTSMTP server port (587 for TLS, 465 for SSL).Environment variable:
SMTP_PORTUse SSL/TLS for SMTP connection (port 465).Environment variable:
SMTP_SECUREUse STARTTLS for SMTP connection (port 587).Environment variable:
SMTP_STARTTLSSMTP authentication username.Environment variable:
SMTP_USERNAMESMTP authentication password.Environment variable:
SMTP_PASSWORDIMAP Configuration (Receiving)
IMAP server hostname (e.g.,
imap.gmail.com).Environment variable: IMAP_HOSTIMAP server port (993 for SSL).Environment variable:
IMAP_PORTUse SSL for IMAP connection.Environment variable:
IMAP_SECUREIMAP authentication username.Environment variable:
IMAP_USERNAMEIMAP authentication password.Environment variable:
IMAP_PASSWORDExample Configuration (Gmail)
Create app password
- Go to Google Account Security
- Enable 2-Step Verification if not already enabled
- Go to “App passwords”
- Generate a new app password for “Mail”
Admin Permissions
Per-channel admin user allowlists. Admins have access to elevated commands and skills.Policy: LOCKED - Security-critical configuration.
Admin-Only Skills
These skills require admin privileges:run_command- Execute shell commandscreate_custom_skill- Create executable pluginsmanage_config- Modify configurationspawn_agent- Create worker agentsdelegate_task- Orchestrate taskssystem_check- Verify system dependenciesself_repair_skill- Repair broken plugins
Admin status is checked per-channel. A user who is admin on Telegram is not automatically admin on Discord.
Multi-Channel Strategy
Configure multiple channels simultaneously:orcbot.config.yaml
Session Scope
Conversation session isolation:
main- Single global session (all users share memory)per-peer- Separate session per user (user’s Telegram and Discord are same session)per-channel-peer- Separate session per channel-user (user’s Telegram and Discord are different sessions)
Identity Linking
Link user identities across channels so the agent recognizes the same person.This allows:
- Shared user profile across channels
- Consistent conversation context
- Cross-channel admin permissions
Identity linking is useful when
sessionScope: per-peer but you want specific users to be recognized across channels.