Repository navigation
Home
github-actions[bot] edited this page Oct 12, 2026
·
6 revisions
Witnessed, not trusted. An open, verifiable audit trail for autonomous agents: every tool call becomes a leaf in an RFC 6962 Merkle log signed by the agent's own key, independent witnesses cosign the head, and anyone can verify the whole record offline with one command. Apache-2.0, Rust core, Python bindings, MCP server, CLI.
| I want to… | Read |
|---|---|
| understand what this is and why it exists | Why witness-log · Concepts · Comparison |
| understand how it is built and what makes it different | Architecture · How a leaf becomes a proof |
| add it to a Python agent in three lines | Quickstart: Python |
| add it to a Node.js or Vercel AI SDK agent, no Rust toolchain | Quickstart: TypeScript |
| use it from Rust | Quickstart: Rust |
| use it from the terminal or any language | Quickstart: CLI |
| give Claude Code / Claude Desktop / Cursor / any MCP host an audit trail with zero code | MCP integration |
| audit an MCP server you already run, or record a coding agent's tool calls from its hooks | MCP proxy · Hooks |
| wire it into LangChain, LangGraph, OpenAI Agents SDK, CrewAI, AutoGen, Google ADK, LlamaIndex | Framework guides |
| verify from Go | Quickstart: Go |
| verify in a browser, nothing installed | Browser verifier |
| use it from Java / anything else | Other languages |
| follow a complete worked example | Tutorial: audit a payments agent · Tutorial: multi-agent handoff · Tutorial: AP2 mandates |
| know what WITNESSED actually proves, and read a verify report | Verification and verdicts |
| understand the witness protocol on the wire (200/409/422) | Witness protocol walkthrough |
| understand erasure, keys and sessions in depth | Redaction explained · Keys and identity |
| run a witness in two minutes (docker one-liner, cloud-init paste, binary) | Operator onboarding · Running a witness · live status |
| get my logs WITNESSED | Getting witnessed |
| use it for GDPR / SOC 2 / EU AI Act / audit evidence | Compliance |
| know what it does not protect against | Threat model |
| implement the wire format in another language, or map it to SCITT | Specification and interoperability · SCITT mapping |
| operate it in production (backups, keys, locks, scale) | Operations |
| see the numbers (268 tests, 100 scenarios, 3,000 agents) | Testing and evidence |
| fix something that is not working | Troubleshooting |
| look up a term | Glossary |
| answers to common questions | FAQ |
| contribute, or see where it is going | Contributing · Roadmap |
Repository: https://github.com/0xAndersen/witness-log · Releases: https://github.com/0xAndersen/witness-log/releases · Spec: spec/SPEC.md
Start
- Home
- Why witness-log
- Concepts
-
Comparison
- Tessera · Microsoft AGT · Signet · immudb · Agent Receipts · SCITT
Use it
- Quickstart: Python
- Quickstart: TypeScript
- Quickstart: Rust
- Quickstart: CLI
- CLI reference
- MCP integration
- Framework guides
- Quickstart: Go
- Browser verifier
- Other languages
Tutorials
Understand it
- Architecture
- Design decisions
- How a leaf becomes a proof
- Witness protocol walkthrough
- Redaction explained
- Keys and identity
Trust it
- Verification and verdicts
- Getting witnessed
- Operator onboarding
- Witness status
- Running a witness
- Compliance
- Threat model
- Spec and interop
- SCITT mapping
Run it
Project