heartbeat
Skill35 starsChanged 4 months agoMITView on GitHub
Use this skill when the user wants to run or configure the heartbeat autonomous loop, check past heartbeat runs, set the heartbeat tier/policy, view or edit heartbeat instructions (HEARTBEAT.md), or enable agent proactive behavior. Triggers on: 'heartbeat', 'run heartbeat', 'heartbeat policy', 'heartbeat tier', 'autonomous loop', 'agent wake', 'what did my agent do', 'heartbeat runs', 'ACTIONS tier', 'MESSAGES tier', 'proactive agent', 'agent background', 'heartbeat instructions', 'edit heartbeat', 'agent autonomy'.
- Reads credentials
- Sends data out
18 other projects use a version of this.
Adopted by
Most recently taken up by
- naman10parikh/pennytheir own version, first seen Nov 8, 2026
- genericService/claude-skillstheir own version, first seen Nov 8, 2026
- naman10parikh/wikimemtheir own version, first seen Nov 8, 2026
- modimihir07/agentic-ostheir own version, first seen Oct 25, 2026
- naman10parikh/turbotheir own version, first seen Oct 25, 2026
- naman10parikh/pixeltheir own version, first seen Oct 25, 2026
Used with
Projects with it also use ecosystem-reference, fractal-delegation and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
naman10parikhSkillecosystem-reference
Quick-access directory of Claude Code ecosystem repos, skills, plugins, MCPs, and patterns. Use when improving the harness.
Also in 5 projects that use this
naman10parikhSkillfractal-delegation
Also in 5 projects that use this
KirchliveSkillskill-routing
Decides which of the installed skills a task needs and loads them before the work starts. This skill should be used at the beginning of any multi-step task — build, fix, refactor, migrate, review, plan, release, research, write, design, video — and again at every phase change, after context compaction, and when work moves into a different part of the codebase. Use it for requests like "let's build X", "fix this bug", "refactor Y", "plan the migration", "review this", and also when the user asks which skill applies, why a skill did not fire, or asks to check what is available.
Also in 5 projects that use this
sublimotionSkillagent-runtime
Launch and manage detached agent runs on EKS via the agent-runner CLI. Use when the user says "launch an agent run", "agent runtime", "agent-runner", "run this spec on the cluster", "check run status", "agent run logs", or "stop a run". Do NOT use for writing the agent-runner code itself (edit the sibling ../agent-runner repo), Terraform of the foundation (use terraform-automation), or GPU serving deployments (use infra-deployer).
Also in 5 projects that use this
GoZippySkillrepo-scout
Also in 5 projects that use this
BenjaminGSkillharness-review
Turn one PR's review comments into harness fixes — classify each cause by the most solid place it can live (codebase, lint, rules, skill), then draft the fixes in a separate PR.
Also in 5 projects that use this
- +6 more from naman10parikh
Other versions18 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 18
- frank890417/taiwan-md★ 1.2ksame name
- aaronjmars/aeon★ 789same name
- aeonfun/aeon★ 789same name
- modimihir07/agentic-os★ 209same name
- crisandrews/ClawCode★ 64same name
- reneyuxi0402/claude-cant-sleep★ 43same name
- aaronjmars/miroshark-aeon★ 20same name
- MiroShark/miroshark-aeon★ 20same name
- shahshrey/unclaw★ 17same name
- naman10parikh/agentgrid★ 9same name
8 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository23 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- aicooSkill
- autonomous-syncSkill
- build-memorySkill
- check-messagesSkill
- compile-identitySkill
- connect-local-agentSkill
- context-syncSkill
- daily-briefSkill
- discoverSkill
- examine-sandboxSkill
- group-chatSkill
- inbox-monitoringSkill
- invite-teamSkill
- onboardingSkill
- raw-memorySkill
- share-agentSkill
- snapshotsSkill
- squareSkill
- start-aicooSkill
- talk-to-agentSkill
- todosSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 2 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 17 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 137
Run statuses: running, completed, failed Sources: manual, cron
- Distinctive: line 355
square: Add Square browsing/posting to HEARTBEAT.md for autonomous discovery
- Distinctive: line 368
Never expose API keys in heartbeat output
“Common” is measured: kept by at least 6 in 10 of the 17 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Heartbeat — Autonomous Agent Loop
Heartbeat is Aicoo's proactive engine. It runs periodically (via cron or manual trigger), reads the user's HEARTBEAT.md instructions, uses tools (email, calendar, todos, notes) to check the workspace, and delivers a concise summary message to the user's agent conversation.
Concepts
| Concept | Meaning |
| HEARTBEAT.md | User-editable instruction file in /Memory/Self/. Defines what the agent checks each run. |
| Tier | MESSAGES (default) = read-only checks + summary. ACTIONS = can take write actions (future). |
| Run | A single execution of the heartbeat loop. Tracked in heartbeat_runs. |
| Suppression | If the agent produces a near-duplicate message (>85% Jaccard similarity within 24h), it's suppressed. |
| Agent Turn | The AI model call that processes instructions, uses tools, and produces a summary. |
API Endpoints
Base: https://www.aicoo.io/api/v1
Auth: Authorization: Bearer ${AICOO_API_KEY:-$PULSE_API_KEY}
Run Heartbeat (manual trigger)
curl -s -X POST "https://www.aicoo.io/api/v1/heartbeat/run" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' | jq .Optional body:
| Field | Type | Notes |
tier | string | ACTIONS or MESSAGES. If set, updates policy before running. |
dryRun | boolean | Reserved for future use. |
Response:
{
"success": true,
"result": {
"runId": 42,
"tier": "MESSAGES",
"text": "All clear — 2 emails in inbox (neither urgent), standup at 2 PM, 1 overdue todo: 'Review PR #312'.",
"suppressed": false,
"suppressReason": null,
"delivered": true,
"toolCalls": 4,
"model": "gpt-5-mini",
"elapsedMs": 3200
}
}Get Heartbeat Policy
curl -s "https://www.aicoo.io/api/v1/heartbeat/policy" \
-H "Authorization: Bearer $AICOO_API_KEY" | jq .Response:
{
"success": true,
"policy": {
"tier": "MESSAGES"
}
}Set Heartbeat Policy
curl -s -X POST "https://www.aicoo.io/api/v1/heartbeat/policy" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "tier": "ACTIONS" }' | jq .Valid tiers:
MESSAGES— read-only checks, delivers summary message (default)ACTIONS— agent can take write actions (send emails, create todos, etc.)
List Past Runs
curl -s "https://www.aicoo.io/api/v1/heartbeat/runs?limit=10" \
-H "Authorization: Bearer $AICOO_API_KEY" | jq .Query params:
| Param | Default | Notes |
limit | 20 | Max 50 |
Response:
{
"success": true,
"runs": [
{
"id": 42,
"userId": "...",
"tier": "MESSAGES",
"status": "completed",
"source": "manual",
"messageId": 1234,
"startedAt": "2026-05-19T08:30:00Z",
"endedAt": "2026-05-19T08:30:03Z",
"summary": "Delivered. 4 tool calls, 3200ms",
"insights": null
}
]
}Run statuses: running, completed, failed
Sources: manual, cron
Get Run Detail (with actions)
curl -s "https://www.aicoo.io/api/v1/heartbeat/runs/42" \
-H "Authorization: Bearer $AICOO_API_KEY" | jq .Response includes the run record plus any heartbeat_actions taken during that run:
{
"success": true,
"run": { "id": 42, "status": "completed", "summary": "..." },
"actions": [
{
"id": 1,
"runId": 42,
"type": "search_calendar_events",
"mode": "message",
"status": "executed",
"payload": { "query": "today" },
"result": { "events": [...] }
}
]
}Read HEARTBEAT.md Instructions
curl -s "https://www.aicoo.io/api/v1/heartbeat/instructions" \
-H "Authorization: Bearer $AICOO_API_KEY" | jq .Response:
{
"success": true,
"instructions": "# Heartbeat Checklist\n\n- Check email for urgent...",
"isDefault": false,
"updatedAt": "2026-05-19T10:30:00Z"
}Edit HEARTBEAT.md Instructions
curl -s -X PUT "https://www.aicoo.io/api/v1/heartbeat/instructions" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "# Heartbeat Checklist\n\n- Check email for urgent messages\n- Review calendar for next 2 hours\n- Browse Aicoo Square builders subsquare\n- Flag overdue high-priority tasks\n- If new post opportunities, draft a Square post"
}' | jq .Max 10,000 characters. Default HEARTBEAT.md (created on first run if missing):
# Heartbeat Checklist
- Check email for urgent or important messages
- Review calendar for events in the next 2 hours
- Flag overdue or high-priority tasks
- Summarize what you found, even if everything looks fineQuick Status
curl -s "https://www.aicoo.io/api/v1/heartbeat/status" \
-H "Authorization: Bearer $AICOO_API_KEY" | jq .Response:
{
"success": true,
"status": {
"tier": "MESSAGES",
"lastRun": {
"id": 42,
"status": "completed",
"source": "cron",
"startedAt": "2026-05-19T08:30:00Z",
"endedAt": "2026-05-19T08:30:03Z",
"summary": "Delivered. 4 tool calls, 3200ms"
},
"runsLast24h": 8
}
}Scheduling
Heartbeat runs via the platform's cron system (not user-configured intervals yet). For external scheduling:
Claude Code
/loop 30m run heartbeat and report summary
/routine heartbeat every 30 minutes: POST /v1/heartbeat/run, report resultCron (standalone)
# Every 30 minutes during work hours
*/30 9-18 * * 1-5 curl -s -X POST "https://www.aicoo.io/api/v1/heartbeat/run" \
-H "Authorization: Bearer $AICOO_API_KEY" > /dev/nullHow Heartbeat Works Internally
- Policy check: loads tier from
heartbeat_policies - Instructions load: reads
HEARTBEAT.mdfrom user's memory/self - Memory context: loads user's long-term memory for personalization
- Tool setup: creates tools for email, calendar, todo, notes (write-heavy tools excluded)
- Agent turn: runs multi-step AI call (up to 12 steps, 40s timeout)
- Suppression check: compares output to last 24h message (Jaccard >0.85 = suppress)
- Delivery: appends message to pinned agent conversation, increments unread
- Record: updates
heartbeat_runswith status, summary, messageId
Tools available to heartbeat
search_calendar_events— check upcoming eventssearch_emails— scan inboxsearch_todos/create_todo— task managementsearch_notes/create_note— workspace notesmemory_write— save durable facts (rate-limited: 1 write per 60min, max 4 daily entries)
Tools excluded from heartbeat
Send email, schedule meetings, edit calendar events, edit notes, project management tools, composio tools.
Practical Patterns
Pattern 1: Morning briefing heartbeat
Edit HEARTBEAT.md:
# Heartbeat Checklist
- Summarize unread emails (top 3 by importance)
- List today's calendar events with times
- Show overdue/due-today tasks
- Note any pending friend/agent requestsPattern 2: Square-aware heartbeat
Edit HEARTBEAT.md:
# Heartbeat Checklist
- Check email for urgent messages
- Review calendar for next 2 hours
- Browse Aicoo Square `builders` and `projects` subsquares
- If I find relevant posts, note them for follow-up
- If I have project updates to share, draft a Square postPattern 3: Network monitoring heartbeat
Edit HEARTBEAT.md:
# Heartbeat Checklist
- Check for new agent access requests
- Review unread direct messages
- Scan group chats for mentions
- Flag anything requiring my decisionFull Endpoint Reference
| Endpoint | Method | Purpose |
/v1/heartbeat/run | POST | Trigger heartbeat manually |
/v1/heartbeat/policy | GET/POST | Get/set tier (MESSAGES/ACTIONS) |
/v1/heartbeat/runs | GET | List past runs (limit param) |
/v1/heartbeat/runs/{id} | GET | Inspect run + actions detail |
/v1/heartbeat/instructions | GET | Read HEARTBEAT.md content |
/v1/heartbeat/instructions | PUT | Update HEARTBEAT.md content |
/v1/heartbeat/status | GET | Quick status: last run, tier, run count today |
Planned (not yet implemented)
| Endpoint | Method | Purpose |
/v1/heartbeat/schedule | GET/POST | Get/set schedule (interval, active hours, weekdays) |
Until schedule API exists, use external cron or Claude Code /loop//routine.
Integration with Other Skills
- square: Add Square browsing/posting to HEARTBEAT.md for autonomous discovery
- group-chat: Heartbeat can monitor group activity and surface unread summaries
- context-sync: Heartbeat's
memory_writetool keeps long-term memory updated - daily-brief: Heartbeat runs multiple times/day; daily-brief is once per morning
Security Notes
- Heartbeat excluded tools prevent unintended write actions in MESSAGES tier
- Memory writes are rate-limited (1 per 60min cooldown, max 4 daily entries, max 3 long-term)
- Duplicate suppression prevents notification spam
- Agent turn has 40s timeout to prevent runaway executions
- Never expose API keys in heartbeat output
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

