Install
openclaw skills install hobohan-cron-hardeningGuidelines for reliable OpenClaw cron jobs: model pinning, absolute paths, timeouts, delivery config, and error recovery.
openclaw skills install hobohan-cron-hardeningReliable cron config learned through repeated failures. Follow these rules for every new cron.
Every cron that delivers to the user must explicitly set a fast model. The global default can get stuck on model resolution (MiniMax cold-start especially).
"model": "deepseek/deepseek-v4-flash"
Time-sensitive crons that need pinning:
Non-time-sensitive crons (dashboard, backup, security audit) can use default model — delay is harmless.
Cron agentTurn payloads run in an isolated context. They cannot cd to the workspace first. Every command MUST use absolute paths.
WRONG:
cd /workspace && python3 scripts/sync.py
RIGHT:
/usr/bin/python3 /home/hobopi/.openclaw/workspace/scripts/sync-ledger-to-sheet.py
Preflight checks reject cd && python3 chains.
| Cron type | Timeout | Reason |
|---|---|---|
| Expense check-in | 300s (600s for 10pm) | May wait for Hobo reply |
| News briefing | 600s | Web search + curation takes time |
| Expense sync | 60s | Quick script, just needs to run |
| Investment sync | 600s | Reads all ledger files |
| Dashboard gen | 180s | Runs 3 scripts in sequence |
| Token tracker | 300s | Heavy usage data parsing |
| Transport check-in | 600s | Previous-day ask, may wait |
| Backup | 300s | tar + gzip |
| Security audit | 600s | Full healthcheck |
For crons that deliver to Telegram, use explicit delivery:
"delivery": {
"mode": "announce",
"channel": "telegram",
"to": "telegram:37134287"
}
mode: "none" for crons that don't need to notify the user (dashboard updates, token tracking).
lastRunStatus and consecutiveErrors on cron statuslastDiagnostics shows the error phase: model-call-started = model resolution timeoutSet cron.maxConcurrentRuns in openclaw.json when multiple crons fire simultaneously:
"cron": { "maxConcurrentRuns": 2 }
Prevents Sunday 5am clash (security audit + hourly dashboard + expense check-in).
"failureAlert": {
"after": 2,
"mode": "announce",
"channel": "telegram",
"to": "telegram:37134287"
}
Notifies Hobo after 2 consecutive failures. Default enabled.