Telegram is the fastest channel to set up — about 90 seconds. Bots are private by default, so no one can find yours unless you share its username.
Create the bot
- Open Telegram, search for
@BotFather, start a chat. /newbot- Display name (e.g. "Mira Agent")
- Username ending in
_bot(must be globally unique, e.g.mira_agent_bot) - BotFather sends a token like
123456789:ABCdef…. Save it.
Open a chat with your bot
BotFather's message includes t.me/<username>. Click it, open a DM with your bot, press Start. The bot stays silent until Sentō is running — this just creates the chat so the agent can DM you later.
Run sento init
npx sentoagent init
Pick Telegram, paste the token. No server ID required — Telegram bots work per-chat via chat_id.
Access control
~/.claude/channels/telegram/.env stores the token. Access rules live in ~/.claude/channels/telegram/access.json:
{
"dmPolicy": "allowlist",
"allowFrom": ["123456789"],
"groups": {
"-1001234567890": { "requireMention": true, "allowFrom": [] }
}
}
- allowFrom for DMs holds Telegram user IDs (numeric).
- groups keys are chat IDs (group chats are negative numbers starting with
-100). requireMention: truein a group means the bot only responds when you @mention its username.
Finding a chat or user ID
Easiest: send a message to the bot, then query:
curl "https://api.telegram.org/bot<TOKEN>/getUpdates"
Every message payload includes message.chat.id and message.from.id.
Why Telegram is quick
- No intents, scopes, or developer portal.
- Bots work out of the box with Markdown formatting.
long-polling(viagetUpdates) works without a webhook URL, so Telegram runs fine on residential IPs with no port forwarding.