Fix the most common heartbeat file mistakes in minutes so your agent stops repeating errors and starts doing useful check-ins.
If your agent keeps saying there is a HEARTBEAT.md error, you are not alone. This is a common setup issue and usually comes down to file location, formatting, or stale instructions.
Good news: you usually do not need to reinstall anything. A small file fix solves this most of the time.
The file should be in your workspace root, named exactly HEARTBEAT.md (all caps, no extra extension).
Overly long heartbeat instructions can create confusion and repeated loops. Keep it to a tight checklist.
If your file says to always run old tasks, the agent may keep doing them forever. Use conditional rules instead.
Tell the agent what to do when nothing needs attention (for example: return HEARTBEAT_OK).
After edits, trigger one heartbeat and confirm behavior before adding more complexity.
Tip: if your heartbeat keeps revisiting old tasks, also track simple state in a small JSON file (last check timestamps). That prevents repetitive behavior.
HEARTBEAT_OK once, then continue.HEARTBEAT_OK (with the R).This is a recurring trust-break: the heartbeat appears to run, but your requested action (like posting a daily econ reminder) never lands.
Use heartbeat for loose periodic checks. Use cron for exact schedules (for example, weekdays at 8:30 AM). If exact timing matters, heartbeat alone is the wrong tool.
Temporarily replace your checklist with one line: "On heartbeat, reply with: HEARTBEAT_CANARY_OK + current local time." If this fails, your issue is heartbeat routing/config, not your task logic.
If your heartbeat asks for actions that require unavailable tools or approval, the run may look “stuck.” Start by verifying a plain text output works first, then add one external action at a time.
Conflicts across SOUL.md, AGENTS.md, and HEARTBEAT.md can cancel execution. Add a clear heartbeat override line such as: "During heartbeat runs, follow HEARTBEAT.md checklist first."
Reality check: heartbeat is best for batching low-urgency checks. For strict delivery windows (market open, econ calendar, meeting reminders), pair heartbeat with cron instead of forcing heartbeat to act like a scheduler.
Users often panic when they suddenly see a heartbeat line in chat. In most cases this is expected system behavior, not agent failure.
Send HEARTBEAT_OK exactly once (all caps, include the R).
You do not need to restart your agent or rewrite your prompts just because a heartbeat surfaced in chat.
If heartbeat prompts flood chat, share timestamps and your current HEARTBEAT.md in #help so support can verify scheduling/config drift.
Avoid this anti-pattern: “Check everything all the time and summarize everything.” That instruction guarantees noisy, expensive, low-signal output.
If the issue continues after this checklist, include these details in #help:
Bottom line: a clean, short HEARTBEAT.md gives calm, useful check-ins. Keep it simple, conditional, and test once after every edit.