
Deadcheck is a versatile dead man's switch designed to be independent of the infrastructure hosting it. The project allows users to set up checks that must be periodically "confirmed" to indicate that everything is fine. If a check isn't confirmed within the specified time, Deadcheck triggers a set of actions, such as sending alerts or executing tasks to ensure that the necessary steps are taken in the event you're no longer able to do so.
Deadcheck is an automated dead man's switch that doesn't rely on its own uptime. Instead, it uses external services for final triggers, ensuring alerts and actions occur even if the hosting infrastructure is down. Deadcheck relies on third parties (e.g., HealthChecks.io, PagerDuty) to handle alerts when a check is missed.

Download the latest release for your architecture.
checks:
- id: "hourly-sync"
name: "Upload data every hour"
description: "<string>"
schedule:
every:
interval: "1h"
start: "14:00"
end: "18:00"
# Override alert for one check
alert:
pagerduty:
apiKey: "<string>"
escalationPolicy: "<string>"
- id: "2pm-checkin"
name: "Reports Finalized"
schedule:
weekdays:
timezone: "America/New_York"
times:
- "14:00"
# Only allow check-ins between 13:55 and 14:05
tolerance: "5m"
- id: "5pm-close"
name: "Close out for the day"
schedule:
bankingDays:
timezone: "America/New_York"
times:
- "17:00"
# Only allow check-ins between 16:55 and 17:05
tolerance: "5m"
# Global alert configuration
alert:
# healthchecksio:
# apiKey: "string"
# pagerduty:
# apiKey: "<string>"
# escalationPolicy: "<string>"
# from: "<email>"
# slack:
# apiToken: "<string>"
# channelID: "<string>"
Make an HTTP POST or PUT to deadcheck:
PUT /v1/checks/{id}/check-in
{"nextExpectedCheckIn":"2024-10-09T21:05:00Z"}
Successful response, or failure in the response.
Apache License 2.0 - See LICENSE for details.
$ claude mcp add deadcheck \
-- python -m otcore.mcp_server <graph>