Drawn from a real incident. The provider key was rotated at 02:14. The process and its health check stayed green, and every scheduled job after that failed.
An uptime check sees a process. Agents fail in five other ways.
Generic monitors catch the night everything goes down. These are the nights when something breaks and every light stays green.
Up but broken
A provider key is rotated. The process is up, the health endpoint is green, and every model call fails.
Earthlight catches it by
A run of provider errors, or no successful calls when scheduled jobs should have made some. The alert names the error and the count.
Uptime tools miss it because
The process and the port are fine.
Runaway
A cron job loops and burns $40 of credit overnight.
Earthlight catches it by
A baseline for each job: cadence, duration, tokens and tool calls. A deviation alerts you, and a local switch pauses that one job.
Uptime tools miss it because
They have no idea what a job or a budget is.
Dead, or stuck restarting
An update breaks the agent. Its Telegram bot has been silent since Tuesday.
Earthlight catches it by
Missed heartbeats and repeated process restarts.
Uptime tools miss it because
They catch only the fully dead case, and only if someone set up a health check.
Stuck
A task has been “running” for six hours without a single tool call.
Earthlight catches it by
No tool calls or output within the job’s normal duration.
Uptime tools miss it because
The process is up.
Drifted
The disk fills, memory persistence quietly fails, the backup didn’t run, the version is months old.
Earthlight catches it by
Disk and memory thresholds, backup checks and version checks.
Uptime tools miss it because
They catch some of it, without knowing there’s an agent involved.
It runs next to your agent and only talks outward.
Install the daemon
One command puts a small open-source daemon next to your agent. It works with Hermes first, then OpenClaw, and anything else that can send a heartbeat.
It watches what’s already there
Process state, the health endpoint, session and log files, provider usage. It sends heartbeats and a handful of metrics out, nothing more.
You hear about it once
When an agent needs a human, you get one message on Telegram, email or Discord. If a job is running away, it can pause just that job.
One message when it matters. One paragraph every morning.
Examples of what lands on your phone.
Alert
hermes on vps-fra-1 is up but broken
7 model calls in a row failed since 02:14 with 401 invalid_api_key. Last successful call 02:09. Jobs affected: inbox-sweep, morning-brief.
Morning digest
Overnight, one thing needs you
11 of 12 scheduled jobs ran. Model spend was $1.84, inside the usual range. research-digest ran three times its usual length and was paused at its $2.00 cap. The 03:00 backup is verified. Needs you: resume or drop research-digest.
Put your agents on watch tonight.
Pick a plan, tell us what you run, and install the daemon in a minute. Paid plans start with 14 days free, and no card is needed.
You’re in.
Your install command and dashboard link are on their way to your inbox. Run the command next to your agent, and Earthlight starts watching.