Messaging channels
Reach Oktapod from Telegram, WhatsApp, Discord, Slack, Signal, and other messaging apps, and control who it answers.
A channel lets you message Oktapod from an app you already use. The web chat is built in. Telegram, WhatsApp, Discord, and Slack are the main supported channels. Signal and other bridges work when their extra software is installed on the machine that runs Oktapod.
Channels only carry messages. The same agent, memory, and approval rules sit behind every one of them.
When a channel supports buttons, action choices travel with the reply, including when delivery needs a retry.
Telegram button presses keep the clicking person's identity and the original message reference. Expired or unavailable buttons do not grant permission.
Discord buttons follow the same rule. Group DMs count as group chats and cannot approve actions that require the paired owner in a direct chat.
Add a channel
Open Settings → Apps & permissions → Messaging channels, choose Set up channel, pick the app, and enter what it asks for. Tokens go into a private field and stay on your machine.
| Channel | What you need | First message |
|---|---|---|
| Telegram | A bot token from Telegram's BotFather. | Send the bot a direct message. |
| Discord | A Discord bot token, with the bot added to a server you use. | Send the bot a direct message from that server. |
| Slack | A Slack bot token for your workspace. | Open the app's home or message the bot. |
| Link Oktapod as a device from your phone. | Send a message from the linked phone. | |
| Signal | signal-cli on the host. Link a device, reuse an account, or register a number. | Send a message from the registered phone. |
Who Oktapod answers
New channels start locked down:
- Direct messages need pairing. The first time someone messages Oktapod, they get a pairing code. Oktapod does not answer them until you approve that code.
- Groups are off. Turn them on only if you want Oktapod in a group. When you do, "mentions only" is safer than reading every message.
Setup also opens a 20-minute window in which your own first message claims the channel as its owner.
Approve or reject a pairing code from a terminal:
oktapod channels pairing status --channel telegram
oktapod channels pairing approve --channel telegram --code <code>
oktapod channels pairing reject --channel telegram --code <code>
You can also revoke, block, or unblock a sender later with
oktapod channels pairing revoke|block|unblock --channel <id> --sender-id <id>.
Conversations stay separate
Each channel keeps its own conversation. A Telegram chat does not see your web chat or your WhatsApp messages. Your memory and settings are shared; the conversation history is not.
Some actions, such as connecting an app or changing app permissions, only work from a direct chat with a paired owner. Group chats and unpaired senders cannot change them.
Check that a channel works
A saved token is not proof that messages flow. Check the live state:
oktapod channels status
oktapod channels verify --channel telegram
oktapod channels verify --all
Verification checks the running connection and the provider, and where possible confirms that a message actually arrived.
Remove a channel
If a bot token leaks, revoke it with the provider first, then remove it locally:
oktapod channels logout --channel telegram
oktapod channels remove --channel telegram
Both clear the saved credential, pairing state, and policy for that channel.
logout also deletes session data, such as a linked WhatsApp session.
From the terminal
Add channels without the web app:
oktapod channels add --channel telegram --bot-token <telegram-bot-token>
oktapod channels add --channel discord --bot-token <discord-bot-token>
oktapod channels add --channel slack --bot-token <slack-bot-token>
oktapod channels login --channel whatsapp
oktapod channels login --channel signal --account-phone <+15551234567>
oktapod channels capabilities shows which channels this install supports and
which need extra software.