Local first, air-gapped identity for individuals, AI agents, organizations, with permissioning https://docs.auths.dev
  • Rust 88.2%
  • Python 6.1%
  • TypeScript 3%
  • Shell 1.6%
  • JavaScript 0.5%
  • Other 0.6%
Find a file
bordumb 06b396efb9
Merge pull request #90 from auths-dev/dev-publicRegistry
feat: add support for C2SP tlog-tiles for public registry
2026-03-13 22:31:56 +00:00
.auths feat: dogfood auths badge 2026-03-11 00:39:18 +00:00
.cargo ci: add cargo audit to CI with documented advisory ignores 2026-03-03 22:59:14 +00:00
.config feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00
.github/workflows fix: add clippy.toml sync guard and fix existing drift (fn-70.1) 2026-03-12 12:38:29 +00:00
crates fix: update clippy sync tests 2026-03-13 22:02:51 +00:00
deploy/vercel feat(docs): add mkdocstrings setup, Python SDK doc page skeletons, and nav 2026-03-09 06:09:47 +00:00
docs feat: add support for tlogs 2026-03-13 21:58:36 +00:00
examples feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00
overrides feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00
packages feat: add witness protocol types and WitnessClient trait in auths-transparency 2026-03-13 21:58:17 +00:00
schemas chore: regenerate schema, add linux specific allow 2026-03-12 12:49:55 +00:00
scripts refactor: make expires_in with seconds the single source of truth 2026-03-12 15:25:43 +00:00
tests/e2e refactor: make expires_in with seconds the single source of truth 2026-03-12 15:25:43 +00:00
.codecov.yml feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00
.gitignore feat: add auto folder creation for auths git allowed-signers 2026-03-09 20:26:01 +00:00
.pre-commit-config.yaml refactor: make expires_in with seconds the single source of truth 2026-03-12 15:25:43 +00:00
ARCHITECTURE.md docs: fix missing edges in ARCHITECTURE.md dependency graph 2026-03-04 17:35:25 +00:00
Cargo.lock feat: add namespace governance, identity-as-API-key, and hardening (fn-74, fn-75, fn-76) 2026-03-13 21:58:31 +00:00
Cargo.toml feat: add auths-transparency crate with C2SP tlog-tiles implementation 2026-03-13 03:48:03 +00:00
cbindgen.toml feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00
CHANGELOG.md fix: add @stable for ci rust toolchain 2026-03-06 05:19:33 +00:00
CLAUDE.md fix(auths-cli): audit and fix all production unwrap/expect calls 2026-03-09 16:13:31 +00:00
clippy.toml fix: add clippy disallowed_methods for new_unchecked and annotate safe sites (fn-68.4, fn-68.5) 2026-03-12 05:18:12 +00:00
CONTRIBUTING.md feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00
Cross.toml feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00
DCO feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00
deny.toml feat: wire audit sinks into CLI composition root 2026-03-10 02:48:15 +00:00
justfile refactor: extract MockStorage to shared test helpers (fn-2.1) 2026-03-02 03:19:39 +00:00
LICENSE license: update year 2026-03-01 17:03:38 +00:00
mkdocs.yml feat(xtask): auto-generate docs/errors/index.md and mkdocs.yml nav from error codes 2026-03-11 23:40:55 +00:00
README.md fix: add more precise link on badge 2026-03-11 01:02:25 +00:00
RELEASES.md feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00
rust-toolchain.toml fix: add targets = ["wasm32-unknown-unknown"] to rust-toolchain.toml. This ensures rustup installs the wasm target for the 1.93 toolchain automatically, both locally and in CI 2026-03-03 19:43:01 +00:00
SECURITY.md docs: document pairing protocol replay protections in SECURITY.md 2026-03-07 17:26:08 +00:00
TESTING.md feat: initialize public open-source repo from monorepo split 2026-03-01 14:21:45 +00:00

Auths

Verify Commits

Decentralized identity for individuals, AI agents, and their organizations.

One identity, multiple devices, Git-native storage.

Install

Homebrew:

brew install auths-dev/auths-cli/auths

Install from source:

cargo install --git https://github.com/auths-dev/auths.git auths_cli

This installs auths, auths-sign, and auths-verify.

Quick Start

1. Initialize your identity (30 seconds)

auths init

Follow the prompts. This creates your cryptographic identity and stores the key securely in your system keychain.

2. See what you created

auths status

Output:

Identity: did:keri:EBf...
Key Alias: controller
Devices: 1 linked

Ready to sign commits.

3. Sign your first commit

Configure Git to use Auths:

auths git setup

Now sign a commit:

git commit -S -m "My first signed commit"

Verify it:

auths verify-commit HEAD

Output:

Commit abc123 is valid
  Signed by: did:keri:EBf...
  Device: did:key:z6Mk...
  Status: VALID

That's it. Your commits are now cryptographically signed with your decentralized identity.


What can you do with Auths?

Link multiple devices to one identity

# On your laptop
auths device link --device-did did:key:z6Mk...

# Now both devices can sign as the same identity

Revoke a compromised device

auths device revoke --device-did did:key:z6Mk...

Verify any attestation

auths verify attestation.json

Sync allowed-signers for Git verification

auths signers sync

Agent & Workload Identity

Auths treats AI agents and CI/CD runners as first-class identity holders — not borrowers of human credentials.

Give an agent its own identity:

# Create a dedicated agent identity
auths init --profile agent

# Issue a scoped, time-limited attestation from a human to the agent
auths attestation issue \
  --subject did:key:z6MkAgent... \
  --signer-type Agent \
  --capabilities "sign:commit,deploy:staging" \
  --delegated-by did:keri:EHuman... \
  --expires-in 24h

The agent now holds a cryptographic attestation chain traceable back to the human who authorized it. Every action the agent takes is signed under its own key, scoped to only the capabilities it was granted, and verifiable by anyone — offline, without contacting a central authority.

How delegation works: A human creates a signed attestation granting specific capabilities to an agent. The agent can further delegate a subset of those capabilities to sub-agents. Verifiers walk the chain back to the human sponsor. Capabilities can only narrow at each hop, never widen. See the Delegation Guide for a full walkthrough.

Cloud integration via OIDC: The OIDC bridge verifies an agent's attestation chain and issues a standard JWT consumable by AWS STS, GCP Workload Identity, and Azure AD — no cloud provider changes required.

MCP compatibility: Auths attestations serve as the cryptographic identity layer behind MCP's OAuth-based authorization, providing verifiable delegation chains from human principals to AI agents.


How it works

Auths stores your identity and device attestations in a Git repository (~/.auths by default). Each device link is a cryptographically signed attestation stored as a Git ref.

  • Identity: A did:keri derived from your Ed25519 key
  • Devices: did:key identifiers linked via signed attestations
  • Keys: Stored in your OS keychain (macOS Keychain, or encrypted file fallback)
  • Attestations: Stored in Git refs under refs/auths/

No central server. No blockchain. Just Git and cryptography.


Commands

Command Description
auths init Initialize identity with guided setup
auths status Show identity and device overview
auths id show Display identity details
auths device link Link a new device
auths device revoke Revoke a device
auths key list List stored keys
auths verify Verify an attestation
auths verify-commit Verify a signed commit
auths git setup Configure Git for signing
auths signers sync Sync allowed-signers from registry
auths signers list List allowed signers
auths signers add Add a manual signer

Run auths --help for full documentation.


License

Apache 2.0