← Blog

August 9, 2026 · 8 min read

Your HEARTBEAT.md should be boring

A current HEARTBEAT.md is a short, quiet monitoring checklist. Here is how to keep it useful without turning every poll into a costly control plane.

A good HEARTBEAT.md is a small monitoring checklist for one context-aware agent turn. It says what to glance at, what deserves interruption, and when to stay quiet. Recurring jobs belong in OpenClaw Automations, not in an ever-growing heartbeat file.

Boring is a feature here. The heartbeat is read often. Every paragraph competes for attention, tokens, and judgment on every wake. If the file becomes your scheduler, project manager, incident system, and diary, it will eventually become bad at all four.

What belongs in HEARTBEAT.md

  • Two or three small checks that benefit from the same recent conversation context.
  • Clear thresholds for when the user should be interrupted.
  • A quiet success path, usually HEARTBEAT_OK when nothing needs attention.
  • References to deeper task instructions stored elsewhere.
  • Active-hours or quiet-hours guidance when alerts are not urgent.

What does not belong in HEARTBEAT.md

  • Independent recurring schedules. Create Automations for those.
  • Long implementation playbooks copied in full.
  • Multi-hour research, builds, migrations, or deployments.
  • Mutable last-run logic that marks work complete before it is verified.
  • A complete backlog that gets reread every 30 minutes.
  • Checks a deterministic script can perform without a model.

The scheduler and executor should be different things

A heartbeat can notice that the content queue is low. It should then point to a bounded marketing workflow or create a tracked task. The heartbeat should not research five markets, draft twenty posts, run eight builds, deploy eight sites, and somehow remain the thing that notices your calendar meeting in 40 minutes.

This separation gives each layer a simple contract. Heartbeat detects. Automation schedules. A task executes. The task artifact proves the result. If one layer fails, you know where to look.

A compact example

# HEARTBEAT.md

Check the monitor items below in one short turn.

- Inbox: alert only for messages that need action today.
- Calendar: alert for events starting within two hours that need preparation.
- Background work: surface only a new failure, blocker, or completed artifact awaiting review.

Quiet hours: 11pm to 8am unless an issue is genuinely urgent.
If nothing needs attention, reply HEARTBEAT_OK.

There are no faux cron expressions in that file. The Gateway heartbeat cadence controls when the monitor turn happens. Independent daily or weekly work gets its own Automation and task record.

Keep detailed task prompts out of the hot path

If a monitor item needs twenty lines of instructions, put those instructions in a separate file and link to it. Load the deeper file only when the condition is met. This is progressive disclosure for your agent's context: cheap awareness first, expensive execution only when needed.

- Product queue health: if any active product has fewer than five future posts or no post due within four days, run `memory/heartbeat-tasks/marketing-queue-health.md`. Otherwise skip.

The linked task can contain repository paths, validation commands, queue rules, and closeout requirements. The heartbeat pays for one sentence until there is actual work to do.

Write notification thresholds like a human

Weak instructionUseful threshold
Check emailAlert only when a reply is needed today, money is involved, or a known priority sender wrote
Monitor tasksSurface a new terminal failure, a blocker requiring input, or a completed artifact awaiting review
Check calendarAlert within two hours only when preparation or travel is required
Review analyticsAlert on a material change against the prior comparable period, not normal daily noise

The heartbeat's job is not to prove it woke up. It is to preserve signal. Repeating 'three emails arrived' every half hour trains the user to ignore the channel that should carry important news.

How to test a heartbeat

  1. Run it when nothing is happening. It should stay quiet.
  2. Create one clearly actionable condition. It should report that condition and no unrelated trivia.
  3. Create two monitor findings. It should combine them into one concise update.
  4. Make a linked task fail. It should surface the blocker without claiming the work completed.
  5. Measure the file after a month. If it has grown into a manual, split it again.

The rule of thumb

If the work deserves its own cadence, timeout, run history, or delivery target, it deserves an Automation. If it is a brief glance that benefits from the main session's current context, heartbeat is a good home. Keep that home tidy.

Frequently asked questions

What is HEARTBEAT.md in OpenClaw?

It is a small workspace file that supplies monitor context to periodic heartbeat turns. It should contain a concise checklist and alert thresholds, not a full recurring-job scheduler.

How long should HEARTBEAT.md be?

There is no fixed line limit, but it should be short enough to reread every heartbeat without wasting context. Put detailed task instructions in separate files and load them only when needed.

Can heartbeat run scheduled tasks?

Heartbeat runs on a periodic cadence, but current OpenClaw guidance assigns independent recurring work to Automations. Use heartbeat for batched, context-aware monitoring.

Sources and further reading

More posts

October 23, 2026

A DNS record changed. Should your OpenClaw monitor alert?

October 20, 2026

Zero errors is not always good news: checking the log pipeline before an agent alerts

October 17, 2026

A running container is not a healthy service: an OpenClaw monitoring runbook

October 14, 2026

OpenClaw database backup checks vs restore tests: what each proves

October 5, 2026

OpenClaw automation ran, but no message arrived: diagnose execution and delivery

October 2, 2026

OpenClaw SecretRefs for recurring workflows: a practical migration checklist

September 29, 2026

The scheduled blog queue ran dry: a runway check that catches it early

August 24, 2026

Agent workflow validation checklist before you reuse a template

August 21, 2026

Bounded background tasks for coding agents

August 18, 2026

Agent runbook status files that actually work

August 15, 2026

7 OpenClaw workflows worth running, and 5 that are not

August 12, 2026

The OpenClaw workflow security checklist we use before turning on tools

August 6, 2026

How to build an OpenClaw automation that survives retries

August 3, 2026

OpenClaw cron vs heartbeat: the production rule that actually works

April 30, 2026

OpenClaw just shipped real voice agent calls. Here are 5 workflows worth setting up.

March 27, 2026

The best OpenClaw skills nobody knows about

March 25, 2026

Top AI agent workflow templates for developers in 2026

March 23, 2026

OpenClaw vs n8n: when to use each for agent automation

March 20, 2026

How to automate Make.com workflows with AI agents

March 18, 2026

Best n8n workflow templates for email automation

March 15, 2026

OpenClaw starter packs: the fastest way to a useful agent

March 12, 2026

How to build your own OpenClaw runbook from scratch

March 9, 2026

5 OpenClaw workflows that save 10 hours/week