Overview
The Telegram channel lets you interact with FERAL through direct messages or group chats. Messages are relayed to the brain over WebSocket — FERAL responds with text, SDUI cards, or voice notes depending on context.Setup
Create a bot with BotFather
Open Telegram and message @BotFather:Follow the prompts to name your bot. BotFather returns a token like:Copy this token — you’ll need it in the next step.
Configure bot settings (optional)
Customize behavior in
settings.json:| Setting | Default | Description |
|---|---|---|
allowed_user_ids | [] (all) | Restrict access to specific Telegram user IDs |
allow_groups | false | Whether the bot responds in group chats |
group_trigger | "@feralbot" | Mention prefix required in groups |
send_typing_indicator | true | Show “typing…” while the brain processes |
Group Chat Usage
Whenallow_groups is true, add the bot to any Telegram group. By default, the bot only responds when mentioned:
To let the bot read all group messages (for proactive suggestions), disable privacy mode via BotFather:
/setprivacy → Disable.Supported Message Types
| Type | Direction | Description |
|---|---|---|
| Text | Both | Standard messages |
| Photos | Incoming | FERAL can analyze images via its vision pipeline |
| Voice notes | Incoming | Transcribed via Whisper, then processed as text |
| SDUI cards | Outgoing | Rendered as formatted messages with inline buttons |
| Documents | Incoming | Parsed and stored in memory if relevant |
Troubleshooting
Bot doesn't respond
Bot doesn't respond
Run
feral status and verify the Telegram channel shows as connected. Check that FERAL_TELEGRAM_BOT_TOKEN is set and valid.Bot responds in DMs but not groups
Bot responds in DMs but not groups
Ensure
allow_groups is true and the bot’s privacy mode is disabled in BotFather.Unauthorized user errors in logs
Unauthorized user errors in logs
