I am wondering where openclaw store systems prompts that read first on each startup
Solution
Heartbeat runs don’t literally “open files one-by-one” in a deterministic order — OpenClaw injects your workspace files into the system prompt(including
HEARTBEAT.md
HEARTBEAT.md
if it exists), and then the heartbeat turn is sent with a special heartbeat message.
So the practical answer is:
- Yes, HEARTBEAT.md is the primary thing heartbeats are supposed to follow, because the default heartbeat probe text explicitly says: “Read
HEARTBEAT.md
HEARTBEAT.md
if it exists…” - But it’s not like “file #1 then file #2”; it’s all prompt/context assembled, and the heartbeat instruction tells the model what to prioritize.
If you want to verify what’s being injected on your setup, run in chat: -