Swarrm
A flight recorder for AI agents. Capture what your AI did. Verify the record.
Swarrm turns supported AI-agent actions into signed receipts, links them into a checkpointed, tamper-evident history, and exports portable evidence bundles. When a decision is questioned, the record can be checked locally by the people you share it with—without a Swarrm account or a live Swarrm service.
Start in two minutes
pipx install swarrm==1.1.2 # Python 3.11+; or: pip install swarrm==1.1.2
swarrm demo # create a signed local evidence bundle
swarrm verify demo_out/bundle.json # VERDICT: VERIFIED
The demo also creates demo_out/bundle_tampered.json. Verify that copy to see a
one-byte change produce NOT VERIFIED.
Reproduce the launched live E2 path against the public Base Sepolia sample:
curl -fsSLO https://swarrm.ai/samples/sample_bundle.json
curl -fsSLO https://swarrm.ai/samples/sample_sigstore_tsa_trust.json
swarrm verify sample_bundle.json \
--trust sample_sigstore_tsa_trust.json \
--live --rpc https://sepolia.base.org
The five sample receipts should report E2. Use the downloaded trust file to reproduce this public sample. For production, import and pin TSA roots your organization has reviewed.
What you get
- Signed action receipts. Capture model calls, tool calls, approvals, payments, policy decisions, data access, guardrails, lifecycle changes, and namespaced custom events.
- Tamper-evident history. Receipts are included in an append-only Merkle log with signed checkpoints and witnessed key history.
- Portable evidence. Export self-contained bundles, readable Evidence Reports, incident packets, and selective disclosures.
- Local verification. Check a bundle with the Python CLI or the open Rust/WASM verifier in a browser.
- Visible evidence health. Known capture and persistence gaps surface through warnings, health state, journals, and report findings.
- Flexible deployment. Run locally, self-host the service, use the managed gateway, or sign and spool receipts inside your network with the edge recorder.
Capture from the path that fits your system
| Integration | Use it for |
|---|---|
Python SDK and @swarrm.evidenced |
Typed receipts around consequential application actions |
| OpenAI-compatible gateway | Routed model calls with a base_url change |
| LangChain, LangGraph, and OpenAI Agents hooks | Model and tool callbacks from supported framework events |
| MCP wrapper and OpenTelemetry intake | Tool traffic and existing telemetry pipelines |
| Edge recorder and Evidence Node | Customer-local capture plus source-side observation and reconciliation |
import swarrm
swarrm.init()
with swarrm.session("case-7781"):
swarrm.model_call(model="gpt-4o", prompt=prompt, output=answer)
swarrm.approval(decision="approved", approver="u_88", role="manager")
swarrm.payment(amount=4732.19, currency="USD", counterparty="acct_9f2")
Use swarrm doctor to confirm the active profile, effective configuration, last
receipt, and recording health.
How the record becomes verifiable
- Capture. An enabled integration observes a supported action and records selected content as cryptographic commitments plus bounded metadata.
- Sign. The recorder creates a canonical Ed25519/DSSE receipt for the captured action.
- Checkpoint. The receipt enters an RFC 6962 Merkle log with inclusion, consistency, checkpoint, and key-history evidence.
- Export and verify. A bounded set of receipts becomes a portable bundle. The verifier recomputes the checks from the supplied artifact and trust inputs.
Evidence levels, in plain language
The levels are cumulative, post-action properties—not a score.
| Level | What it establishes |
|---|---|
| E0 · Signed receipt | The receipt signature verifies under the named key. |
| E1 · Presented history | E0 plus Merkle inclusion, key-history replay, and signed-checkpoint consistency for the history presented. |
| E2 · Public commitment | E1 plus a live-confirmed covering Base or Base Sepolia checkpoint and an RFC 3161 timestamp verified to a TSA root supplied by the relying party. |
| E3 · Dual attestation | E2 plus matching evidence-issuer and active recorder signatures verified under recorder trust supplied by the relying party. |
The browser file-drop verifier establishes E1 entirely offline. The live report profile can establish E2; the current public example demonstrates it on Base Sepolia staging. E3 builds on the complete E2 basis when the dual-attestation evidence and recorder trust are supplied.
Machine-verifiable agent identity and authority
Counterparty Assurance lets two agents exchange a nonce-bound presentation for organization-rooted identity, current mandate, exact-action authority, and replay protection. Verification runs locally against trust roots and durable state controlled by the relying party. The structured result is an advisory input to the relying party's own execution policy.
Data and deployment boundary
The evidence log contains cryptographic commitments and bounded operational metadata. Payload bodies stay outside the evidence log. Local, self-hosted, and edge deployments keep payload handling in your environment; the managed gateway handles model traffic in transit. Plaintext metadata selected by an integration remains part of the record and should be classified accordingly.
Verification answers a precise question: whether the signed receipts and the presented authenticated history are intact under the supplied trust material. Capture coverage follows the integrations and evidence sources you enable.
Open verification
The package includes the Python verifier. A separate Apache-2.0 Rust/WASM implementation and the wire-format specifications are published in swarrm-verify. Both implementations run the same adversarial fixture families to detect semantic drift.
- Verify a bundle in your browser
- Install and integration guide
- Public verifier source and specifications
- Verifier artifact integrity
License
The swarrm package is proprietary—© 2026 Capx Holding, all rights reserved.
The published wire-format specifications and Rust/WASM verifier are Apache-2.0.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swarrm-1.1.2.tar.gz.
File metadata
- Download URL: swarrm-1.1.2.tar.gz
- Upload date:
- Size: 684.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26af3a74f22504d66096e2e875f627b980c94c82c37e2e0bfb45e0fbaa5e133e
|
|
| MD5 |
b651059239e1f19121743c7ebe544f15
|
|
| BLAKE2b-256 |
9614a3fd4a74d0848c578d252593638426df40e4e376f9662eba395f8abdd7d7
|
File details
Details for the file swarrm-1.1.2-py3-none-any.whl.
File metadata
- Download URL: swarrm-1.1.2-py3-none-any.whl
- Upload date:
- Size: 752.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8801b3152948de64db69f5fb705eaee5c1568ee39bf92129a7ae266eb0f783c9
|
|
| MD5 |
97bc789645c1842e96254bafe76c17dd
|
|
| BLAKE2b-256 |
fd0c517117050efbaf73b6834b39872dd5ec2bf0ae0aee3b71f0e412c7e05487
|