OpenWhale can send and receive messages through 6 platforms — unified inbox, one AI brain.
| Channel | How It Works | Source |
|---|---|---|
| Scan QR code, uses your personal account | whatsapp-baileys.ts |
|
| Telegram | Create a bot with @BotFather | telegram.ts |
| Discord | Add bot to your server | discord.ts |
| Slack | Slack app integration | slack.ts |
| Twitter/X | Auto-reply to mentions via bird CLI (cookie auth, no API!) | twitter.ts |
| iMessage | macOS native — read and send iMessages via imsg CLI |
imessage/ |
All channels share a common AI processor (src/channels/shared-ai-processor.ts) so responses are consistent regardless of which platform a message arrives on.
The easiest to set up — works with your personal WhatsApp account via the Baileys library.
- Go to
http://localhost:7777/dashboard - Navigate to Channels → WhatsApp
- Click Connect
- Scan the QR code with your phone (WhatsApp → Linked Devices → Link a Device)
- Done! Messages to your number will be handled by the AI
npm run cli whatsapp login # Shows QR code in terminal
npm run cli whatsapp status # Check if connected
npm run cli whatsapp logout # DisconnectYour session is saved in ~/.openwhale/whatsapp-auth/ so you don't need to scan again.
- Create a bot with @BotFather on Telegram
- Copy the bot token
- Add to
.env:TELEGRAM_BOT_TOKEN=your-bot-token
- Restart OpenWhale
- Message your bot — the AI will respond
- Create a bot at Discord Developer Portal
- Enable Message Content Intent under Bot settings
- Copy the bot token
- Add to
.env:DISCORD_BOT_TOKEN=your-bot-token
- Invite the bot to your server using the OAuth2 URL generator
- Restart OpenWhale
- Create a Slack app at api.slack.com/apps
- Configure bot permissions and event subscriptions
- Install the app to your workspace
- Add to
.env:SLACK_BOT_TOKEN=xoxb-your-bot-token SLACK_APP_TOKEN=xapp-your-app-token
- Restart OpenWhale
OpenWhale uses the bird CLI for Twitter/X integration — no API keys needed! It uses cookie-based authentication.
# npm (cross-platform)
npm install -g @steipete/bird
# Homebrew (macOS)
brew install steipete/tap/bird- Open your browser and log into X/Twitter
- Run
bird checkto verify cookie detection - Test with
bird whoami— should show your username - Add to
.env:TWITTER_ENABLED=true TWITTER_POLL_INTERVAL=60000 # Poll every 60 seconds - Restart OpenWhale
- The AI will respond to mentions of your account
- Polls for mentions every 60 seconds (configurable)
- Auto-replies to mentions using AI
- Can post tweets, reply to threads, and read timelines
⚠️ Note: Twitter/X may rate-limit or flag automated posting. Use with caution on accounts you care about.
OpenWhale can read and send iMessages natively on macOS using the imsg CLI.
- macOS (iMessage is not available on other platforms)
- Messages.app signed in with your Apple ID
- Full Disk Access granted to your terminal (System Settings → Privacy & Security → Full Disk Access)
- Automation permission for Messages.app
brew install steipete/tap/imsg- Go to
http://localhost:7777/dashboard - Navigate to Channels
- Find the iMessage card
- Click ⬇️ Install imsg CLI (if not already installed)
- Click 📱 Connect iMessage
- List chats — See your recent iMessage conversations
- Read messages — Read message history from any chat
- Send messages — Send iMessages to any phone number or email
- "Show me my recent iMessage conversations"
- "Read my latest messages from Mom"
- "Send an iMessage to +1234567890 saying I'll be there in 10 minutes"
⚠️ Note: iMessage requires macOS. On other platforms, the iMessage card will show as unavailable. The connection persists across server restarts.
Channels are implemented in src/channels/:
| File | Purpose |
|---|---|
base.ts |
Base channel interface |
index.ts |
Channel registry, initialization, and lifecycle management |
shared-ai-processor.ts |
Shared AI processing pipeline for all channels |
whatsapp-baileys.ts |
WhatsApp via Baileys library |
whatsapp.ts |
WhatsApp connection management |
telegram.ts |
Telegram bot adapter |
discord.ts |
Discord bot adapter |
slack.ts |
Slack app adapter |
twitter.ts |
Twitter/X polling and auto-reply |
imessage/ |
iMessage integration (macOS native) |
web.ts |
Web/dashboard chat channel |