Get told when a scheduled job silently stops.
Mortemain is a dead man's switch for anything that's supposed to run on a schedule: a cron or scheduled task, a backup, a Salesforce or Power BI job, a payroll run, a data sync. Each run checks in; if an expected check-in is late or never arrives, Mortemain alerts you. Silence becomes the alarm.
Free plan, no credit card required. Your first check runs in minutes.
Where the name comes from
Mortemain is the old word for the dead hand: in medieval law, property held by a hand that never lets go.
Use cases
Monitor anything that runs on a predictable schedule, such as:
…and plenty more, whatever you run.
The gap nobody watches
Ordinary monitoring watches for errors.
A server, cron daemon or datacentre that dies silently produces no error at all.
Ordinary alerting therefore reads the silence as “all fine.”
Mortemain makes the absence of information the signal. When an expected check-in doesn't arrive within its planned window, that absence is the event that triggers the failure alert.
How it works
One pre-configured line of code. Sixty seconds.
No agent to install, no daemon to babysit. If it can make one HTTP request, curl, PowerShell, or an app's "call a URL" step, it can check in.
Add a check
Create a check for each scheduled job and get a unique, unguessable ping URL. Set a fixed interval or a cron expression, with time zone and daylight-saving changes handled for you.
Ping on every run
Drop one line into your cron job, Windows Scheduled Task, backup script or app so it pings when it finishes.
Mortemain watches the clock
If the window is missed, it alerts you by email, webhook, ntfy, Telegram, Slack, Discord or Microsoft Teams.
# Linux / macOS / Windows: curl run-nightly-etl.sh && curl -fsS -m 10 https://ping.mortemain.com/your-check-uuid # Windows PowerShell Invoke-RestMethod https://ping.mortemain.com/your-check-uuid # No shell? most apps have a "call a URL" / webhook step, check in with the URL and its UUID.
# mark the run as started; Mortemain measures how long it takes curl -fsS https://ping.mortemain.com/your-check-uuid/start # explicit failure, alert right away instead of waiting for the deadline curl -fsS https://ping.mortemain.com/your-check-uuid/fail # or report the shell's own exit code: 0 is success, anything else is a failure curl -fsS https://ping.mortemain.com/your-check-uuid/$? # attach a log line or error output for context curl -fsS --data-binary @run.log https://ping.mortemain.com/your-check-uuid/log
No HTTP at all? Send an email instead: use your-token@in.mortemain.com as the check-in address, handy for legacy systems, appliances, and anything that can send mail but not HTTPS.
See it in action
A look inside.
The dashboard, a check up close, and the status page you can share. Click any shot to open it full-size.
Why use Mortemain
Mortemain is ultra-simple, and wiring it up is a single line: no agent, no SDK, no npm module to audit. If your code or tool can make an HTTP request or send an email, you can use it.
No SDK. Just one HTTP request, or an email.
Marking a job done takes a single HTTP request, or one email. There's nothing to install that you don't already have.
Your AI agent, which of course knows how to call an endpoint: no package to hunt for, no tokens burned reading integration docs.
Inside-out, not outside-in
Uptime monitors watch from the outside and report "response received, status OK." Mortemain flips it: your job or service checks in from the inside, reporting its own health from first-hand knowledge. That first-person heartbeat, "I worked," "I'm alive," proves it's genuinely working and able to reach out, catching the box that answers a probe with "fine" while its real job silently failed.
Hosted in the EU
Three datacentres, two countries: France and Germany. Automatic failover, GDPR-compliant, and your data never leaves the EU.
Monitor by email
If it can send an email, you can monitor it. Legacy backup boxes, NAS units, RAID and UPS controllers: anything that emails a report checks in at your-token@in.mortemain.com. An arriving email proves the whole mail path, not just that code ran.
Generous free tier
Start free, and stay free if it's enough: 20 checks, check-ins as often as every 5 minutes, 90 days of history, and every alert channel (email, webhook, ntfy, Telegram, Slack, Discord, Microsoft Teams). No card to enter.
Who it's for
For anyone or any organisation that can't afford a silent failure.
- Solo devs: monitor your personal cron jobs and backups.
- Ops teams: run 100+ checks across a team, with roles.
- Businesses: an EU business, data in France and Germany.
Solo devs & sysadmins
You have cron jobs, timers and a nightly backup, and want a dead man's switch that pings you on your phone the moment any of them quietly stop.
Small ops & data teams
Dozens of scheduled jobs and pipelines across a few servers. Team spaces with per-member roles (owner, editor, read-only) and alerts to Slack, Telegram, Discord, Microsoft Teams, webhook or email.
Anyone with a recurring task that must not fail.
A nightly backup, an ETL load, a cert renewal, a device heartbeat: you need to know it worked and finished, and be told quickly if it didn't.
Why Mortemain, specifically
Built in the EU, for the EU, in two languages.
- EU-only data residency. Servers in France and Germany, GDPR-compliant. Your data never leaves the bloc.
- Check in by email, not just HTTP. Anything that can send an email can be monitored, even legacy boxes that can't run curl. An arriving email proves the whole chain worked.
- Honest during its own outage. If Mortemain can't actually vouch for a check, it stays quiet instead of crying wolf. An alert from it means something real.
- English and French. The product, the guides and the alerts are fully bilingual.
- Flapping detection. A check that recovers and fails repeatedly is flagged as flapping, one heads-up instead of a flood of alerts.
- Pause, resume, regenerate. Pause a check without losing its history, resume any time, and regenerate a leaked ping URL in one click.
- REST API. Automate check and channel management with the API, on every paid plan.
Security, in three points
- Encrypted at rest, per account. Sensitive data is encrypted with AES-256, keyed to your account.
- Signed, single-use check-ins. A captured or leaked ping URL can't be replayed to fake a healthy check.
- EU-only, three datacentres. If one fails, another takes over automatically; your data never leaves the EU.
Full detail: how Mortemain secures your data.
FAQ
Questions, answered.
What is a dead man's switch monitor?
It alerts you when an expected event doesn't happen. Your job checks in when it runs; if a check-in is late, Mortemain alerts you. That catches silent failures, a job that never started, a backup that never finished, that error-only monitoring can't see.
How do I connect a job?
One HTTP request at the end of the job: curl, PowerShell's Invoke-RestMethod, or your app's "call a URL" / webhook step. No agent, no SDK. Anything that can't do HTTP but can send an email checks in by email instead.
Can I integrate natively from a script on Windows?
Yes. curl ships with Windows 10 and 11, PowerShell's Invoke-RestMethod is built in, and a Windows Scheduled Task, SQL Server Agent job or Veeam post-job script can call the ping URL directly.
Where is my data hosted?
In the European Union, under the GDPR, across three datacentres: two in France, one in Germany. If one fails, another takes over automatically. Your data never leaves the bloc.
How much does Mortemain cost?
The free tier includes 20 checks, check-ins as often as every 5 minutes and 90 days of history, no credit card required. Paid plans go further (more checks, 1-minute check-ins, longer history) at founding launch rates; see the pricing page.
What if Mortemain itself has an outage?
Mortemain is built to never false-alarm during its own outage: if Mortemain has a fault, it won't page you, and any outage is published on its status page. An alert from Mortemain is meant to mean something real.
Start watching your jobs today.
Create a free account and set up your first check in minutes. No credit card required.