Skip to content
homepageevery 5 min · last 2 hours
One mark per run. Three consecutive failures opened an incident; the faded mark is a run that never reported.

clawdwatch

Synthetic monitoring for Cloudflare Workers. It checks your endpoints on a cron, decides when something is genuinely broken, and hands that off to Slack, a signed webhook, or an agent.

Detection is deterministic — thresholds, a state machine, and maintenance windows decide whether something is down. No model is in that loop. State lives in D1 and nowhere else.

Install

bash
npm create cloudflare@latest my-monitor -- \
  --template clawdwatch/clawdwatch/examples/worker
cd my-monitor

wrangler d1 create clawdwatch          # paste the id into wrangler.jsonc
npm run migrate
wrangler secret put SLACK_WEBHOOK_URL   # optional; this is all Slack needs
npm run deploy

Add a check:

bash
curl -X POST "https://your-worker.workers.dev/api/checks" \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "homepage",
    "name": "Homepage",
    "url": "https://example.com",
    "assertions": [
      { "type": "statusCode", "operator": "is", "value": 200 },
      { "type": "responseTime", "operator": "lessThan", "value": 3000 }
    ],
    "tags": ["production"]
  }'

Where to go

PageWhat it covers
Getting startedDeploy it and add your first check
ConfigurationEvery check and fleet option
SecretsWhy a check may reference a secret but never contain one
NotifiersSlack, signed webhook, and RPC over a service binding
AI agentsResponse-body capture, and the alert payload contract
API referenceRoutes, auth, and the agent-facing description

Reading an alert

Four event kinds, batched per run, so a ten-endpoint outage is one notification rather than ten:

KindWhen
openeda check crossed its failure threshold
recoveredit passed again, with the downtime measured
reminderstill down, on the configured cadence
summarywhat changed this run, including all-clear

Every alert carries schemaVersion and a links object of short-lived signed URLs, so a receiver can annotate or acknowledge an incident without holding a standing credential.

The other half

thinkbot is an ops agent built on this. It takes an alert, correlates it against GitHub, Datadog, Sentry and Rollbar, and reports what changed — the step monitoring cannot do on its own.

MIT. Source on GitHub.