gateway-resume
Reliably resume work after `openclaw gateway restart` (or when you must restart the OpenClaw gateway mid-task). Uses durable one-shot cron `agentTurn` jobs (isolated session + explicit delivery) so the agent comes back after restart and replies to the same chat (Discord/Telegram/etc), usually with the same model/thinking as the requesting session. Use when: user asks for a gateway restart; you need to restart to apply config/updates; or you must ensure a post-restart follow-up message happens automatically.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/bobbylindsey/resume-after-gateway-restartGateway Resume
Gateway restarts kill the current agent process. If you need to restart mid-task, you must create a durable wakeup before restarting.
This skill uses cron + isolated agentTurn + explicit delivery route (not systemEvent) so it:
- survives restarts (cron is persisted to disk)
- replies back to the same place (Discord channel, Telegram DM/topic, etc)
- can pin the cron run to the same model/thinking that was active in the requesting session
Procedure (recommended)
0) Tell the user you’re about to go down (own message)
Send a short message in the current chat before you schedule the restart:
- "Heads up — restarting the gateway for ~10–20s. I’ll be back momentarily and will resume automatically."
Keep this as its own message (don’t bundle it with other info).
Common failure mode: writing a plan but forgetting to actually schedule the cron + restart. If you don’t run Steps 3–4, the gateway won’t go down and you won’t come back.
Do not require a user 'go' message. Instead, schedule the restart to occur ~15s in the future (see Step 4) so this message has time to deliver before the gateway is killed.
1) Save resume context
Write memory/post-restart-task.md:
# Post-restart: <brief description>
- Channel: <where to reply>
- Was doing: <what was in progress>
- Next step: <what to do next on resume>
- Status: pending
2) Resolve the return route + session model (Option B)
From the current chat/session, capture:
sessionKey(e.g.agent:main:discord:channel:<id>oragent:main:telegram:direct:<id>)deliveryChannel(e.g.discord,telegram)deliveryTo:- Discord channel:
channel:<channelId> - Discord DM:
user:<userId> - Telegram DM/topic: use the chat id or
-100…:topic:<id>
- Discord channel:
modelProvider+modelfor the session (e.g.openai-codex+gpt-5.2)thinkingLevelfor the session
Tip: openclaw sessions --active 240 --json includes these fields.
3) Schedule two one-shot cron jobs (back message + resume)
Use the bundled script (Option B: it infers route + model from the session store):
skills/gateway-resume/scripts/schedule-resume-cron.sh \
--back-delay 75s \
--delay 90s \
--session-key "<sessionKey>"
The script will:
- infer the delivery route from the session key (Discord channel/DM, Telegram DM/group)
- read
openclaw sessions --jsonto infermodelProvider/modeland thinking level - schedule two isolated agentTurn cron jobs with explicit delivery:
- a short, personable "I’m back" message (own message)
- a resume job that reads
memory/post-restart-task.mdand completes the next step
Notes:
- Use
--delay 90s(or more) so the job fires well after the gateway finishes restarting. - The cron job runs isolated, but delivers back to the captured route.
- The “back” job is a separate message to make the restart feel responsive, even if the resume step takes longer.
4) Restart (delayed)
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-bobbylindsey-resume-after-gateway-restart": {
"enabled": true,
"auto_update": true
}
}
}