Skip to main content

Overview

OrcBot supports multiple communication channels with per-channel configuration for auto-reply, admin permissions, and channel-specific features.

Telegram

Basic Configuration

string
Telegram bot token obtained from @BotFather.Policy: LOCKED - Critical authentication credential.Environment variable: TELEGRAM_TOKEN
boolean
default:false
Enable automatic replies to all messages without requiring /commands.

Getting Started

1

Create a bot with BotFather

  1. Open Telegram and search for @BotFather
  2. Send /newbot and follow the prompts
  3. Copy the bot token provided
2

Configure OrcBot

orcbot.config.yaml
Or use environment variable:
.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

array
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

WhatsApp

Basic Configuration

boolean
default:false
Enable WhatsApp channel integration.Policy: LOCKED - Channel configuration affects system architecture.
string
default:"~/.orcbot/whatsapp-session"
Path to WhatsApp session storage directory (for Baileys multi-device).
boolean
default:false
Enable automatic replies to all WhatsApp messages.
string
Owner JID for WhatsApp (format: 1234567890@s.whatsapp.net).

Feature Flags

boolean
default:false
Enable replies to WhatsApp status updates.
boolean
default:false
Enable automatic reactions to messages.
boolean
default:false
Enable context profiling for better conversation understanding.

Getting Started

1

Enable WhatsApp

orcbot.config.yaml
2

Start OrcBot

A QR code will be displayed in the terminal.
3

Scan QR code

  1. Open WhatsApp on your phone
  2. Go to Settings → Linked Devices
  3. Tap “Link a Device”
  4. 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
WhatsApp uses the Baileys library which requires a persistent session. Do not delete the whatsappSessionPath directory or you’ll need to re-link the device.

Discord

Basic Configuration

string
Discord bot token obtained from the Discord Developer Portal.Policy: LOCKED - Critical authentication credential.Environment variable: DISCORD_TOKEN
boolean
default:false
Enable automatic replies to all messages (not just mentions).

Getting Started

1

Create Discord application

  1. Go to Discord Developer Portal
  2. Click “New Application”
  3. Name your bot and create it
2

Create bot user

  1. Go to the “Bot” section
  2. Click “Add Bot”
  3. 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
Or use environment variable:
.env
5

Invite bot to server

  1. Go to “OAuth2” → “URL Generator”
  2. Select scopes: bot, applications.commands
  3. Select permissions: Send Messages, Read Messages, Attach Files
  4. Copy the generated URL and open it to invite the bot
6

Find your user ID

  1. Enable Developer Mode in Discord (Settings → Advanced)
  2. Right-click your username and select “Copy User ID”
7

Add yourself as admin

orcbot.config.yaml

Example Configuration

orcbot.config.yaml
Message Content Intent is required. Without it, the bot cannot read message content. Enable it in the Discord Developer Portal under Bot → Privileged Gateway Intents.

Slack

Basic Configuration

string
Slack bot token (starts with xoxb-).Policy: LOCKED - Critical authentication credential.Environment variable: SLACK_BOT_TOKEN
string
Slack app-level token for Socket Mode (starts with xapp-).Policy: LOCKED - Critical authentication credential.Environment variable: SLACK_APP_TOKEN
string
Slack signing secret for webhook verification.Policy: LOCKED - Critical authentication credential.Environment variable: SLACK_SIGNING_SECRET
boolean
default:false
Enable automatic replies to all messages (not just mentions).

Getting Started

1

Create Slack app

  1. Go to Slack API
  2. Click “Create New App” → “From scratch”
  3. Name your app and select a workspace
2

Enable Socket Mode

  1. Go to “Socket Mode” in the sidebar
  2. Enable Socket Mode
  3. Generate an app-level token with connections:write scope
  4. Copy the token (starts with xapp-)
3

Configure bot scopes

Go to “OAuth & Permissions” → “Scopes” and add:
  • chat:write - Send messages
  • channels:read - View channels
  • channels:history - Read messages in public channels
  • groups:history - Read messages in private channels
  • im:history - Read direct messages
  • mpim:history - Read group messages
  • users:read - View users
  • files:write - Upload files
4

Enable event subscriptions

  1. Go to “Event Subscriptions”
  2. Enable events
  3. Subscribe to bot events:
    • message.channels
    • message.groups
    • message.im
    • message.mpim
5

Install to workspace

  1. Go to “Install App”
  2. Click “Install to Workspace”
  3. 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
Or use environment variables:
.env
8

Find your user ID

  1. Click on your profile in Slack
  2. 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.

Email

Basic Configuration

boolean
default:false
Enable email channel integration (SMTP + IMAP).
boolean
default:false
Enable automatic replies to incoming emails.
string
Email address for the bot.Environment variable: EMAIL_ADDRESS
string
Display name for outgoing emails.
string
default:"OrcBot response"
Default subject line for outgoing emails.
number
default:15000
Socket timeout for email operations in milliseconds.Environment variable: EMAIL_SOCKET_TIMEOUT_MS

SMTP Configuration (Sending)

string
SMTP server hostname (e.g., smtp.gmail.com).Environment variable: SMTP_HOST
number
default:587
SMTP server port (587 for TLS, 465 for SSL).Environment variable: SMTP_PORT
boolean
default:false
Use SSL/TLS for SMTP connection (port 465).Environment variable: SMTP_SECURE
boolean
default:true
Use STARTTLS for SMTP connection (port 587).Environment variable: SMTP_STARTTLS
string
SMTP authentication username.Environment variable: SMTP_USERNAME
string
SMTP authentication password.Environment variable: SMTP_PASSWORD

IMAP Configuration (Receiving)

string
IMAP server hostname (e.g., imap.gmail.com).Environment variable: IMAP_HOST
number
default:993
IMAP server port (993 for SSL).Environment variable: IMAP_PORT
boolean
default:true
Use SSL for IMAP connection.Environment variable: IMAP_SECURE
string
IMAP authentication username.Environment variable: IMAP_USERNAME
string
IMAP authentication password.Environment variable: IMAP_PASSWORD

Example Configuration (Gmail)

1

Create app password

  1. Go to Google Account Security
  2. Enable 2-Step Verification if not already enabled
  3. Go to “App passwords”
  4. Generate a new app password for “Mail”
2

Configure OrcBot

orcbot.config.yaml
Or use environment variables:
.env
3

Add admins

orcbot.config.yaml
Use app-specific passwords. Most email providers require app-specific passwords for third-party applications. Do not use your main account password.

Admin Permissions

object
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 commands
  • create_custom_skill - Create executable plugins
  • manage_config - Modify configuration
  • spawn_agent - Create worker agents
  • delegate_task - Orchestrate tasks
  • system_check - Verify system dependencies
  • self_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

enum
default:"per-channel-peer"
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.