Set up a PM bot (planner) that issues structured commands in a private Telegram group, and a Dev bot (executor) that runs those commands on its own server.
This skill is written for the Dev bot (executor). It contains:
from.id)DEV No extra polling bot is needed: Dev bot is just an OpenClaw instance connected to Telegram. When it receives a group message, it parses and runs the allowlisted actions.
GROUP_CHAT_ID — Telegram group chat id (e.g. -5259247075 or -100...).PM_FROM_ID — Telegram numeric id of the PM bot. Example from our setup: 7790959648.DEV_BOT_TOKEN — BotFather token for the Dev bot.In ~/.openclaw/openclaw.json on the Dev server, set:
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "<DEV_BOT_TOKEN>",
"dmPolicy": "allowlist",
"allowFrom": [],
"groupPolicy": "allowlist",
"groupAllowFrom": [<PM_FROM_ID>],
"groups": {
"<GROUP_CHAT_ID>": {}
}
}
}
}
Restart gateway:
openclaw gateway restart
All executable commands must be a single line starting with DEV .
DEV skill install DEV skill update DEV skill search DEV skill listRules:
must be a ClawHub slug like claw-guru or StaticAI/android-adb.~/workspace/skills (OpenClaw workspace).DEV cron listDEV cron add every=10m name="dm-check" message="..."DEV cron add cron="/5 *" name="health" message="..."DEV cron enable id= on|off DEV cron remove id=DEV cron run id=Notes:
message=... becomes the agentTurn prompt for the cron job (isolated).Recommended: do not run an extra process. Instead, configure the Dev bot’s behavior to:
1) Ignore everything except DEV ... commands.
2) For allowed commands, run the corresponding local CLI (clawhub / openclaw cron ...).
3) Reply with a short, machine-readable status.
When you receive a Telegram group message:
chat.id != GROUP_CHAT_ID: ignore.from.id != PM_FROM_ID: ignore.DEV : ignore.Otherwise parse and execute.
Output format (reply in group):
OK ERR Keep it under ~10 lines.
scripts/dev_executor.py is included as a parser/executor scaffold for testing, but the primary path is the Dev bot behavior above.
PM_FROM_ID in GROUP_CHAT_ID.groupAllowFrom + groups) and restart gateway.openclaw logs --follow, make PM bot send a message, read from.id.共 1 个版本