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_TOKENGetting Started
1
Create a bot with BotFather
- Open Telegram and search for @BotFather
- Send
/newbotand follow the prompts - Copy the bot token provided
2
Configure OrcBot
orcbot.config.yaml
.env
3
Start the bot
4
Find your user ID
Send a message to your bot, then check logs or use the
/admin command to see your Telegram user ID.5
Add yourself as admin
orcbot.config.yaml
Commands
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).
Feature Flags
Getting Started
1
Enable WhatsApp
orcbot.config.yaml
2
Start OrcBot
3
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
4
Find your JID
Send a message to the bot, then check logs for your JID (format:
1234567890@s.whatsapp.net).5
Set owner and admins
orcbot.config.yaml
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_TOKENGetting Started
1
Create Discord application
- Go to Discord Developer Portal
- Click “New Application”
- Name your bot and create it
2
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)
3
Get bot token
Under the “Bot” section, click “Reset Token” and copy the token.
4
Configure OrcBot
orcbot.config.yaml
.env
5
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
6
Find your user ID
- Enable Developer Mode in Discord (Settings → Advanced)
- Right-click your username and select “Copy User ID”
7
Add yourself as admin
orcbot.config.yaml
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_SECRETGetting Started
1
Create Slack app
- Go to Slack API
- Click “Create New App” → “From scratch”
- Name your app and select a workspace
2
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-)
3
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
4
Enable event subscriptions
- Go to “Event Subscriptions”
- Enable events
- Subscribe to bot events:
message.channelsmessage.groupsmessage.immessage.mpim
5
Install to workspace
- Go to “Install App”
- Click “Install to Workspace”
- Copy the Bot User OAuth Token (starts with
xoxb-)
6
Get signing secret
Go to “Basic Information” → “App Credentials” and copy the Signing Secret.
7
Configure OrcBot
orcbot.config.yaml
.env
8
Find your user ID
- Click on your profile in Slack
- Click “More” → “Copy member ID”
9
Add yourself as admin
orcbot.config.yaml
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
Socket timeout for email operations in milliseconds.Environment variable:
EMAIL_SOCKET_TIMEOUT_MSSMTP Configuration (Sending)
IMAP Configuration (Receiving)
Example Configuration (Gmail)
1
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”
2
Configure OrcBot
orcbot.config.yaml
.env
3
Add admins
orcbot.config.yaml
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.