Runvouch

com.runvouchPublished by runvouch.comOfficial publisherv0.3.4Updated Nov 2, 2026

Watchdog for unattended AI agents: alerts, evidence checks and a verifiable proof per run.

VerifiedStreamable HTTPWeb executableDeveloper ToolsSecurity & MonitoringAI & ML

Overview

AI-generated overview

RunVouch is a watchdog for unattended AI agents: an assistant can check agent health, read and acknowledge alerts, and report or verify runs.

What you can do
  • Check health of all watched agents, including state, last run, 24h cost and open alerts
  • List open alerts such as missed, failed, no-evidence, budget, retry-storm, drift and stalled, and acknowledge one by id
  • Review recent runs of a single agent
  • Report a run starting and ending, with status and evidence entries, and receive a run id
  • Fetch a tamper-evident proof for a finished run, with hashed record, Merkle path, day root, chain hash and timestamp status
When to use it
Useful when scheduled or headless agents run without supervision and you want an assistant to surface failures, missing evidence, budget overruns or loops, and to record runs with verifiable proof.
Requirements
Remote endpoint at api.runvouch.com over streamable HTTP. Requires a RunVouch API key sent in the X-API-Key header; the key is free to create at runvouch.com. No local package is needed for the hosted endpoint.
Before you install
The API key is a credential and should be kept private. Acknowledging an alert changes state on the account. Run reporting sends run status and evidence details, including URLs, to RunVouch. Paid plans exist beyond the free tier of three agents.

Installation

In SourceWeft

  1. Open Runvouch in the dashboard and add it to a workspace.
  2. Connect X-API-Key credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.runvouch%2Frunvouch/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "runvouch": {
      "type": "http",
      "url": "https://api.runvouch.com/mcp",
      "headers": {
        "X-API-Key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

[RunVouch]

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 · Verify a run · Field notes · MCP Registry · Product Hunt

[PyPI] [npm] [GitHub Action] [MCP Registry] [Smithery] [License: MIT]

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 --evidencerv 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 1

Check 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

Detectors

AlertMeaning
MISSEDexpected run never started (dead scheduler, expired auth, crash before first line)
FAILEDrun ended non-zero / status=fail
NO_EVIDENCErun said ok but required proof (file written, URL 200, assertion) is missing, green ≠ done
RETRY_STORMsame tool + identical input ≥ N times in one run (the invisible loop that costs $437)
BUDGET_RUN / BUDGET_DAYcost or tokens over the cap you set. On Solo and Team the agent is paused and its next run is refused until rv agent NAME --resume
DRIFTduration / output size off its 7-run baseline (robust MAD), silently doing something else
STALLEDstarted, 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 proofintegrations/claude-code-plugin Claude Code plugin: SessionStart/PostToolUse/Stop hooks → RunVouchintegrations/mcp                MCP server (stdio): runvouch_status/alerts/ack/runs/run_start/run_endsite/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 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.shcurl -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:8787rv agent nightly-report --cadence 24h --cap-run-cost 2 --evidencerv 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, $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.

Source: README.md at commit b1d9dbc

Tools

7

runvouch_status

Health of all watched agents: state (ok/alert/failed/unproven/running/waiting), last run, 24h cost, open alerts.

Takes no parameters.

runvouch_alerts

Open (un-acknowledged) alerts: MISSED, FAILED, NO_EVIDENCE, BUDGET_RUN, BUDGET_DAY, RETRY_STORM, DRIFT, STALLED.

Takes no parameters.

runvouch_ack

Acknowledge an alert by id.

Parametersalert_idrequired

runvouch_runs

Recent runs of one agent.

Parametersagentrequiredlimit

runvouch_run_start

Report that a run of `agent` started. Returns run_id.

Parametersagentrequiredsource

runvouch_run_end

Report that a run ended, with status and evidence dict (name -> bool or {type:'url',url}). Green run without evidence alerts.

Parameterscostrun_idrequiredstatustokensevidence

runvouch_run_proof

Tamper-evident proof of a finished run: hashed record, Merkle path, day root, chain hash and OpenTimestamps status. Verify offline with templates/verify_proof.py.

Parametersrun_idrequired

Version history

1
  1. v0.3.4LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts