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

  1. Open Telegram, search for @BotFather, start a chat.
  2. /newbot
  3. Display name (e.g. "Mira Agent")
  4. Username ending in _bot (must be globally unique, e.g. mira_agent_bot)
  5. 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: true in 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 (via getUpdates) works without a webhook URL, so Telegram runs fine on residential IPs with no port forwarding.