name: vellum-heartbeat description: Configure periodic background checklist runs compatibility: "Designed for Vellum personal assistants" metadata: emoji: "💓" vellum: category: "system" display-name: "Heartbeat" activation-hints: - "Set up a heartbeat, periodic checklist, background health check, or recurring background task" avoid-when: - "One-off or recurring schedules with specific payloads - use the schedule skill instead"
The heartbeat feature runs your HEARTBEAT.md checklist periodically in a background conversation. Each run, the assistant works through the checklist and flags anything that needs attention.
Setup
Edit config.json using file_edit:
- Enable heartbeat: Set
heartbeat.enabledtotrue. - Set interval: Set
heartbeat.intervalMs(milliseconds between runs, default: 3600000 = 1 hour). - Optional active hours: Set
heartbeat.activeHoursStartandheartbeat.activeHoursEnd(0-23) to restrict runs to certain hours. Both must be set together.
Example config.json heartbeat section:
{
"heartbeat": {
"enabled": true,
"intervalMs": 1800000,
"activeHoursStart": 8,
"activeHoursEnd": 22
}
}
Then edit HEARTBEAT.md with the checklist items. The assistant will work through this file each heartbeat run.
Notes
- Toggling
heartbeat.enabledrequires an assistant restart to take effect. - Changes to
HEARTBEAT.mdtake effect on the next heartbeat run (no restart needed). - The heartbeat runs in a separate background conversation, not the user's active chat.
Inference
Heartbeat runs use the heartbeatAgent call site, which by default resolves to the
cost-optimized profile so background checks stay cheap. Override via
llm.callSites.heartbeatAgent in workspace config (profile, provider, model,
effort, thinking — whatever the profile supports).