The Proactive Core
Most assistants sit silently until you type. OpenClaw can speak first: a briefing at 8:00, a nudge when something needs you. The part of OpenClaw that makes this possible is called its proactive core, and it uses everything else in this section.
The rule
A reactive agent waits for you; a proactive one wakes on schedule.
Two mechanisms do most of the waking. (The docs also describe standing orders; this lesson sticks to the two you will use first.)
- Heartbeats. The Gateway sends out a regular pulse at an interval you choose. On each beat the agent reads
HEARTBEAT.md, a workspace file listing what to check or do, and acts if something needs doing. You can set active hours so beats only happen during the part of the day you choose. A steady heartbeat also shows the agent is alive. - Cron jobs. Scheduled tasks that run at specific times or on intervals, such as "every weekday at 8:00, summarise yesterday's notes". You manage them from the command line:
openclaw cron listshows the registered jobs with their schedules and status,openclaw cron addregisters a new one, and jobs can be paused or deleted when you no longer want them.
Two more triggers let OpenClaw act without a chat message: hooks, small scripts that run inside the Gateway when events fire (for example when /new is used), and webhooks, requests sent in by other services.
A proactive run uses the whole section. The Gateway keeps the time, so it must be running. An agent does the work through the agent loop. Memory files give it context. The result goes out through a channel.
The shortcut
Exact time: cron job. Regular look-around: heartbeat. If you can say "at 8:00 on Mondays", it is cron. If you would say "every so often, look around and tell me if anything needs me", it is a heartbeat with its checklist in HEARTBEAT.md.
Job A: a weekday 8:00 briefing
A fixed time you can name, so it is a cron job, added with
openclaw cron add.
Drills
Answer fast — trust the rule.
"Every Monday at 9:00, send me my plan for the week." Which mechanism fits?
Where do you write what the agent should check on each heartbeat?
You want heartbeats during the day but none overnight. What do you set?
Which command shows the scheduled jobs registered in OpenClaw?
Your 8:00 cron job did not run. The Gateway lives on a laptop that was closed all night. Why?
Remember
- A reactive agent waits for you; a proactive one wakes on schedule.
- Exact time: cron job. Regular look-around: heartbeat, with
HEARTBEAT.mdand active hours. - Nothing fires unless the Gateway is running.
