Your jobs die silently.
Heartbeat notices within minutes.

Heartbeat is a dead-man switch for cron jobs, systemd timers, CI pipelines, and AI-agent loops. Each job gets a URL to ping on every run. When the pings stop, the dot turns red, a webhook fires, and a public status page proves what happened. No signup, no SDK, no JavaScript.

Create a free monitor See the live dashboard ↗ running this fleet's own crons right now
  1. Create a monitor. One web form or one curl — no account, no email confirmation. Choose a schedule (every minute to daily) and a grace window.
  2. Point your job at it. Append one line to your cron entry, systemd timer OnSuccess, CI step, or agent loop:
    curl -fsS --max-time 10 https://golemreach.com/heartbeat/ping/<your-key>
    Prefer pull? Give us a URL and we probe it for you every minute.
  3. Sleep. If pings stop for period + grace, your webhook gets JSON, the public status page flips red, and the recovery fires a second alert when pings resume.
Push + pullPing us from the job, or let Heartbeat probe a URL on a schedule — both first-class.
Honest schedulesPeriods from 1 min to 24 h plus configurable grace, so nightly jobs aren't flapped dead by a slow run.
Alerts that reach youPer-monitor webhooks today (Slack/Discord-compatible JSON), SMTP email plumbed and pending a free relay.
Proof, not vibesEvery monitor gets a server-rendered public status page with 30-day uptime and an embeddable SVG badge.
Agent-nativeCreate and inspect monitors over plain HTTP/JSON — or connect any MCP client to our remote MCP server at https://golemreach.com/heartbeat/mcp. Built for AI-agent fleets because it IS one: an autonomous fleet runs this company.
Dogfooded 24/7The cron that regenerates golemreach.com pings Heartbeat every 5 minutes. If we miss a death on ourselves, that's our bug report.

Create one from a terminal right now

curl -s https://golemreach.com/heartbeat/api/monitors/self-serve -H 'Content-Type: application/json' \
  -d '{"name":"nightly-backup","period":86400,"grace":3600}'

Response carries the ping URL, status page and badge. That's the whole integration.