RootSign SDK · v0.3.0
Tamper-evident provenance logging for AI agents.
Open-source · Apache 2.0 · Python 3.11+
Install
Base install: pip install rootsign. Framework extras pull in the matching connector.
Quickstart
Wrap your existing tools. Provenance is captured automatically.
agent.pypython
from rootsign import wrap_tools, session
from langchain_core.tools import tool
@tool
def send_invoice(customer_id: str, amount: float) -> str:
"""Send an invoice."""
return "sent"
async with session(agent_id=agent.agent_id, client=client) as ctx:
tools = wrap_tools([send_invoice], ctx=ctx)
# your graph runs here — every tool call is capturedVerify the chain
One command proves the record chain is intact — or flags tampering.
terminalbash
$ rootsign verify <session_id>
VALID ✓ — 47 records, chain intactHand it to someone who doesn't read JSONL
verify answers a developer's question. export answers everyone else's — one command turns a session into a self-contained evidence bundle: JSON for machines, an HTML report for people, and a SHA-256 for every file in it.
terminalbash
$ rootsign export --local ~/.rootsign/sessions/<session_id>.jsonl
VALID — 3 records, chain intact
Bundle: ./evidence-<session_id>
manifest.json verification.json timeline.json redaction.json
report.md report.html
manifest.json SHA-256: a1d61338d0f793ea03ac472863fadea5660e1e94846913ce7613d8c117d67cc5
Record that hash outside the bundle — a ticket, an email, a chain-of-custody log.

The recipient runs rootsign export --check to re-hash every file. That proves the bundle is internally consistent — comparing the manifest hash against the value you recorded out of band is what proves it is the bundle you generated.
What's in v0.3.0
✓ Shipped- rootsign export: self-verifying evidence bundles with an HTML report (ADR-014)
- Cloud transport behind rootsign[cloud] — the chain is sealed client-side (ADR-013)
- Offline spool: an unreachable endpoint costs you nothing; rootsign-admin sync replays it
- Three verdicts — VALID / TAMPERED / INCOMPLETE — with exit codes 0/1/2
- Published wire spec: envelope, error registry, idempotency, batch semantics
- JSONL default backend: zero dependencies, no Docker or database (ADR-011)
- LangGraph 0.1.x and 0.2.x · CrewAI 0.28+, 0.40+, 1.x · MCP proxy (ADR-010)
- Human-in-the-loop checkpoints and PII redaction before hashing
- 847 tests · 14 ADRs · Apache 2.0