Initialise a KB
From the root of any project:This creates Commit it:
.vouch/ with config.yaml, an empty audit.log.jsonl,
the directory skeleton, and a .gitignore that excludes proposed/
and state.db.Register a source
Sources are what claims cite. They can be files, URLs, transcripts —
anything content-addressable.Re-running with the same file is a no-op — sources dedupe by content
hash.
Propose a claim
.vouch/proposed/prop-abc123.yaml. It is not
committed (gitignored).Approve it
.vouch/decided/prop-abc123.yaml (committed, for audit).By default, vouch requires human approval and
prevents self-approval (a proposer cannot approve their own proposal).
For local testing, you can add
approver_role: trusted-agent to
.vouch/config.yaml. Production deployments should keep the default
require_human_approval: true to preserve the review gate.Wire an agent
vouch serve is a stdio MCP server, so the agent’s native registration is all
you need:-e VOUCH_AGENT=claude-code to attribute the agent’s proposals to it
rather than your shell user. Confirm with claude mcp list (look for
vouch … ✓ Connected).Prefer a config file, or want the brain-first CLAUDE.md, slash commands, and
hooks too? Run vouch install-mcp claude-code — or drop this into .mcp.json
at the project root by hand:kb_search,
kb_propose_claim, etc.Read approved artifacts
Once you’ve approved claims and pages, read them with:All of these methods are also available over the MCP and JSONL servers
(
kb.read_claim, kb.read_page, etc.) for agent integration.Where next?
- Wire your specific host: adapters/
- Understand the object model: object model
- Read the spec if you’re writing an alternative server: SPEC.md