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

OpenClaw Job Search Automation Guide — Preferences, Cron Jobs, and Filtering
A practical guide using OpenClaw to automate job hunting: define a clear preference spec, choose a tool for fetching postings (browser automation, scraping, or structured API), and validate the workflow before setting up a cron job.

Four Methods to Transfer ChatGPT History to Claude's Memory
Claude now offers memory import for ChatGPT data, but there are four approaches with different trade-offs: built-in import for speed, curated abstraction for control, full export for preservation, or a hybrid method combining all three.

Skill-writing principles for Claude Code from 159 open-source skills
A developer shares 10 principles for writing effective skills for Claude Code, based on building and maintaining an open-source registry with 159 skills. The principles include practical approaches like using folders instead of single files, adding gotchas sections, and implementing on-demand hooks.

How to Optimize Your OpenClaw Setup with Specific Instructions and Refinements
OpenClaw optimization relies on precise instructions and continuous refinement of agent personalities and cost-effective model utilization.