Telegram は最速でセットアップできるチャンネル — 約 90 秒。Bot はデフォルトでプライベートで、ユーザー名を共有しない限り誰も見つけられません。

Bot を作成

  1. Telegram を開き、@BotFather を検索、チャットを開始。
  2. /newbot
  3. 表示名(例「Mira Agent」)
  4. _bot で終わるユーザー名(グローバルに一意、例 mira_agent_bot)
  5. BotFather が 123456789:ABCdef… のようなトークンを送ります。保存。

Bot とチャットを開く

BotFather のメッセージには t.me/<username> が含まれます。クリックして bot と DM を開き、Start を押します。bot は Sentō が動くまで沈黙しています — これはエージェントが後で DM できるようにチャットを作成するためだけのもの。

sento init を実行

npx sentoagent init

Telegram を選び、トークンを貼り付け。Server ID は不要 — Telegram bot は chat_id でチャット単位に動きます。

アクセス制御

~/.claude/channels/telegram/.env にトークンが格納されます。アクセスルールは ~/.claude/channels/telegram/access.json:

{
  "dmPolicy": "allowlist",
  "allowFrom": ["123456789"],
  "groups": {
    "-1001234567890": { "requireMention": true, "allowFrom": [] }
  }
}
  • DM の allowFrom は Telegram ユーザー ID(数値)。
  • groups のキーは chat ID(グループは -100 で始まる負の数)。
  • グループで requireMention: true は bot がユーザー名で @ メンションされた時のみ応答。

Chat や user ID を探す

最も簡単:bot にメッセージを送り、クエリ:

curl "https://api.telegram.org/bot<TOKEN>/getUpdates"

各メッセージペイロードには message.chat.idmessage.from.id が含まれます。

なぜ Telegram が速いか

  • Intents、scope、Developer Portal がない。
  • Bot は Markdown フォーマット対応で箱から出してすぐ使える。
  • long-polling(getUpdates 経由)は webhook URL なしで動くので、Telegram はポートフォワーディングなしの住宅 IP でも動きます。