A cron fails silently at 3am and you find out from a customer at 9. cron.watch flips that — every job, timer, and endpoint checks in, and we page you the moment one goes quiet, runs late, or drifts off its numbers.
Join the waitlist · double opt-in · no spam. Or see the live demo →
Instrument a single job by hand, or let the Field Agent find all of them. Either way you're protected in minutes, not a sprint.
Pipe one curl into an existing job, or install the Field Agent once — it reads your crontab and systemd timers and registers every job automatically. Zero code changes.
Expected schedule, grace period, max run-time, and the metrics that matter — rows synced, queue depth, latency. We learn the baseline so late and weird are caught, not just missing.
Miss, overrun, or anomaly → routed to Slack, PagerDuty, OpsGenie, or a webhook by per-monitor policy. Flapping is dampened. Maintenance windows stay silent. No noise.
Fire-and-forget HTTP, a live WebSocket for long jobs that report progress, plain email for the legacy box no one wants to touch — or just a DNS lookup, the cheapest health check there is.
A single GET says I ran. Add /start and an exit code and we compute real duration and success. POST a body and you get custom metrics, metadata, and the last lines of the log attached to the run — no agent required.
Open a WebSocket and stream progress as it happens. The dashboard shows a live percentage and ETA, and if the connection drops mid-run we alert immediately — no waiting for a grace window to lapse.
We run the authoritative nameserver for dns.cron.watch. Resolve your monitor's hostname and we log the query — that's the check-in. No HTTP client, no TLS, no auth token. If the box can resolve names, it can report in. Use UDP for a throwaway ping or TCP when you want the handshake to confirm delivery.
dig / nslookup / host — already on every box$?.4f9a.dns.cron.watchEvery monitor gets an address like 4f9a@cron.watch. Any mail that lands counts as a check-in — perfect for ancient cron with MAILTO, appliances, or locked-down networks. Subject and body become the run log.
MAILTO= — the pattern legacy cron already usesMost snitches tell you a job pinged. We tell you whether it ran on time, finished fast enough, and produced sane numbers — then hold it to an SLO.
Install once. Auto-discovers every crontab entry and systemd timer, registers them, and keeps the inventory in sync. Zero code changes, zero forgotten jobs.
Silence is the signal. If the expected ping doesn't arrive inside the window, you get paged. The job doesn't have to know it failed — that's the point.
We track every run's duration, learn p50/p95, and alert on overruns — the job that still "succeeds" but now takes 40 minutes instead of 4.
Send rows processed, queue depth, bytes synced, revenue — any number. Charted on the dashboard and alertable, like a metrics backend that understands runs.
"Row count dropped 90% versus the trailing week" — even when the job exited 0. Catches the silent data bug a green checkmark hides.
Exit codes, stderr, and the log tail come along on check-in. Sentry-style context on why a run failed — not just that it did.
Hold a job to "succeeds 99% of runs / month." Live burn-down turns raw pings into a contract you can report on and defend.
Active HTTP/TCP/keyword probes for endpoints and APIs, side by side with your passive cron snitches. One pane for "is it up" and "did it run."
One blip isn't an incident. We distinguish a single miss from a job that's genuinely degrading, so you're paged on signal — never on noise.
Scheduled deploys, backups, and known downtime stay silent. Mute by monitor, tag, or time range — no muscle-memory "ack" spam.
Public or private status pages built from the same cron + uptime data. Your customers and your on-call see one source of truth.
Each monitor gets its own escalation path: who, which channel, after how long. Slack, PagerDuty, OpsGenie, or webhook — routed independently.
Everything is an API. Manage monitors as code with the Terraform provider, script the CLI in CI, and never click through a console again.
Invite the whole org — engineers, on-call, stakeholders. We charge per monitor, never per seat. Adding a teammate is always free.
Shareable permalinks under cron.watch subdomains, then bring-your-own domain for white-label status pages and branded run links.
cron.watch ships an MCP server and a machine-readable llms.txt, so Claude, Cursor, or any AI client can sign you up, spin up monitors, and push data — no console, no clicking. And because the user (or their agent) opts in themselves, it's inbound and compliant by design — no cold lists.
Everything's an API, and the API is exposed as MCP tools — signup, create_organization, create_monitor, check_in, push_metric. Point an LLM at llms.txt and it already understands the whole product.
mcp.cron.watch roadmapDrop cron.watch into Claude, Claude Code, or Cursor. Your agent manages monitors and pushes metrics through typed tools — no glue code.
We publish /llms.txt and /llms-full.txt so any LLM can read how to sign up, model orgs, and send data — end to end.
Self-serve, agent-led signup means users come to you and opt in. Inbound growth — no scraped lists, no cold-email reputation risk.
AWS is overkill, healthchecks.io stops at the ping, Uptime Kuma was built for websites. Here's where each lands — no straw men.
| Capability | cron.watch | AWS EventBridge + CloudWatch |
healthchecks.io | Uptime Kuma |
|---|---|---|---|---|
| Deadman's snitch (silence = alert) | ● built-in | ◐ DIY alarms | ● core | ○ push-only addon |
| Auto-discovery of cron / systemd | ● Field Agent | ○ | ○ | ○ |
| Check-in via HTTP / WS / email / DNS | ● all four | ○ SDK/events | ◐ HTTP only | ◐ HTTP push |
| Live progress for long jobs | ● WebSocket | ○ | ○ | ○ |
| Latency / duration baselines | ● p50/p95 | ◐ metric + alarm | ◐ basic | ○ |
| Client-pushed custom metrics | ● any value | ◐ custom metrics $$ | ○ | ○ |
| Anomaly detection on values | ● | ◐ add-on | ○ | ○ |
| SLO / error budget | ● burn-down | ◐ hand-rolled | ○ | ○ |
| Uptime probes + status pages | ● both | ◐ Route53/Synthetics | ○ | ● core |
| Pricing model | ● per monitor | ○ per call/metric | ◐ per check | ● self-host |
| Unlimited team members | ● | ◐ IAM sprawl | ◐ tiered | ● |
| Setup effort | ● one curl | ○ console + IAM | ● one curl | ◐ host it yourself |
No per-seat tax — invite the whole team. Run up to 10 monitors free for your first 3 months; after that it's just cents a monitor. Prepay a balance or go monthly.
10 monitors free for 3 months · $0.50/monitor/mo after · $10/yr prepaid balance or $5/mo
cron.watch is launching soon. Get on the waitlist and we'll hand you early access — 10 monitors free for 3 months when you're in.
Double opt-in · we email you once at launch · unsubscribe anytime. See the live demo →