Intent Attribution · Sidecar SDK

Know why your AI coding agent made every decision.

Keel traces intent through autonomous coding sessions — from session prompt to every modified file. Platform and agent-infra engineers get the provenance primitive that's been missing.

See how it works →

Autonomous agents modify production code at high velocity.
When something goes wrong, no one can answer why.

Hours spent reverse-engineering agent decisions after a bad deploy
No link between session intent and the code that shipped
Undebuggable security regressions, wrong-file edits, hallucinated APIs

Span trees record what was executed. The intent-to-code link is missing entirely. When a Cursor or Claude Code session produces a bad outcome, engineers have no provenance — only a diff and a confused retrospective. The agent moved fast, the context is gone, and the root cause is somewhere between the session prompt and 40 modified files.

Capture intent. Build a Merkle-DAG. Trace every decision.

01

Session prompt as root of trust

Keel instruments the agent runtime and captures the session prompt — the authoritative intent at the start of the session. This is your cryptographic root.

02

Import referenced content as immutable nodes

PRDs, Slack threads, design docs, Linear tickets — anything the agent reads during the session is imported as content-addressed nodes into the intent graph.

03

Cryptographic Merkle-DAG

Every action — file reads, edits, deletions — is linked back to its originating intent node. SHA-256 content hashing ensures the graph is tamper-evident and auditable.

keel Intent Attribution — Session Trace
📜 Root: session prompt — "migrate auth to JWT"
📄 Imported: auth-design.md (PRD, v3, hash…a4f2)
✅ PASS Modified: src/middleware/auth.js — traced to spec §2.1
✅ PASS Modified: tests/auth.test.js — traced to spec §4.3
Intent graph integrity: 100% — ✅ all modified files attributed

Instrument. Capture. Query.

The Keel sidecar SDK wraps your agent runtime in a few lines of code. No runtime changes required. It captures the session prompt, imports referenced documents, and exports a verifiable Merkle-DAG that you can query from your observability stack.

ts keel.config.ts
Instrument and export
import { Keel } from '@keel/sdk'
const keel = new Keel()
 
Capture session intent
keel.setRootPrompt(prompt)
keel.setMetadata({ model, runtime })
 
Import referenced content
keel.importDocument(prdUrl, content)
keel.importDocument(slackUrl, thread)
 
Export on session end
const graph = await keel.export()
// graph.root = SHA-256 of session prompt
// graph.nodes[] = all content-addressed nodes
 
Query the graph
keel.traceFile(filePath)
// returns: [{ node, source, confidence }]
keel v0.1 — TypeScript, Node.js 18+

What you get

🏷️ Content-addressed nodes — SHA-256, immutable
🔍 Trace any file back to its originating intent
🛡 Client-side SDK — no server-side deps for core export
📊 Cross-session index for team-level queries

Join the design partner waitlist to get early access to the SDK and docs.

Built for platform and agent-infra engineers.

You run agent tooling Cursor · Devin · Claude Code · custom agents

You ship internal tooling that uses autonomous coding agents. You need to know what they did and why.

You care about production safety Security · Compliance · Audit trails

Agents touching production code need a provenance layer. What changed, what referenced it, who approved it.

You're debugging agent failures Retros · Incidents · On-call

After a bad deploy, you spend hours reconstructing what the agent was asked to do. Keel makes that instant.

Launching Q3 2026 — join the design partner waitlist for early access and shaping influence.

Shape the product before we ship.

Design partner access for platform and agent-infra engineers. We're building the SDK alongside a small group of teams who'll use it in production.