Recorded from the traffic
Agents call nothing themselves. The harness's own telemetry is a second witness, and a disagreement between the two is raised as an alert.
Open source · Apache-2.0
Innsegl records every agent run from its own model traffic, gives the run a short-lived cryptographic identity, and signs the commits it makes. Anyone can check who made a commit — against public transparency logs, without trusting your server or whoever runs it.
Innsegl is Norwegian, from Old Norse innsigli: the seal pressed on a document to prove who issued it.
Claude Code reaches the model through a small client. Nothing changes for the person or the agent.
Your core's gateway records the task, every tool call and its result, and which agent started which.
Each run gets its own identity. Its commits are signed with a short-lived certificate and logged in Rekor.
Three checks against git, Fulcio and Rekor. None of them asks your server anything.
Agents call nothing themselves. The harness's own telemetry is a second witness, and a disagreement between the two is raised as an alert.
SPIRE issues each session and subagent its own short-lived identity, and retires it when the run ends.
The commit's Agent-* trailers are the claim; the signature is the proof. If any step fails, there is no signature.
Events are hash-chained, sealed into segments, and each segment is anchored in Rekor. Corrections are new events.
If the core is down, the client sends the request on and keeps a signed journal that the core checks and records later.
Runs, repositories, alerts and machines behind passkey sign-in. Connecting or revoking a machine takes a passkey.
go install innsegl.dev/innsegl/cmd/innsegl@latest
innsegl verify <commit> -repo .
The exit status is the verdict, so it fits in a script:
0 | verified |
|---|---|
3 | failed — the commit does not hold |
4 | could not be checked — never reported as failed |
5 | the commit makes no attribution claim |
6 | unusable — no such commit, or a configuration that cannot verify |
The checks: the signing certificate chains to Fulcio; the commit's entry is included in Rekor; the identity in the trailer is the one in the certificate. The verifier has no flag to point it at a database.
git clone https://github.com/Raymalian/innsegl.git
cd innsegl && ./install.sh
It brings the stack up — SPIRE, Postgres, a self-hosted Sigstore and Innsegl — and prints the dashboard's address and a one-time setup link.
innsegl connect https://<core>:28095 \
--token <ie_…> \
--ca-fingerprint sha256:<hex>
The dashboard's Account page creates the token and shows this command with the fingerprint filled in.
innsegl status
Says what is up and what is down between the machine and its core, and exits non-zero naming whatever is down.
Recording works with Claude Code. Innsegl is pre-1.0 with no tagged
release yet, so @latest builds the default branch; the
module is a program, not a library.
innsegl.dev/innseglgo-import
tag that sends the toolchain to the repository.
See the tag.
spiffe://innsegl.dev