Channel Overview
Talon connects to 22 messaging channels simultaneously. Every channel is driven by the same AI agent and shares a unified conversation history — messages from Telegram, Discord, Slack, and everywhere else all appear in the same conversation list in the mobile app.
How Channels Work
Section titled “How Channels Work”When a message arrives on any channel, Talon follows the same pipeline:
- The channel listener receives the incoming message.
- The message is passed to the AI agent along with the conversation history retrieved from the shared ConversationStore.
- The agent processes the message (optionally using tools, executing code, browsing the web, etc.).
- The response is sent back through the same channel.
- Both the incoming message and the response are persisted to the SQLite-backed ConversationStore.
Because all channels write to the same store, conversation history survives restarts and is visible across the mobile app, web app, and any connected channel.
Configuration Structure
Section titled “Configuration Structure”All channels are configured under channels.<type>.accounts.<name> in talon.json. You can have multiple accounts per channel type — for example, two different Telegram bots or three Discord servers.
{ "channels": { "telegram": { "accounts": { "my-bot": { "bot_token": "..." } } }, "discord": { "accounts": { "my-server": { "bot_token": "..." } } } }}Common Options
Section titled “Common Options”Two options are available on most channels regardless of type:
allow_from
Section titled “allow_from”Restrict which users or identifiers can send messages to the bot. When set, Talon ignores messages from anyone not on the list. The format of each entry is channel-specific (Telegram user IDs, Discord user IDs, email addresses, etc.).
{ "allow_from": ["123456789", "987654321"]}Override the default AI model for a specific channel account. Use the provider/model format.
{ "bot_token": "...", "model": "openai/gpt-4o"}All 22 Channels
Section titled “All 22 Channels”| Channel | Config Key | Required Fields |
|---|---|---|
| Telegram | telegram | bot_token |
| Discord | discord | bot_token |
| Slack | slack | bot_token, app_token |
whatsapp | verify_token, access_token, phone_number_id | |
email | imap_host, smtp_host, email, password | |
| Webhook | webhook | incoming_path, outgoing_url |
| Matrix | matrix | homeserver, user_id, access_token |
| Microsoft Teams | teams | webhook_url, app_id, app_secret |
| Messenger | messenger | page_access_token, verify_token |
| Twilio (SMS) | twilio | account_sid, auth_token, phone_number |
| LINE | line | channel_access_token, channel_secret |
| Signal | signal | api_url, phone_number |
| IRC | irc | server, port, nickname, channels |
| Mattermost | mattermost | url, token |
| Zulip | zulip | site, email, api_key |
| Rocket.Chat | rocketchat | url, user_id, auth_token |
| Google Chat | googlechat | webhook_url |
| Webex | webex | access_token, webhook_secret |
| DingTalk | dingtalk | webhook_url, secret |
| Feishu / Lark | feishu | app_id, app_secret, verification_token |
| ntfy | ntfy | server, topic |
| Mastodon | mastodon | instance_url, access_token |