heartbeat
Periodic wake-up service that checks HEARTBEAT.md for pending tasks and executes them automatically.
Skill by lasertsole
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/lasertsole-heartbeat
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/heartbeat
What's inside
- Skill name
heartbeat- Description
- Periodic wake-up service that checks HEARTBEAT.md for pending tasks and executes them automatically. Use this skill to write or update HEARTBEAT.md.
- License
- MIT
- Instructions
- 93 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (10)
- README.ja.md
- README.ko.md
- README.md
- README.zh.md
- SKILL.md
- __init__.py
- __init__.py · scripts/
- base.py · scripts/
- core.py · scripts/
- evaluate.py · scripts/
SKILL.md (first lines)
## How to write HEARTBEAT.md
HEARTBEAT.md is the task manifest for the heartbeat service. Every tick, the service reads this file and lets the LLM decide whether there are active tasks to execute.
### Add a pending task
```python
from skills.builtin.core.heartbeat.scripts import add_task_to_heartbeat
task_text: str = (
"{placeholder}" # <- The task description to add (as a Markdown list item or paragraph)
)
index: int | None = int(
"{placeholder}"
) # <- Optional 0-based insertion position within Active Tasks content lines (skipping blanks and HTML comments). ``None`` (default) appends at end.
res = add_task_to_heartbeat(task_text, index)
print(res)
```
Example values for `task_text`:
```markdown
- Check email inbox, if there are unread emails from Alice, summarize and report
- If last code sync was more than 24 hours ago, pull latest main branch and run tests
- Send daily work report at 18:00: summarize today's conversation records
```
### List active tasks
```python
from skills.builtin.core.heartbeat.scripts import list_active_tasks
print(list_active_tasks())
```
### List completed tasks
```python
from skills.builtin.core.heartbeat.scripts import list_completed_tasks
print(list_completed_tasks())
```
### Move a finished task to completed
Use this when a task is done and won't be executed again — it moves the task from Active Tasks to Completed.
```python
from skills.builtin.core.heartbeat.scripts import move_task_to_completed
task_text: str = (
"{placeholder}" # <- The task description to add (as a Markdown list item or paragraph)
)
res = move_task_to_completed(task_text)
print(res)
```
### Remove task(s) from Completed
Both functions accept `None | str | list[str]` — the behavior is determined by the argument type:
- `None` → clear **all** completed records
- `str` → substring match, remove matching line(s)
- `list[str]` → substring match each string, remove all matching
```python
from skills.builtin.core.heartbeat.scripts import remove_tasks_from_completed
# Clear all completed records
res = remove_tasks_from_completed()
print(res)
# Remove any line containing "check email"
res = remove_tasks_from_completed("check email")
print(res)
# Remove multiple by substring match
res = remove_tasks_from_completed(["check email", "pull code", "daily report"])
print(res)
```
`clear_completed_tasks` is an alias with identical behavior:
```python
from skills.builtin.core.heartbeat.scripts import clear_completed_tasks
# all
res = clear_completed_tasks()
print(res)
# single substring
res = clear_completed_tasks("check email")
print(res)
# batch
clear_completed_tasks(["pull code", "report"])
print(res)
```From lasertsole/sherry_agent, MIT.
More from lasertsole/sherry_agent
- 0.620score
code-wiki
lasertsole
Generate wiki docs + Mermaid diagrams for any codebase.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
browser
lasertsole
Drive the session's real browser (the 工具箱·浏览器 panel) — open pages, read them as text, click and type, screenshot when layout matters.
SkillAFreshness: A★ 5Claude Code +9 - 0.618score
cron
lasertsole
Schedule reminders and recurring tasks.
SkillAFreshness: A★ 5Claude Code +9 - 0.617score
multimodal_rag
lasertsole
Private knowledge base for indexing multimodal files or folders into a knowledge graph, supporting multi-hop graph retrieval
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
todolist
lasertsole
Session-scoped task tracking with delegation routing and TaskFlow-backed DAG execution.
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
bugfix-contract
lasertsole
Synthesize a bug's behavior contract before patching: a behavior matrix from the issue, every visible assertion on the same behavior, conflicts resolved in…
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
taskflow
lasertsole
Durable multi-step task flows with optimistic locking, detached subagent step dispatch, waiting and idempotent resume via the taskflow_* tool family
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
ulw-execute
lasertsole
Orchestrator execution doctrine.
SkillAFreshness: A★ 5Claude Code +9 - 0.615score
image_to_text
lasertsole
Recognize and describe the content of an image.
SkillAFreshness: A★ 5Claude Code +9 - 0.612score
video_text_to_text
lasertsole
Describe/transcribe video content (such as .mp4, .mkv, .avi) into text.
SkillAFreshness: A★ 5Claude Code +9 - 0.612score
speech_to_text
lasertsole
Transcribe speech (such as .mp3, .wav, .ogg) into text.
SkillAFreshness: A★ 5Claude Code +9 - 0.611score
llm-wiki
lasertsole
Karpathy's LLM Wiki: build/query interlinked markdown KB.
SkillAFreshness: A★ 5Claude Code +9
Signals
- Stars
- 5
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Oct 18, 2026 (10 days ago)
- Last release
- Oct 18, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/lasertsole/sherry_agent
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from lasertsole
- 0.620score
code-wiki
lasertsole
Generate wiki docs + Mermaid diagrams for any codebase.
SkillAFreshness: A★ 5Claude Code +9 - 0.619score
browser
lasertsole
Drive the session's real browser (the 工具箱·浏览器 panel) — open pages, read them as text, click and type, screenshot when layout matters.
SkillAFreshness: A★ 5Claude Code +9 - 0.618score
cron
lasertsole
Schedule reminders and recurring tasks.
SkillAFreshness: A★ 5Claude Code +9 - 0.617score
multimodal_rag
lasertsole
Private knowledge base for indexing multimodal files or folders into a knowledge graph, supporting multi-hop graph retrieval
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
taskflow
lasertsole
Durable multi-step task flows with optimistic locking, detached subagent step dispatch, waiting and idempotent resume via the taskflow_* tool family
SkillAFreshness: A★ 5Claude Code +9 - 0.616score
bugfix-contract
lasertsole
Synthesize a bug's behavior contract before patching: a behavior matrix from the issue, every visible assertion on the same behavior, conflicts resolved in…
SkillAFreshness: A★ 5Claude Code +9
Cite this page
heartbeat skill. Agent Mart. https://agentmart.dev/skills/lasertsole-heartbeat (last updated 2026-10-24)