Connection check
verified live · 27h ago
heartbeat-monitor
Dead-man's-switch for cron jobs & AI agents. Import a crontab to arm one silent-miss alert per job.
Tools
7
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
27h ago
Tools & capabilities
7 toolsRead from the running server on 27h ago.
create_heartbeat
name*emailpull_urlstuck_afterwebhook_urlgrace_seconds
+2
Create a Cronping heartbeat monitor (dead-man's-switch). Returns a ping_url to call on each successful run of your agent loop, worker, or cron job, plus a claim_token to manage it.… Create a Cronping heartbeat monitor (dead-man's-switch). Returns a ping_url to call on each successful run of your agent loop, worker, or cron job, plus a claim_token to manage it. If pings stop arriving within period+grace, Cronping raises an alert. No account required. After creating, send one verification ping (call ping_heartbeat with the returned id) to confirm setup — the check flips from 'new' to UP so you know it's wired correctly. Alternatively, pass pull_url to make a PULL check: Cronping fetches that URL on schedule and alerts if it fails — for targets that can't call a ping URL (a health endpoint, status page, or API).
delete_heartbeat
can modify data
id*claim_token*
Permanently delete a Cronping heartbeat monitor and all its events. Use this to tear down an ephemeral check your agent created (e.g. at shutdown, or after a one-off job) so it sto… Permanently delete a Cronping heartbeat monitor and all its events. Use this to tear down an ephemeral check your agent created (e.g. at shutdown, or after a one-off job) so it stops being monitored and can never raise a stale DOWN alert. Requires the claim_token returned by create_heartbeat. This is irreversible — the id and ping_url stop working immediately. To silence a check temporarily instead of deleting it, use pause_heartbeat.
get_heartbeat_status
read-only
id*claim_token*
Get the live status of a Cronping check (up/down/new, last ping time, ping count, and whether an alert channel is set). Get the live status of a Cronping check (up/down/new, last ping time, ping count, and whether an alert channel is set).
import_crontab
emailcrontab*
Arm a dead-man's-switch for EVERY line of a crontab in one call. Paste raw crontab text; Cronping parses each schedule, derives the expected interval from the cron expression itsel… Arm a dead-man's-switch for EVERY line of a crontab in one call. Paste raw crontab text; Cronping parses each schedule, derives the expected interval from the cron expression itself (using the longest gap between runs so weekend/twice-daily schedules don't false-alarm), and creates one heartbeat monitor per job. Returns, for each line, a ping_url plus the same command with `&& curl -fsS <ping_url>` already appended so you can drop it straight back into the crontab. Also anchors each new check's first deadline to the schedule's real next run — so a fresh switch neither pages at t=0 nor sleeps a full period. No account required. Ideal when an agent or operator wants to instrument a whole box's scheduled jobs at once. Up to 20 lines per call. Lines with no fixed interval (e.g. @reboot) are skipped.
pause_heartbeat
id*pausedclaim_token*
Pause or resume monitoring on an existing Cronping check without deleting it. Pause during planned maintenance or a known downtime window so a silent job does not raise a false DOW… Pause or resume monitoring on an existing Cronping check without deleting it. Pause during planned maintenance or a known downtime window so a silent job does not raise a false DOWN alert; resume to re-arm the dead-man's-switch. While paused, missed pings are ignored and no alerts fire. Requires the claim_token returned by create_heartbeat.
ping_heartbeat
id*signalprogress_token
Send a heartbeat signal to a Cronping check. signal="success" (default) marks it UP and resets the timer; "start" records that a run began (for duration); "fail" marks it DOWN imme… Send a heartbeat signal to a Cronping check. signal="success" (default) marks it UP and resets the timer; "start" records that a run began (for duration); "fail" marks it DOWN immediately and alerts. Optionally pass progress_token (a digest of your run's actual output) on success pings: if the same token repeats for several consecutive runs, the check flips to STUCK — catching a "zombie" job that keeps pinging on schedule while its real work has stalled.
set_heartbeat_alert
id*emailclaim_token*webhook_url