From telegram-topics
Set up the Telegram channel — save the bot token, configure multi-topic routing, and review status. Use when the user pastes a Telegram bot token, asks to configure Telegram, asks "how do I set this up", wants to enable group topics, or wants to check channel status.
How this skill is triggered — by the user, by Claude, or both
Slash command
/telegram-topics:configureThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Writes config to `~/.claude/channels/telegram/.env` and orients the
Writes config to ~/.claude/channels/telegram/.env and orients the
user on access policy. The server reads this file at boot.
Arguments passed: $ARGUMENTS
Read both state files and give the user a complete picture:
Token — check ~/.claude/channels/telegram/.env for
TELEGRAM_BOT_TOKEN. Show set/not-set; if set, show first 10 chars masked
(123456789:...).
Mode — check for TELEGRAM_CHAT_ID in .env:
Access — read ~/.claude/channels/telegram/access.json (missing file
= defaults: dmPolicy: "pairing", empty allowlist). Show:
Router — if in multi-topic mode, check if router is running:
curl -s --unix-socket ~/.claude/channels/telegram/router.sock http://localhost/health
Show router status, connected sessions, and discovered topics.
What next — end with a concrete next step based on state:
/telegram-topics:configure <token> with the token from
BotFather."/telegram-topics:access pair <code>."claude --channels plugin:telegram@<marketplace>."Push toward lockdown. Once IDs are captured via pairing, prompt the user
to switch to allowlist.
<token> — save it$ARGUMENTS as the token (trim whitespace). BotFather tokens look
like 123456789:AAH... — numeric prefix, colon, long string.mkdir -p ~/.claude/channels/telegram.env if present; update/add the TELEGRAM_BOT_TOKEN= line,
preserve other keys. Write back, no quotes around the value.group <chat_id> — enable multi-topic modeTELEGRAM_CHAT_ID=<chat_id> to .env (update if exists, preserve
other keys).access.json if not already there (same as
/telegram-topics:access group add <chat_id>).TELEGRAM_TOPIC_ID=<id-or-name> claude --channels plugin:telegram@<marketplace>"/telegram-topics:configure to see them."topics — show discovered topicsIf the router is running, query it:
curl -s --unix-socket ~/.claude/channels/telegram/router.sock http://localhost/topics
Display results as a table:
Thread ID │ Name │ Last seen
───────────┼──────────────┼──────────────
9 │ cc-plugin │ 2 min ago
42 │ project-b │ 15 min ago
If the router isn't running, say: "No router running. Start a session first — the router starts automatically."
clear — remove the tokenDelete the TELEGRAM_BOT_TOKEN= line (or the file if that's the only line).
reset — remove multi-topic configRemove TELEGRAM_CHAT_ID, TELEGRAM_TOPIC_ID, and TELEGRAM_SESSION_LABEL
from .env. This reverts to standalone mode.
.env once at boot. Token/config changes need a session
restart or /reload-plugins. Say so after saving.access.json is re-read on every inbound message — policy changes take
effect immediately.curl to the Unix socket may fail if the router
isn't running — handle gracefully.npx claudepluginhub behindthebeat/claude-telegram-topics --plugin telegram-topicsSets up a Telegram bot channel: saves the bot token, reviews access policy (pairing vs. allowlist), and guides toward a locked-down configuration.
Provides CLI for Telegram Bot API using bot tokens: authenticate, send messages, read chats, get info, manage multi-bot setups. For CI/CD and server-side messaging automation.
Adds Telegram channel support to ClaudeClaw, with code generation, bot setup, and environment configuration. Supports control-only, passive, or full messaging modes.