From nanotars-telegram
Installs and configures Telegram as a NanoTars channel plugin with bot setup, authentication, trigger-based control, passive notifications, and agent swarm support.
npx claudepluginhub terrifiedbug/nanotars-skills --plugin nanotars-telegramThis skill uses the workspace's default tool permissions.
This skill installs the Telegram channel plugin and guides through authentication.
Adds Telegram as a channel to ClaudeClaw by merging code changes from git remote, installing grammy, setting up bot token, and configuring env for control or passive use.
Adds agent swarm (teams) support to Telegram channels by assigning unique bot identities to subagents in group chats. Requires prior /add-channel-telegram setup.
Installs Discord channel plugin for NanoTars/Claude Code, sets up bot with token, and registers text channels/DMs via pairing codes alongside WhatsApp.
Share bugs, ideas, or general feedback.
This skill installs the Telegram channel plugin and guides through authentication.
Before installing, verify NanoTars is set up:
[ -d node_modules ] && echo "DEPS: ok" || echo "DEPS: missing"
docker image inspect nanoclaw-agent:latest &>/dev/null && echo "IMAGE: ok" || echo "IMAGE: not built"
if grep -q "ANTHROPIC_API_KEY\|CLAUDE_CODE_OAUTH_TOKEN" .env 2>/dev/null || [ -f "$HOME/.claude/.credentials.json" ]; then echo "AUTH: ok"; else echo "AUTH: missing"; fi
If any check fails, tell the user to run /nanotars-setup first and stop.
Check if plugins/channels/telegram/ exists. If not, copy from skill template files:
cp -r ${CLAUDE_PLUGIN_ROOT}/files/* plugins/channels/telegram/
Then install dependencies:
cd plugins/channels/telegram && npm install && cd -
@BotFather/newbot and follow prompts:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11)Add to .env:
TELEGRAM_BOT_TOKEN=YOUR_BOT_TOKEN_HERE
Sync to container environment:
cp .env data/env/env
By default, Telegram bots in groups only receive messages that @mention the bot or are commands. To let the bot see all messages:
@BotFather/mybots and select your botOptional if the user only wants trigger-based responses via @mentioning the bot.
npm run build
Then restart the service (systemd or launchd depending on platform).
Use /chatid command in any Telegram chat with the bot to get the chat ID.
tg:123456789 (positive number)tg:-1001234567890 (negative number)Register the main group (there can only be one) via /nanotars-setup. Add additional groups with /nanotars-add-group.
The bot responds when:
requiresTrigger: false (e.g., main group)After completing setup, ask the user if they want Agent Swarm (Teams) support. If yes, invoke /add-skill-telegram-swarm.
The plugin has built-in bot pool support for agent teams. Each subagent appears as a different bot identity in Telegram.
To enable, create 3-5 additional bots via @BotFather and set:
TELEGRAM_BOT_POOL=TOKEN1,TOKEN2,TOKEN3
Pool bots are send-only (no polling). When a subagent calls send_message with a sender parameter, the host assigns a pool bot and renames it to match the sender's role. See /add-skill-telegram-swarm for full setup guide.
/chatid — Get chat ID for registration/ping — Check if bot is onlineTELEGRAM_BOT_TOKEN is set in .env AND synced to data/env/env/nanotars-groups to list registered groups (don't query the SQLite schema directly — it migrated to the entity model in 2026-04 and inline SQL silently breaks)Group Privacy is enabled (default). Fix:
@BotFather > /mybots > select bot > Bot Settings > Group Privacy > Turn offcurl -s "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/getMe"
/nanotars-remove-plugin for a guided removal, or the operator delete-group flow — do not reach into the SQLite schema directlyrm -rf plugins/channels/telegram/TELEGRAM_BOT_TOKEN and TELEGRAM_BOT_POOL from .env