---
name: vellum-heartbeat
description: "Configure periodic background checklist runs"
license: "MIT"
compatibility: "Designed for Vellum personal assistants"
metadata:
  decimalai-skill-id: "dd0fffc6-090c-4ab8-ae57-54da028023ab"
  decimalai-version-id: "b821268a-cc89-44dd-a995-72a004c2d781"
  decimalai-version: "2"
  decimalai-body-sha256: "0113133fe4ab2a3c9462cc3352ae71509712a18001dced76f0cab7ab9b3fb593"
  decimalai-name: "vellum-heartbeat"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "agent-tooling"
  decimalai-source: "https://app.decimal.ai/s/vellum-heartbeat@2/SKILL.md"
---
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`:

1. **Enable heartbeat**: Set `heartbeat.enabled` to `true`.
2. **Set interval**: Set `heartbeat.intervalMs` (milliseconds between runs, default: 3600000 = 1 hour).
3. **Optional active hours**: Set `heartbeat.activeHoursStart` and `heartbeat.activeHoursEnd` (0-23) to restrict runs to certain hours. Both must be set together.

Example config.json heartbeat section:

```json
{
  "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.enabled` requires an assistant restart to take effect.
- Changes to `HEARTBEAT.md` take 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).
