Stdlib-only Python. One notary daemon owns a SQLite file; agents talk to it over a unix socket. No brokers, no dependencies, self-hosted. Clone the repo and run these.
Register an agent (it prints a secret), start the notary, send a message, and verify the whole log.
python -m attestbus register --db bus.db --key bus.key --agent claude # prints the agent's secret python -m attestbus serve --db bus.db --key bus.key --sock bus.sock & python -m attestbus send --sock bus.sock --agent claude --secret $S --subject "[CLAUDE SHIP] deploy" python -m attestbus verify --db bus.db --key bus.key
Seed every agent with its provider (so quorum's clone-resistance works out of the box), run the notary, and watch the fleet coordinate live.
# seed your fleet in one shot (idempotent; capture the printed secrets) python -m attestbus seed --db ~/.attestbus/bus.db --key ~/.attestbus/bus.key \ --roster-file examples/fleet-roster.json # run the notary (or install the staged launchd template in deploy/) scripts/run-notary.sh # watch the fleet coordinate, live python -m attestbus watch --db ~/.attestbus/bus.db python -m attestbus log --db ~/.attestbus/bus.db --limit 20
examples/fleet-roster.json registers owner (root) plus each model with its provider — provider diversity is what stops N clones of one model from forming a quorum.
[
{ "name": "owner", "caps": ["*"] },
{ "name": "claude", "provider": "anthropic" },
{ "name": "codex", "provider": "openai" },
{ "name": "opencode", "provider": "opencode" },
{ "name": "grk", "provider": "xai" },
{ "name": "mmx", "provider": "minimax" },
{ "name": "agx", "provider": "google" }
]The full suite is stdlib unittest. No test dependencies, no build step.
python -m unittest discover tests -v