Cron Jobs vs Heartbeat: Optimizing OpenClaw Token Usage and Execution Consistency

Common mistakes in OpenClaw are treating Heartbeat as the default wake-up and assuming Cron is advanced. The opposite is true: Cron should be your default, Heartbeat the exception. Even worse is using an agent to execute a Cron task when a shell command suffices — agentic actions cost tokens, shell commands don't. Here's how to cut token waste and get consistent execution.
Heartbeat vs Cron — Definitions
- Heartbeat: Periodic agent wake-up where it reads context, checks if anything needs doing, then either responds or logs
Heartbeat_OKand goes back to sleep. - Cron job: Scheduled task trigger. Can run an isolated agent (default) or a plain shell command.
Setting Up Token-Efficient Cron Jobs
Don't use OpenClaw to create the cron itself. Instead, ask your agent: "Write me a shell script that does X, then create a system cron that runs it every Y minutes and pipes the output to me via Discord/Telegram only when the output is non-empty."
This way the agent writes the script in one LLM call, the system cron runs forever for free, and you only get pinged when there's actual output to review.
Examples: Heartbeat vs Cron
- Soul Guardian integrity check: Cron, shell + diff — pure file operation, no reasoning needed.
- ClawSec advisory feed: Cron, isolated agent run, weekly — needs reasoning but not chat context.
- Weekly memory audit: Cron, isolated — reads files, writes summary, exits.
- Daily morning briefing: Cron, isolated — calendar + email + weather, one shot.
- "Watch the inbox + chime in if relevant": Heartbeat — needs conversational state.
- Long-running task monitoring: Heartbeat — multi-signal batched check.
Keep Heartbeat.md Clean
Empty HEARTBEAT.md (or just comments) means the agent wakes up, sees nothing to do, and shuts up. Use this when migrating jobs to Cron to keep ambient costs low.
Final Thought
OpenClaw's superpower isn't that the agent is always awake. It's that the agent can write its own automation requirements and then get out of the way. Use the LLM where reasoning is needed, use Cron for everything else.
📖 Read the full source: r/openclaw
👀 See Also

SOUL.md rules drift in long AI agent sessions and how to fix it
SOUL.md rules work perfectly for the first 10-15 messages but start drifting around message 20-30 as conversation context overrides the initial system prompt. The solution is to use /new more aggressively to reset sessions before each distinct task.

OpenClaw Cost Optimization: Five Settings for Continuous Agent Usage
A developer running OpenClaw continuously on a Raspberry Pi identified five configuration settings that significantly reduced agent costs by optimizing for cost rather than default capability.

Resolving Disconnection Issues in OpenClaw Control UI
Learn how to solve the 'Disconnected (1008): control ui requires HTTPS or localhost' error when using OpenClaw on a Hostinger VPS.

Windows Cowork VM Service Error: Path Issue and Fix
A Windows Cowork installation issue causes the 'VM service not running' error every 10-20 minutes due to incorrect vm_bundles folder path in MSIX installs. The fix involves locating the correct folder and using a repair script.