Metadata-Version: 2.4
Name: swarrm
Version: 0.1.2
Summary: Swarrm — signed receipts + transparency log + offline verification for AI agent actions
Author-email: Maximilian Carl Friede <proof@swarrm.ai>
License: Proprietary
Project-URL: Homepage, https://swarrm.ai
Project-URL: Verify, https://swarrm.ai/verify.html
Project-URL: Source, https://github.com/capxholding/swarrm-core
Keywords: ai-agents,audit,evidence,transparency-log,tamper-evident,verification
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: cryptography>=42
Requires-Dist: uvicorn>=0.29
Requires-Dist: rfc8785>=0.1
Requires-Dist: httpx>=0.27
Requires-Dist: fastapi>=0.110
Requires-Dist: web3<8,>=7.16
Requires-Dist: asn1crypto>=1.5
Requires-Dist: jinja2>=3.1
Requires-Dist: python-multipart>=0.0.9
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: anyio>=4; extra == "dev"
Requires-Dist: ruff<0.16,>=0.15; extra == "dev"
Requires-Dist: detect-secrets>=1.5; extra == "dev"

# Swarrm — a flight recorder for AI agents

Every consequential agent action becomes a **signed receipt** in a
**tamper-evident log**, exportable as a self-contained **evidence bundle** that
anyone can verify **offline** — without trusting the operator, the vendor, or us.

Companies running agents that take real actions (call models, run tools, approve
refunds, move money) need proof of what happened when a dispute, audit, or
regulator shows up — proof their own editable logs cannot provide. Payloads
never leave the customer; we hold only hashes.

## Quickstart

```bash
pip install -e ".[dev]"                 # Python 3.11+ (3.14 recommended)
swarrm demo                             # agent traffic → receipts → bundle → VERIFIED
swarrm verify demo_out/bundle.json      # (the demo tampers one byte → NOT VERIFIED)
```

`swarrm` is the whole surface — one word, not a folder of services:
`up` (the dev stack), `demo`, `verify BUNDLE`, `wrap -- CMD` (MCP capture),
`incident`, `status`, and `doctor` (effective config + *is it even recording?*).
Config is one knob: `EVD_PROFILE=dev|trial|edge` sets every defaultable variable,
and `swarrm doctor` prints what's effective and what's missing. (`evd` stays as a
back-compat alias; `python -m pytest` runs the full suite.)

Verify any bundle offline, any time: `swarrm verify <bundle.json>` — or, with
**no account**, drop it into the in-browser verifier (`verify-rs/web`, served at
`/verify`), which checks it entirely client-side, nothing leaving the page. Put
the "verify it yourself" trust badge (`/verify/badge`) on your own site.

## Orientation

`core/` cryptographic log (RFC 6962), receipts (DSSE/Ed25519), checkpoints ·
`proxy/` `recorder/` `mcpwrap/` `sdk/` `plane/otel.py` capture surfaces ·
`anchor/` L2 anchoring + RFC 3161 timestamps · `verify/` `verify-rs/` offline
verifiers · `plane/` `console/` `report/` `detect/` `packs/` control plane,
console, evidence reports, detection, compliance packs · `SPEC/` normative
wire formats.

## Docs

Start with **`docs/A_BUILD.md`** — the execution runbook and single source of
truth for what is built and what is next; all plans (website, hardening backlog,
launch materials) are folded into its appendix. Then `docs/THREAT_MODEL.md` and
the per-feature notes. The four design laws are
non-negotiable: **fail-open**, **payloads never persist**, **claims ≤ mechanism**,
**boring crypto only**. The brand is Swarrm; the wire-format namespace `evd/*`
is frozen forever — never rename signed or anchored identifiers.
