review-gated · git-native · local-first · MIT

The memory your agent has to earn.

$pipx install vouch-kb Get started → Star on GitHub

Agents propose claims with cited, content-hashed sources. You approve them. Approved knowledge compiles into a wiki that lives in your repo — YAML and markdown, diffs and blame, an append-only audit log. Every write passes review.

works with your agent · one command Claude Code Cursor Codex Windsurf Zed Cline OpenClaw
vouch review — demo knowledge base you are the reviewer

review queue · 6 pending

your turn — stamp it

knowledge graph · typed, human-approved edges

audit log · append-only · committed

    100% on your machine Every write human-reviewed Every claim cites a hashed source MIT, open source

    the pipeline

    How a fact becomes knowledge.

    Five stages, one invariant: nothing lands without review.

    01 propose the agent files a claim with a cited, content-hashed source
    02 review it waits in the queue — PENDING, visible, diffable
    03 approve a human stamps it; the decision is one commit, audited
    04 compile approved claims compile into cited wiki pages
    05 recall every new session starts knowing what you approved

    stage 01 propose

    Agents propose. Nothing lands.

    Every agent write becomes a pending proposal — a plain YAML file in .vouch/, not a row in an opaque database.

    A claim must cite a source, and sources are content-hashed at registration. A claim without evidence isn't low-confidence — it's a validation error.

    MCP · JSONL · CLI — three surfaces, one gate.

    .vouch/claims/deploy-tagged-commit.yamlproposed 12s ago
    id: claim/deploy-tagged-commit
    text: production deploys run `make release` from a tagged commit
    status: PENDING   # ← nothing lands without review
    sources:
      - id: source/runbook-md
        sha256: 9f31c4a8…e2   # content-hashed evidence
    proposed_by: agent:claude-code
    session: f555c022
    approve claim/emission-split-merged-oss
    "matches the validator source, cited line range checks out" — alice-example
    reject claim/skip-migration-tests
    "contradicts RUNBOOK.md §4 — hotfixes still run migrations" — alice-example
    supersede claim/tokens-rotate-30d → claim/tokens-rotate-90d
    "policy changed in SECURITY.md rev c58a…, old claim retained with provenance" — bob-example

    stage 02–03 review & approve

    One gate. Every surface.

    MCP tools, the JSONL server, and the CLI all call the same proposals.approve(). There is no side door — and the approver must differ from the proposer.

    Every decision appends to a committed, append-only audit log. Knowledge review works like code review: batch it, diff it, blame it.

    vouch review · web console · one decision = one commit

    stage 04 compile

    Pages are the product.

    vouch compile drafts wiki pages from approved claims — and machine-verifies every citation before a draft even enters review. A dangling [claim: …] or broken [[wikilink]] drops the draft, not your trust.

    The result is a cited, browsable wiki of what your team actually decided — compiled by the LLM, approved by you, compounding in git.

    the llm compiles · the human approves · the wiki compounds

    .vouch/pages/deployment.mdcompiled from 4 claims

    Deployment

    status: approved · last compiled 2026-07-07 · cites 4 claims, 0 dangling

    Production deploys run make release from a tagged commit claim: deploy-tagged-commit. The staging database resets nightly at 02:00 UTC claim: staging-db-reset, so long-running verification jobs should target [[ephemeral-environments]] instead.

    Rollbacks re-deploy the previous tag — never a revert commit claim: rollback-by-tag. API tokens rotate every 90 days claim: tokens-rotate-90d.

    ✓ machine-verified: 4 citations resolved, 0 dangling links

    claude — session starthook: SessionStart
    $ claude
    [SessionStart] vouch recall
    <vouch-approved-knowledge>
    [claim/deploy-tagged-commit] production deploys run `make release`…
    [claim/staging-db-reset] staging db resets nightly at 02:00 UTC
    [claim/use-pnpm] use pnpm, not npm — lockfile is pnpm-lock.yaml
    … 12 claims · 3 pages
    </vouch-approved-knowledge>
    
    → the session starts knowing what your team approved.

    stage 05 recall

    Sessions start knowing.

    A session-start hook injects the approved digest; kb.context serves task-scoped, cited context on demand. The agent quotes decisions with claim ids, not vibes.

    When knowledge changes, it changes with provenance: supersede, contradict, archive — never silent edits.

    recall · context packs · salience · provenance: why / trace / impact

    the graph

    Your knowledge, as a graph you can audit.

    Not co-occurrence guesses — typed edges between claims, sources, entities and pages, every one of them reviewed. Hover to trace connections.

    demo data — hover a node

    the record

    Every decision, newest first.

    The audit log is append-only and committed. Propose, approve, reject, supersede, compile — each event has an actor, a reason, and a diff behind it.

    audit.log.jsonl — demo streamlive

      measured, not claimed

      Every number comes with its reproduction.

      A/B on the same bug-fix task, with and without vouch, measured end-to-end.

      measured wall-clock, same bug-fix task −0% 111.9 s → 92.9 s reproduce ↗
      measured agent turns to finish −0% 16.5 → 11.3 turns reproduce ↗
      measured tokens & cost −0% $0.402 → $0.330 reproduce ↗

      The tutorial walks through the exact setup — run it on your own repo before believing us.

      why a gate

      Memory tools remember everything.
      vouch remembers what you approved.

      unreviewed memory accumulates whatever the agent felt like writing every write passes a human gate — the KB stays something you'd sign
      co-occurrence graphs guess at how facts relate edges are typed and human-approved: cites, supersedes, derived-from
      memory lives in a per-user database on one machine knowledge is YAML + markdown in your repo — branch it, PR it, blame it

      powered by gittensor

      Built in the open, mined on Bittensor.

      Gittensor (Bittensor subnet 74) pays miners in TAO for merged pull requests into whitelisted open-source repos. vouch lives on both sides of that loop.

      whitelisted master repository

      vouchdev/vouch is part of the Gittensor community

      Contributions to vouch are scored by validators and rewarded in TAO. Land a merged PR here and it counts — code quality, emission share, language factors and all.

      the mining case study

      Decision-memory for miners

      Mining well is a research loop: point a coding agent at a rotating set of target repos and keep landing mergeable PRs. Every repo is a cold start — architecture, build, the maintainer's merge bar, which issues already got rejected.

      With vouch's hooks installed, each session's findings are captured, you approve the ones worth keeping, and the next session recalls them. The investigation happens once, then compounds.

      faq

      Straight answers.

      Doesn't a review gate slow everything down?

      The gate is per-write; the reviewing is when you choose. Batch a day's proposals in minutes with vouch review or the web console, or approve a whole session at once with crystallize. What it prevents — silently wrong "knowledge" steering every future session — costs far more than the minutes it takes.

      Where does my data live?

      In .vouch/ inside your repo: YAML claims, markdown pages, a JSONL audit log. The search index is a derived, disposable SQLite file. No cloud, no account, no telemetry — this site doesn't even run analytics.

      Can my team use it?

      That's the point of being git-native. Knowledge changes arrive as diffs, get reviewed like code, and merge with authorship. Every approval is a commit by the human who made the call.

      What stops an agent approving its own writes?

      The approver must differ from the proposer, decisions are audit-logged with actors, and in team deployments the decision methods simply aren't in the agent's RPC scope — a stolen agent token can propose, but structurally cannot approve.

      How is this different from agent memory tools?

      Memory tools optimize recalling everything an agent did. vouch optimizes trusting what it knows: fewer facts, every one cited to a content-hashed source, every one reviewed by a human. It's the difference between a scratchpad and a knowledge base.

      What happens when knowledge goes stale?

      Claims are superseded, contradicted, or archived — with provenance, never silent edits. vouch source verify re-hashes cited evidence and flags drift; kb.why and kb.impact trace what a change touches.

      give your agent a memory it earns

      Start reviewing what your agent knows.

      $pipx install vouch-kb Get started →