streamable-httpMITupdated 11d ago
RunVouch The watchdog for unattended AI agents: proof they did the job, and an alert the moment they don't (or start spending), with a tamper-evident proof per run. Claude Code Routines · headless claude -p · OpenClaw · n8n · cron Website · Docs · Field notes · MCP Registry · Product Hunt
What can you do with runvouch?
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"
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 1
Mechanism and limits: https://runvouch.com/docs/proof · who needs it: https://runvouch.com/verifiable-agent-runs
Detectors
| Alert | Meaning |
|---|---|
MISSED |
expected run never started (dead scheduler, expired auth, crash before first line) |
FAILED |
run ended non-zero / status=fail |
NO_EVIDENCE |
run said ok but required proof (file written, URL 200, assertion) is missing, green ≠ done |
RETRY_STORM |
same tool + identical input ≥ N times in one run (the invisible loop that costs $437) |
BUDGET_RUN / BUDGET_DAY |
cost or tokens over the cap you set |
DRIFT |
duration / output size off its 7-run baseline (robust MAD), silently doing something else |
STALLED |
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 `aw`, stdlib-only client: rv agent / rv run -- CMD / rv status / rv alerts
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/index.html landing page
tests/ 7 detector tests (pytest)
docs/SELF_HOSTING.md run it yourself: Docker or venv, what differs from hosted
Self-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_key
Use
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 alerts
Claude 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 tests
See CONTRIBUTING.md.
Hosted vs self-host
Hosted at runvouch.com: free for 3 agents, $9 Solo, $29 Team, alerts, dashboard, backups, EU hosting. Self-host: this repo, MIT. Same code.
Compare
vs Healthchecks.io · vs Cronitor · vs Langfuse
License
MIT.
Install
Add runvouch to your client. Pick the one you use.
claude mcp add --transport http runvouch https://api.runvouch.com/mcpcodex mcp add runvouch --url https://api.runvouch.com/mcp{
"mcpServers": {
"runvouch": {
"url": "https://api.runvouch.com/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"runvouch": {
"type": "http",
"url": "https://api.runvouch.com/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"runvouch": {
"url": "https://api.runvouch.com/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"runvouch": {
"serverUrl": "https://api.runvouch.com/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance25/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 3 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.3.4Latest | Aug 26, 2026 |
| 0.3.3 | Aug 26, 2026 |
| 0.3.2 | Aug 25, 2026 |
| 0.3.1 | Aug 25, 2026 |
| 0.3.0 | Aug 25, 2026 |