com.runvouch/runvouch
Watchdog for unattended AI agents: alerts, evidence checks and a verifiable proof per run.
Open source Repository Open in the app JSON README (API)
About
Watchdog for unattended AI agents: alerts, evidence checks and a verifiable proof per run.
Details
- Kind
- MCP servers
- Topic
- Cloud & DevOps
- Publisher
- com.runvouch
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 0.3.4
- Last push
- 2026-08-28T20:31:12Z
- Repository state
- ativo
- Language
- HTML
- License
- MIT
- Added
- 2026-08-29 03:01:20
- Updated
- 2026-08-29 03:01:20
- Origin id
com.runvouch/runvouch
README
<p align="center"><img src="https://runvouch.com/logo-400.png" width="96" alt="RunVouch"></p> <h1 align="center">RunVouch</h1> <p align="center"><b>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.</b><br>Claude Code Routines · headless <code>claude -p</code> · OpenClaw · n8n · cron</p> <p align="center"><a href="https://runvouch.com">Website</a> · <a href="https://runvouch.com/docs/">Docs</a> · <a href="https://runvouch.com/blog/">Field notes</a> · <a href="https://registry.modelcontextprotocol.io/v0.1/servers?search=runvouch">MCP Registry</a> · <a href="https://www.producthunt.com/products/runvouch">Product Hunt</a></p> <p align="center"><a href="https://pypi.org/project/runvouch/"><img src="https://img.shields.io/pypi/v/runvouch?label=pypi" alt="PyPI"></a> <a href="https://www.npmjs.com/package/runvouch"><img src="https://img.shields.io/npm/v/runvouch?label=npm" alt="npm"></a> <a href="https://github.com/runvouch/vouch-action"><img src="https://img.shields.io/badge/GitHub%20Action-vouch--action%40v1-2ea44f" alt="GitHub Action"></a> <a href="https://registry.modelcontextprotocol.io/?search=runvouch"><img src="https://img.shields.io/badge/MCP%20Registry-com.runvouch%2Frunvouch-4c8dff" alt="MCP Registry"></a> <a href="https://smithery.ai/servers/runvouch/runvouch"><img src="https://img.shields.io/badge/Smithery-runvouch%2Frunvouch-orange" alt="Smithery"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="License: MIT"></a></p> 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](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](CONTRIBUTING.md). ## Hosted vs self-host Hosted at [runvouch.com](https://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](https://runvouch.com/vs/healthchecks) · [vs Cronitor](https://runvouch.com/vs/cronitor) · [vs Langfuse](https://runvouch.com/vs/langfuse) ## License MIT.