openclaw-async-telegram-bot
SKILL.md
OpenClaw Async Telegram Bot
Use This Skill When
- User asks for multiple Telegram bots in parallel ("async bots", "multi-bot setup", "parallel telegram bots")
- User asks OpenClaw to guide creation of a new Telegram bot via BotFather and configure it
- User wants one bot per account (optionally one bot per dedicated agent)
Naming Rules
- Bot username must be
Nebutra[three-digits]_bot(example:Nebutra007_bot) - Bot display name must be an English ancient Greek philosopher name
- This skill uses this fixed set:
SocratesPlatoAristotlePythagorasHeraclitusDemocritusEpicurusZenoThalesAnaxagoras
BotFather Constraint
- OpenClaw cannot mint new Telegram bot tokens directly.
- Telegram bot token creation must be done in BotFather by the user (
/newbot). - This skill must guide the user through BotFather, then configure OpenClaw with the fresh token.
Token Freshness Rules
- For new bot requests, never auto-reuse a token from memory or earlier conversation context.
- Always request a fresh token generated in BotFather for the new bot.
- If a provided token is already bound to an existing OpenClaw account, treat it as an update flow and require explicit confirmation.
Workflow
- If user asks for a new bot, prefer RPA-assisted flow on macOS with
botfather_rpa_assist_mac.sh. - If RPA is not available, run
prepare_botfather_new_bot.shto generate deterministic BotFather inputs. - Get fresh token from BotFather.
- Validate token with Telegram
getMe. - Reject token if username does not match
^Nebutra[0-9]{3}_bot$. - Reject token if it is already registered in OpenClaw, unless user explicitly confirms update flow.
- Add/update Telegram account in OpenClaw (
channels add). - Restart gateway and verify
running + probe.ok=true. - Optional: create a dedicated isolated agent bound to
telegram:<accountId>.
Command
RPA-assisted end-to-end flow (macOS):
bash scripts/botfather_rpa_assist_mac.sh --name "Aristotle"
Optional RPA flags:
# include dedicated agent creation
bash scripts/botfather_rpa_assist_mac.sh --name "Aristotle" --agent-id "aristotle-agent"
# run only the BotFather RPA step (no OpenClaw configuration yet)
bash scripts/botfather_rpa_assist_mac.sh --name "Aristotle" --no-configure
# extend clipboard wait window for auto-token pickup
bash scripts/botfather_rpa_assist_mac.sh --name "Aristotle" --wait-clipboard 300
BotFather-assisted new bot planning:
bash scripts/prepare_botfather_new_bot.sh
Optional planning flags:
# Force serial (otherwise auto-pick next available)
bash scripts/prepare_botfather_new_bot.sh --serial 2
# Force display name and include dedicated agent in follow-up command
bash scripts/prepare_botfather_new_bot.sh --name "Aristotle" --agent-id "aristotle-agent"
# Emit machine-readable JSON for automation
bash scripts/prepare_botfather_new_bot.sh --json
Configure bot after receiving fresh token:
bash scripts/add_async_telegram_bot.sh --token "<TOKEN>"
Optional flags:
# Force account id
bash scripts/add_async_telegram_bot.sh --token "<TOKEN>" --account-id "plato-007"
# Force philosopher display name
bash scripts/add_async_telegram_bot.sh --token "<TOKEN>" --name "Plato"
# Create isolated agent bound to this telegram account
bash scripts/add_async_telegram_bot.sh --token "<TOKEN>" --agent-id "plato-agent"
# Reuse an already-registered token intentionally (update flow only)
bash scripts/add_async_telegram_bot.sh --token "<TOKEN>" --allow-existing-token
# Dry run
bash scripts/add_async_telegram_bot.sh --token "<TOKEN>" --dry-run
BotFather Notes
If user needs a fresh token, or username validation fails, stop and ask user to recreate bot in BotFather:
/newbot- Bot display name: philosopher English name
- Bot username:
Nebutra###_bot - Return the new token
Weekly Installs
4
Repository
nebutra/opencla…ot-skillGitHub Stars
1
First Seen
10 days ago
Security Audits
Installed on
opencode4
gemini-cli3
claude-code3
github-copilot3
codex3
openclaw3