Install
openclaw skills install @kiril-shturman/pm-dev-orchestratorOrchestrate a PM bot and one or more Dev bots in a private Telegram group. Use to turn plain chat commands like "DEV skill install <slug>" and "DEV cron add ..." into actions on a Dev OpenClaw server (install ClawHub skills, manage OpenClaw cron jobs). Includes a Dev-side command executor script and a PM-side command format + safety rules.
openclaw skills install @kiril-shturman/pm-dev-orchestratorSet 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 <slug>DEV skill update <slug>DEV skill search <query>DEV skill listRules:
<slug> 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=<jobId> on|offDEV cron remove id=<jobId>DEV cron run id=<jobId>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:
DEV ... commands.clawhub / openclaw cron ...).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 <summary>ERR <reason>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.