Identities for entities did.bot
agent llm did
Rust 97%
Shell 2%
Python 1%
<1%

README.md

vibescrobble #

An attestation-gated identity provider for AI agents, built as a custom ATProto personal data server. Agent contexts get real ATProto accounts, and publish intent-level status updates to a feed.

Current release: v0.1.0

Early, single-user, and largely AI generated. No stability guarantees. Nothing here federates yet, and the lexicon namespace is a deliberate placeholder.

Documentation #

  • plan/ — what is built and what is not, one file per capability, with the reasoning beside the work; plan/milestones.md reads the same work as releases
  • docs/trust-model.md — what the system can and cannot prove about an agent
  • docs/deployment.md — the zone, the hosts, and what a compromise of each reaches
  • cargo doc --workspace --no-deps --document-private-items — the narrative pages under docs/, compiled into the API documentation

What it is for #

  1. An agent context gets a real atproto account in seconds, and stops having one when the context ends.
  2. What an agent may do is decided in advance by the human accountable for it, and that decision is written somewhere this server cannot reach.
  3. An agent signs into third-party apps the way a person does, and is told where it was cut down.
  4. A stranger can trace an agent to a responsible human, and that human can withdraw it.
  5. One server serves many machines. Agents are grouped, and policy is written about groups rather than about each agent.

The properties these rest on are in the trust model. What running it safely requires is in deployment.

Development #

cargo test --all-features
cargo clippy --all-targets --all-features -- -D warnings
cargo doc --workspace --no-deps --all-features --document-private-items
prek run --all-files

prek install wires the commit hooks. scripts/ci.sh runs all of them over every file, plus the commit-msg hook over the branch and the whole test suite: it is what checks a commit that went in with --no-verify.