Repository navigation
Review Packet
For an outside reviewer. The goal is to find where Tracekit's claims are wrong or overstated, not to approve it. Issue #1 tracks the review.
-
README.md: the claims as a user reads them, and the "Limits" section. -
docs/threat-model-laptop.md: attackers A1-A4 and the bundle exporter, trust roots, invariants, the claim-to-invariant table. -
docs/signing.md,docs/witnesses.md,docs/privacy.md,docs/remote-ingest.md. - Code:
tracekit/daemon.py(the signer),tracekit/ledger.py,tracekit/bundle.py(the verifier),tracekit/policy.py,tracekit/hook.py,tracekit/ingest.py,tracekit/rekor.py. -
tests/test_v02.py,tests/test_hardening.py: what is claimed to be tested.
| # | Claim | Where to look |
|---|---|---|
| 1 | In system mode a user who is not the signer's user cannot write, rewrite or delete ledger records |
ledger.py ownership, install.py init_system, threat model A1/A3 |
| 2 | Records are hash-chained and signed, so edits, deletions, reordering and forgery are detected |
core.event_hash, ledger.make_record, bundle._verify
|
| 3 | An off-host witness detects truncation and a full re-sign by a key holder |
witness.py, bundle._verify step 4, eval E1 |
| 4 | Tool calls matching a deny rule never execute (hook mode) |
hook.py, policy.py, fail modes |
| 5 | Held calls cannot be approved from inside the agent's own session | daemon._self_approval_reason |
| 6 | The verifier reports what it could not check (unanchored, coverage gaps) instead of passing |
bundle.Report, coverage.py
|
| 7 | The canonical JSON in Python and in the replay page agree |
core.canon, replay.py, ui/terminal.html
|
| 8 | A remote SDK client cannot forge hook/proxy/transcript evidence or write into another run |
ingest.sanitize, daemon source rules |
| 9 | Redaction keeps secrets out of recorded content under the default settings |
privacy.py, docs/privacy.md
|
- What can an attacker at each of A1-A3 do that the document says they cannot?
- Which claim fails if the signer's user and the agent's user share a group, a container or a sudo rule?
- Is any verdict wording stronger than what was checked?
- What in the replay page or bundle format could mislead a non-expert reading it?
- Are the policy rules worth keeping as a default, given the evasions listed in
docs/evaluation.md?
Known limits, the README's "The promise, and its limits" and the threat model's "Open problems": faked command output, actions inside subprocesses, activity after the last hook, host compromise (A4), unsigned manifest, witness independence, host clocks. macOS system mode and the Rekor witness are experimental and not validated on real services.
Privately, per SECURITY.md. A short written finding with the claim number, the scenario and a reproduction
(a bundle or a command sequence) is ideal.
Generated from docs/ at v1.4.1. Edit the docs in the repository, not here.
Get started
- Quickstart: the v2 signer
- Quickstarts
- Quickstart: Claude Agent SDK
- Quickstart: a custom agent
- Quickstart: LangChain and LangGraph
- Quickstart: MCP client
- Quickstart: OpenAI Agents SDK
- Coding agents other than Claude Code
- tracekit doctor
- Walkthrough: Tracekit end to end
How it works
- How Tracekit works
- Overview
- The life of a tool call
- The evidence format
- Verification and assurance
- Witnesses and monitoring
- Policy
- Approvals
- Detection and containment
- Capture and completeness
- Custody
- Provenance and tracekit why
- Deployment and isolation
- Storage, durability and performance
- Integrations
- Security model
- Architecture
- tracekit why: architecture
Integrations
- Integrations
- Adapters
- OpenTelemetry
- Remote clients
- Kubernetes agent-sandbox
- agentgateway
- agentsh and Tracekit
- Browser Use
- Claude Agent SDK
- Claude Code's sandbox
- Codex's sandbox
- CrewAI
- Docker MCP Gateway
- E2B
- Falco
- Gemini CLI's sandbox
- Google ADK
- Haystack
- LangChain v1
- LiteLLM
- LlamaIndex
- MCP client
- microsandbox
- Microsoft Agent Framework
- OpenAI Agents SDK
- NVIDIA OpenShell
- Pydantic AI
- sandbox-runtime's proxy on its own
- Strands Agents
- Tetragon
- Vercel AI SDK
- Wassette
Policy and approvals
- Policy reference
- Approvals
- Findings
- Reading the model's reasoning
- Incidents and containment
- Webhooks
Deploy and operate
- Deploying the signer
- The signer as a container
- The signer on Kubernetes
- The compose stack
- Identity
- Tool executor
- MCP gateway
- LLM gateway
- Egress observation
- Witnesses
- Log monitor
- Record-key issuer
- Signer observability
- Viewer
- tracekit why: causal investigation and replay
- Migrating
- Platforms
Verify the evidence
- Reading a v2 verify report
- Evidence format v2
- Auditor guide
- Sample evidence bundle
- Signing
- What Tracekit guarantees
Security and privacy
- Threat model: the v2 signer
- Threat model: the v1 laptop signer
- HTTP security checklist
- Threat-model review packet
- Privacy
- Known limits and trade-offs
- What's stable
Compliance
- Compliance mapping
- EU AI Act
- ISO/IEC 42001
- NIST AI RMF and the Generative AI Profile
- OWASP Top 10 lists for LLM and agentic applications
Evaluation
Demos
- Demos
- Agent approvers within bounds
- Completeness and tamper evidence
- Detection and containment
- Network coverage: an egress observer
- Guardrails: allow, deny, or ask a person
- MCP tools, gated and recorded
- Prompt injection held by provenance
- Why: which input caused the action
Help