runvouch
OfficialThis server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
A green run means the scheduler worked, not that the task got done. RunVouch alerts within minutes when a scheduled agent is missing, failed, looping, over budget, drifting, or reported success without evidence.
pip install runvouch # or: npm install -g runvouch (zero-dependency client + rv CLI)
rv agent nightly-report --cadence 24h --cap-run-cost 2 --evidence
rv run nightly-report --evidence-file out/report.html -- claude -p "build tonight's report"No client, no header: every agent also has a ping URL, so anything that can call a URL can report.
0 3 * * * /usr/local/bin/nightly.sh; curl -fsS -m 10 https://api.runvouch.com/ping/<token>/$?Nothing for success, /start to open a run, /fail, or the exit code. rv agent NAME prints the URL.
Verifiable runs
Every finished run gets a sha256 record, every UTC day a Merkle root chained to the previous day and stamped in Bitcoin with OpenTimestamps. The day files are public at https://api.runvouch.com/proof/ and templates/verify_proof.py (stdlib only) checks a proof without our code. On every plan, Free included.
rv proof RUN_ID --verify # recomputes leaf + Merkle path against the public day file, exit 0 or 1Check it yourself, no account: https://runvouch.com/verify hands you one real sealed run from our own fleet, recomputes every hash in your browser, and has a button that edits a field so you can watch it break.
Mechanism and limits: https://runvouch.com/docs/proof · who needs it: https://runvouch.com/verifiable-agent-runs
Related MCP server: Claude Code Toolkit
Detectors
Alert | Meaning |
| expected run never started (dead scheduler, expired auth, crash before first line) |
| run ended non-zero / status=fail |
| run said ok but required proof (file written, URL 200, assertion) is missing, green ≠ done |
| same tool + identical input ≥ N times in one run (the invisible loop that costs $437) |
| cost or tokens over the cap you set. On Solo and Team the agent is paused and its next run is refused until |
| duration / output size off its 7-run baseline (robust MAD), silently doing something else |
| started, no end and no heartbeat past max runtime |
Alerts go to e-mail, Telegram, Slack, any JSON webhook, PagerDuty (Team) and the dashboard.
Layout
runvouch/server.py FastAPI + SQLite, all detectors, dashboard at /
runvouch/cli.py `rv`, stdlib-only client: rv agent / rv run -- CMD / rv status / rv alerts / rv proof
integrations/claude-code-plugin Claude Code plugin: SessionStart/PostToolUse/Stop hooks → RunVouch
integrations/mcp MCP server (stdio): runvouch_status/alerts/ack/runs/run_start/run_end
site/build.py generates the site into site/public/ (served by the same server)
tests/ 123 tests (pytest, no network)
docs/SELF_HOSTING.md run it yourself: Docker or venv, what differs from hostedSelf-hosting
One process, one SQLite file, Docker or a venv. Full guide in docs/SELF_HOSTING.md (ten minutes, what differs from the hosted service, how to move later).
cp .env.example .env && docker compose up -d # or: pip install -r requirements.txt && ./run.sh
curl -X POST "localhost:8787/admin/accounts?name=me&plan=team" -H "X-Admin-Token: $RUNVOUCH_ADMIN_TOKEN" # -> api_keyUse
export RUNVOUCH_KEY=rv_... RUNVOUCH_URL=http://localhost:8787
rv agent nightly-report --cadence 24h --cap-run-cost 2 --evidence
rv run nightly-report --evidence-file out/report.html -- claude -p "build tonight's report"
rv status ; rv alertsClaude Code plugin: see integrations/claude-code-plugin/README.md.
MCP: claude mcp add runvouch -e RUNVOUCH_KEY=... -- python3 integrations/mcp/runvouch_mcp.py
Test and contribute
.venv/bin/pip install -r requirements-dev.txt && .venv/bin/python -m pytest -q testsSee CONTRIBUTING.md.
Hosted vs self-host
Hosted at runvouch.com: free for 3 agents, $19 Solo, $99 Team, alerts, dashboard, a nightly database backup on the server, EU hosting. Self-host: this repo, MIT. Same code.
Compare
vs Healthchecks.io · vs Cronitor · vs Langfuse
License
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Dead-man switch monitors for cron & AI agents with dependency-cascade alerts. No account needed.
Dead-man's-switch for cron jobs & AI agents. Import a crontab to arm one silent-miss alert per job.
Know when cron jobs and AI agents stop running: create monitors and check in from your agent.
AI agent monitoring: alerts when your agents fail, stall or need you
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server that surfaces scheduled-job state and detects silent failures (exit 0 but no useful output) for cron, systemd timers, and OpenClaw schedulers, enabling AI agents to query job health and overdue status directly.669 PyPIMIT
- AlicenseAqualityDmaintenanceMaintenance, recovery, and observability for Claude Code. CLI + MCP server + dashboard.4041 npm109MIT
- AlicenseAqualityDmaintenanceReal-time agentic sentinel & breaking-change intelligence server for AI agents (Cursor, Hermes, Claude, LangChain).4MIT
- AlicenseAqualityAmaintenanceMartinLoop is the independent governance and financial control layer for AI coding agents. Set hard spend limits, prevent runaway loops, enforce verification, trigger rollback on failure, and generate auditable receipts showing what changed, what it cost, and whether the work passed.24385 npm394Apache 2.0