Once chat and tools work, teams usually ask for predictable rhythm: every N minutes, glance at a queue, summarize inboxes, or post a health snippet to Slack or Telegram. In 2026 OpenClaw stacks, that shape often maps to Heartbeat and HEARTBEAT.md. This guide is intentionally different from our no-reply troubleshooting article: that one walks doctor and logs when something fired but stayed silent; this one helps you design proactive automation with clear boundaries, a minimal file skeleton, launchd pairing for uptime, remote-Mac sleep and environment drift notes, and a VNC checklist to align the Gateway UI with what SSH logs imply. For ten fast error patterns read the common-errors post; for TLS exposure read the Gateway reverse-proxy checklist.
Who needs Heartbeat
Best fit: operators who already completed install and first conversation and want low-frequency, idempotent checks—summaries, queue depth, synthetic pings—not a replacement for CI for heavy builds. Poor fit: unconstrained scraping, blind production writes without review, or high-frequency polling on premium models without routing. On rented Macs you must also reason about sleep policy, GUI approvals, and whether Gateway binds only to localhost; VNC makes those visible in one pass.
Pain points: boundaries, cost, false confidence
- Scope creep: Heartbeat triggers recurring agent turns, not every cron-shaped job on earth.
- Thinking and silent ticks: as in the no-reply guide, some model stacks burn budget without visible channel text—automations need explicit failure signaling.
- Environment drift: variables exported in an interactive shell do not automatically exist under
launchdchildren. - Sleep and disconnects: if the node naps, both Gateway and timers stall; pair OS power settings with supervised restart.
- Observability: without a “last successful tick” habit, teams blame models for configuration gaps.
Decision matrix
| Scenario | Base | Heartbeat role | Main risk |
|---|---|---|---|
| Personal digests | Single Gateway | Low-rate summaries | Cost and channel noise |
| Small-team watch | launchd + log rotation | Health sweeps | macOS permission prompts (use VNC) |
| Multi-project host | Split dirs/ports | Per-instance files | Cross-talk and secrets mix-ups |
| Public webhooks | Reverse proxy + TLS | Still rate-limit | Attack surface |
Field names change between releases—treat the matrix as operational guidance and reconcile with openclaw doctor after upgrades (see the v2026.4.5 migration article).
Seven-step rollout
Illustrative skeleton only—replace with valid keys from your version docs:
# HEARTBEAT.md (illustrative — not a live config)
interval_minutes: 30
channel: <channel-id>
on_tick:
- summarize_inbox_depth
- if_depth_gt: 10
then: notify_ops
fail_open: false
Pin version and canonical roots
openclaw --version and openclaw doctor; document the working directory you edit.
Start read-only
First ticks should fetch state, not mutate production.
Route models explicitly if supported
Use cheaper models for sweeps; reserve expensive models for human-triggered work.
Make failures visible
Emit heartbeat_failed plus a short reason to the same channel or structured logs.
Supervise Gateway with launchd
Follow the daemon checklist so restarts survive session changes.
Verify the console inside VNC
Confirm bind addresses and browser reachability; counters the classic localhost-only trap.
Keep a tiny ops log
Timestamp, interval, outbound success boolean, error codes, config revision—review weekly.
Citable facts
Related posts
Silent replies and thinking: no-reply playbook. Persistence: launchd daemon checklist. Edge access: Gateway reverse proxy. Errors: ten fixes.
VNC verification and FAQ
- Local browser can open the control URL (contrast with SSH port-forward assumptions).
- No pending privacy or keychain dialogs hiding behind the session.
- Power and lock settings align with provider policy.
- Multi-instance ports and directories match the isolation article.
Structured FAQ lives in the document head JSON-LD.
Closing: Heartbeat is rhythm; macOS is the stage
Windows or generic Linux hosts struggle with macOS-native approvals and consistent GUI tooling; SSH alone hides console and consent issues. Running OpenClaw on a real macOS desktop and verifying it over VNC keeps Heartbeat from becoming a black box. If you want that environment without buying hardware for a short experiment, renting a VNC-ready Mac from VNCMac alongside our launchd, no-reply, and Gateway articles typically reduces trial-and-error time compared with guessing from partial logs alone.