Repository navigation
Audit
tracekit audit is a read-only command that replays the tool calls found in local coding-agent transcripts through the policy engine and reports what the current policy would have held or denied. Each call is decided as the signer decides it: an MCP tool (mcp__<server>__<tool>) also as mcp:<server>/<tool> and under its bare name, and a PowerShell command also as a shell line.
It does not start a signer, does not write anything, and does not make network calls. It is a replay against today's policy, not a signed record. Tracekit never recorded these calls, so nothing here is evidence.
It is experimental (support): it works and is tested, but may change.
tracekit audit [ROOT] [--policy PATH] [--since 7d] [--show] [--all] [--json | --share]
$ tracekit audit --since 7d --show
a replay against today's policy, not a signed record
policy: …/tracekit/policy2/packs/dev.yaml (sha256:…)
1204 tool calls in 31 sessions since 7d: Tracekit would have denied 2 and held 9 for a person; it would have flagged 57 and allowed 1136.
…
by rule:
TK-F003: 41 (destructive)
TK-A002: 3 (deleting a remote Git ref)
TK-D004: 1 (recursive delete of root or home)
…
denied and held calls (--all for every call):
4f1c… 2026-10-28T14:02:11+00:00 Bash deny rules=TK-D004,TK-F003 text='Bash rm -rf ~/'
(The numbers above are an example, not a measurement.)
-
ROOTdefaults to$CLAUDE_CONFIG_DIR/projectswhenCLAUDE_CONFIG_DIRis set (Claude Code keeps its config there then), else~/.claude/projects; a folder that doesn't exist is an error (exit 2). -
--policyselects a policy file (default: the dev pack,tracekit/policy2/packs/dev.yaml). -
--sincelimits the replay (e.g.7d,24h,30m, or an ISO-8601 time, UTC unless it gives an offset); a call without a timestamp is kept. A--sincethat isn't in the past, or that no date can name, exits 2. -
--showincludes each call as an approver sees it: its secrets redacted as the signer redacts them (.envcontent too), cut to 72 characters. -
--alllists every call; without it, only the calls Tracekit would have denied or held for a person. -
--jsonemits a machine-readable report, with every call. -
--shareprints the counts alone, to post as a field report: the window's length, the number of sessions, the calls by decision, and each rule by the decision of the calls it matched, markedalso matched, not whywhen the rule's section isn't that decision andnot placedfor an engine check. A rule id that isn't Tracekit's own is counted ascustom rule. No session, path, time, call or rule description.
The report always begins with the disclaimer: "a replay against today's policy, not a signed record".
Every .jsonl file under ROOT, at any depth: each Claude Code session's transcript, and its subagents' files
(<session>/subagents/*.jsonl, a workflow's agents' in <session>/subagents/workflows/<workflow>/), which count
under that session. Each line is a JSON object; assistant messages may contain tool_use blocks. A tool use whose id
was read already (a resumed or forked session's file repeats the calls it copied) counts once. The reader reuses
tracekit.hook.transcript_entries and the policy engine from tracekit.policy2.engine.
It follows no symlink. Files and folders it can't read are counted and skipped, and so is a line that isn't JSON.
- One line first: how many calls in how many sessions, and how many Tracekit would have denied, held, flagged and allowed.
- Counts per verdict (
deny,ask/ held,flag,allow). A call the policy engine fails on counts as a deny (TK-ENGINE-ERROR), as the signer would decide it. - Counts per rule id, most first, each with what the rule is (its
reasonorlabel, or the viewer's words for the engine's own rules). - The session and timestamp of each denied or held call (every call with
--all), and its redacted text with--show.
It sees only the tool calls the transcript holds, decided by today's policy. A transcript the agent could edit is not evidence. See limits.
Generated from docs/ at v1.6.0. Edit the docs in the repository, not here.
Get started
- Quickstart: the v2 signer
- Quickstarts
- Quickstart: Claude Agent SDK
- Quickstart: Claude Code
- 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
- Hermes Agent
- 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
- Intent grants: approve costly payments once, with limits
- PCM 0.1: proof-carrying messages
- Findings
- tracekit audit
- 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
- A2A gateway
- Latent transfers and C2C
- MCP gateway
- LLM gateway
- Egress observation
- Witnesses
- Log monitor
- Record-key issuer
- Signer observability
- Viewer
- Event Horizon
- Viewer 1.4
- tracekit why: causal investigation and replay
- Migrating
- Platforms
- Deploy the public witness
Verify the evidence
- Tracekit for auditors
- Reading a v2 verify report
- Evidence format v2
- Auditor guide
- Sample evidence bundle
- Signing
- tracekit graph: what agents did across runs
- 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
- What the public witness sees
- 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
Use cases and demos
- Use cases
- Demos
- Agent approvers within bounds
- A production bucket
- Completeness and tamper evidence
- Detection and containment
- Network coverage: an egress observer
- Guardrails: allow, deny, or ask a person
- MCP tools, gated and recorded
- A production volume
- Prompt injection held by provenance
- Why: which input caused the action
Help