Docs › OpenClaw cron job monitoring with RunVouch
OpenClaw cron job monitoring with RunVouch
OpenClaw cron job monitoring from outside the gateway: openclaw automations create "0 7 * * *" (the openclaw cron alias still works) runs an agent turn on a schedule, in the main session or an isolated one. When the gateway is down at fire time, or the job has been auto-disabled after ten failures, the schedule is a line in a list that nobody reads.
How it runs on OpenClaw automations and heartbeat
Two layers. A host cron line wraps a health probe of the gateway so the whole instance has a heartbeat. Per job, the RunVouch skill makes the agent report start, tool calls and end with evidence; for a task that runs a script, the verified-run skill wraps it with the output file as evidence.
Store the key
RUNVOUCH_KEY in the OpenClaw gateway environment (the skill reads it there) and in the host crontab environment for the heartbeat line.
Wrap the job
# 1. the instance: a heartbeat every 15 minutes from host cron (MISSED if the gateway stops answering)
rv agent openclaw-gateway --cadence 15m --grace 5m --cap-day-cost 10
*/15 * * * * rv run openclaw-gateway -- curl -fsS http://127.0.0.1:18789/health
# 2. a scheduled job, isolated session, announced to the chat
openclaw automations create "0 7 * * *" --name "Morning inbox triage" --session isolated --announce \
--message "Triage overnight mail per SKILL.md runvouch: report start, each tool call and the end with evidence."
rv agent openclaw-inbox --cadence 24h --grace 1h --evidence --cap-run-cost 1
# the skill makes the agent do this itself
curl -s -X POST https://api.runvouch.com/v1/runs/start -H "X-API-Key: $RUNVOUCH_KEY" -H "content-type: application/json" \
-d '{"agent":"openclaw-inbox","source":"openclaw"}'
curl -s -X POST https://api.runvouch.com/v1/runs/end -H "X-API-Key: $RUNVOUCH_KEY" -H "content-type: application/json" \
-d '{"run_id":"...","status":"ok","cost":0.21,"evidence":{"replied":true}}'
# 3. check what OpenClaw itself recorded
openclaw automations runs --id <jobId> --limit 20rv fails open: if RunVouch is unreachable the job still runs and you get one warning line.
Register the cadence and caps
rv agent nightly-report --cadence 24h --grace 30m --max-runtime 1h --evidence --cap-run-cost 2
Register the agent once, from anywhere with the key. Cadence is what turns a schedule that stopped into an alert; --evidence makes a run without evidence a failure; the caps pause the agent when it overspends.
What goes silent on OpenClaw automations and heartbeat
- A time-based recurring job is auto-disabled after 10 consecutive execution failures; the disable notification goes to the configured channel once. MISSED keeps firing until the job runs again.
- A job that fires while the gateway is restarting has no run record;
openclaw automations runsshows nothing for that slot. - An agent that polls a tool in a loop inside one turn is RETRY_STORM once the skill reports tool calls, and BUDGET_DAY when the daily cap is crossed; OpenClaw has per-script tool budgets (
--script-tool-budget) but no money cap. - The reply it announced to the chat is not evidence; the reply that was actually sent (
{"replied": true}from the tool result) is.
What OpenClaw automations and heartbeat does not tell you
OpenClaw keeps a run history per job (openclaw automations runs --id) and disables a recurring job after ten consecutive failures with one notification. It does not notify when a job fired into a gateway that was down, when a disabled job stays disabled, or when the agent finished its turn without doing what the prompt asked. openclaw system heartbeat last shows the last heartbeat time to whoever runs it; nothing calls you when that time stops moving.
What RunVouch detects
| Alert | What it means here |
|---|---|
| MISSED | cadence plus grace passed and no run started |
| FAILED | non-zero exit or a reported failure, with the stderr excerpt |
| NO_EVIDENCE | the run said ok but the file, URL or assertion you required is missing |
| STALLED | a run started and never ended within max runtime |
| RETRY_STORM | the same tool called with identical input many times in one run |
| BUDGET_RUN / BUDGET_DAY | cost cap crossed; the agent is paused until you resume it |
| DRIFT | duration or output size far off its 7-run baseline |
Set up in two minutes
- Get a free key (3 agents, no card) and store it where this page says.
- wrap the job: copy the snippet above into the scheduled job.
- Register the cadence once:
rv agent nightly-report --cadence 24h --grace 30m --evidence, or let the first run create the agent and set the cadence on the dashboard. - Send one test alert:
curl -X POST https://api.runvouch.com/v1/settings/test-alert -H "X-API-Key: $RUNVOUCH_KEY". The next missed, failed or empty run reaches the same channels.
Need a key? Get a free key · Stuck? contact