Field notes · 2026-08-25 · RunVouch

Cronitor for AI agents: what changes when the job is an LLM

A cron monitor tells you the job ran. An AI agent also needs a cost cap, loop detection and an outcome check. What to keep and what to add.

I have used cron monitors for years, and for the last two years I have had a crypto trading bot running unattended on a box I do not look at before coffee. The monitor earned its keep. When the machine rebooted at 3am and the job never fired, I knew within the hour. Then I started putting LLM agents on those same schedules, and the monitor kept telling me everything was fine while the agent did nothing useful for three nights in a row.

RunVouch is a dead man's switch, cost cap and outcome check for unattended AI agents: it alerts you when a scheduled agent misses its window, fails, loops, overspends or produces no output. I built it because the cron monitor I already had was correct and still useless for this.

What a cron monitor like Cronitor actually sees

Cron monitors are built around process-level truth. Cronitor tracks three events per job, a run, a complete and a fail, plus duration, and it can alert when a job does not run on schedule, when duration goes above a maximum or below a minimum, or after a threshold of consecutive failures. Healthchecks.io is even more direct: your job pings a URL, silence past the grace period is an alert, and you signal a failure by appending /fail or the exit status to the ping URL. Their own docs are honest about the limit, which is that the service cannot see what happened inside the job.

For a bash script that rotates backups, that model is complete. Start, end, exit code, wall clock. There is nothing else worth knowing. I still run exactly that for my infrastructure jobs and I am not proposing you drop it.

What changes when the job is an LLM

Four things break the process model, and all four bit me before I wrote any code.

Cronitor for AI agents: the checks a scheduled agent needs

RunVouch keeps the three checks a cron monitor already gives you and adds five that only make sense when the job thinks.

How to monitor a cron AI agent in practice

Declare the agent once, then wrap the command:

rv agent nightly-report --cadence 24h --cap-run-cost 2 --evidence
rv run nightly-report --evidence-file out/report.html -- claude -p "write the daily report"

The client is stdlib only and fails open. If the RunVouch API is down or your key is wrong, rv run still runs your command and still returns its exit code. Monitoring that can break the job is worse than no monitoring.

For Claude Code specifically there is a plugin that hangs off the hook system. SessionStart, PostToolUse and Stop give session boundaries and every tool call, and the transcript gives real tokens and cost, so you get budget and retry storm detection without wrapping anything. There is also an MCP server, published in the official registry as com.runvouch/runvouch, and Python and Node clients for agents that are not shell shaped.

Alerts go to Telegram, Slack or a webhook. On a budget or storm alert RunVouch can call a pause webhook so the next scheduled run does not start. It never kills a running process. A half-finished agent that has written three files and not the fourth is a worse state than a finished expensive one, and the process is on your machine, not mine.

Keep the cron monitor, add the agent watchdog

These are not competitors. My backup jobs and my tunnel checks still ping a plain heartbeat monitor, because did it run is genuinely the whole question there. The agents get RunVouch, because did it run is the least interesting of the eight things that can go wrong. Running both on the same job is fine and costs you one extra line in the crontab.

Free covers 3 agents. Solo is $9 a month, Team is $29. The server is MIT licensed if you would rather run it yourself, and the hosted version runs in the EU.

Frequently asked questions

Can I use Cronitor or Healthchecks.io for AI agents?

Yes, and they will correctly tell you when the agent did not run or exited non-zero. What they cannot tell you is that the run cost eleven dollars, called the same tool nine times, or exited clean without writing the report, because that information never reaches an HTTP ping.

Does RunVouch stop the agent when it hits the cost cap?

It alerts, and it can call a webhook you control to pause the agent before the next run. It does not kill a running process. Deciding when it is safe to interrupt a half-done agent is a call only your code can make.

What if RunVouch itself is down?

Your job runs anyway. The rv client fails open by design, so a network error or an expired key is logged and ignored, and the wrapped command's exit code is passed through untouched. You lose the monitoring for that run, not the run.

Related field notes


Try it: free for 3 agents · Docs: Claude Code · cron