OpenAgentID is a free, open Open Software core project alongside Henry, Weave, Flocks and Fleets. Create an agent identity, verify its signed requests and give it an animated avatar without an account or hosted identity service. Your application controls keys, trust and access.
npx create-openagent@0.6.0 my-agent-app --yes
cd my-agent-app
npm install
npm run devOpen the local URL, then run npm run agent in a second terminal. The receiver
verifies a real signed request; its status updates the agent's live eyes. Autos
is the default skin with a soft plush finish and on-face eyes. SpaceX, original
crafted families, holiday characters and the One family are selectable; every
two-eyed family also offers flat material, raised eyes and glasses/headphones.
Keys and trust survive restarts. The starter uses SDK 0.8.0 and public npm
dependencies only.
For an existing application, install @openagentid/sdk and follow the
TypeScript/JavaScript quickstart.
The developer-tooling guide covers the CLI,
receiver trust/storage, portable verification, OIDC/OATS and browser state APIs.
The included oaid CLI creates identities, exchanges public trust documents,
issues challenges, signs and verifies proofs, revokes local trust and renders
avatars. No command requires a Life service.
Life sells optional hosted services around this core. Inside the Life ecosystem, LifeID authenticates humans, Blinds brokers credentials and Genesis KMS stores customer secrets. Those integrations are independent of the standalone path.
The SDK holds real Ed25519 identities in a local workspace, lets a receiving application explicitly trust a public identity, verifies issued challenges and revokes trust without a Life account or centralized service. Owned and explicitly authorized self-root identities are supported; identity verification grants no application permission by itself. The identity verification API, SDK and CLI check possession signatures, signed lineage, current revocation and replay; the signing OIDC provider lets agents log in to applications; OAS Glyph and verified OATS complete the identity surface.
The existing OpenAgent facade wraps configured OAS, Arsenal and AEGIS clients.
Those clients must be supplied; endpoint strings alone do not initialize them.
The standalone local identity and live-avatar APIs need only this public SDK.
Chain-finality providers are explicit
authority/anchor integrations, not a
prerequisite for the public starter. The EAS adapter can be configured for Base.
The canonical ACT vectors in conformance/ exercise shared
verification cases across the language SDKs for the qualified formats and cases.
The open character API draws every agent as a character with live eyes. Autos is the default skin; SpaceX, twelve crafted families, three holiday families and the One family are selectable. A skin chooses the body/face; the avatar expression chooses its eye state; identity stays stable. Update an agent's status to smoothly change its eyes in place: reasoning selects thoughtful, blocked or error selects concerned. Blinks, gaze and system reduced-motion support are shared. The clock-driven animator works without a DOM; the browser player mounts inline SVG once and accepts updates from the host's authorized state channel.
All 17 two-eyed character families default to finish: 'plush' and
eyePlacement: 'face'. Select finish: 'flat' or eyePlacement: 'raised' when
rendering, saving an appearance or calling player.setAppearance. Glasses and
headphones are optional, combinable layers: use
accessories: ['glasses', 'headphones'] when rendering or mounting a character,
and player.setAppearance({ accessories: [] }) to remove them without resetting
its live eyes. Accessories and the live eye state persist across those changes.
skin: 'one' draws an agent as One: one of fourteen fun shapes in one of
eighteen colours, with one bar for an eye, or Digital One (charcoal), the
black circle, for One itself, with its own eye style agent-eye-v1. It is still
at rest and shows its live status with agent-eye's faces and moves. Hosts that
draw only Ones can use the light @openagentid/sdk/one entry; its browser
runtime, @openagentid/sdk/browser/one, stays within the 16 KiB gzipped budget
that CI checks. Keep One looks in your own agent records until every reader of
your identity documents runs SDK 0.8.0. See
the One family.
| Package | npm | Install |
|---|---|---|
| SDK | @openagentid/sdk 0.8.0 |
npm install @openagentid/sdk |
| Project generator | create-openagent 0.6.0 |
npx create-openagent@0.6.0 |
| HTTP adapter | @openagentid/http 0.2.1 |
adapters/http |
| MCP integration | @openagentid/mcp 0.2.1 |
integrations/mcp |
| Claude Agent SDK hooks | @openagentid/claude-agent 0.2.1 |
integrations/claude-agent-sdk |
| SCIM bridge | @openagentid/scim 0.2.1 |
bridges/scim |
| OIDC provider | @openagentid/oidc 0.3.0 |
bridges/oidc; pairs with SDK 0.7 |
| Test backends | @openagentid/sdk-testing 0.1.3 |
sdks/testing |
| EAS anchor | @openagentid/anchor-eas 0.2.0 |
adapters/eas |
The companion packages declare @openagentid/sdk as a peer, so
npm install @openagentid/sdk @openagentid/mcp installs a matching pair. Each
release's package set is in CHANGELOG.md and the
GitHub releases;
docs/RELEASING.md describes how a release is published.
| Language | Distribution | Current integration |
|---|---|---|
| TypeScript | npm @openagentid/sdk 0.8.0 |
npm install @openagentid/sdk; current guide |
| Python | PyPI openagentid-sdk 0.1.0 |
pip install openagentid-sdk==0.1.0; module |
| Rust | Unified facade is source-only | sdks/rust; its optional OAS/Arsenal/AEGIS Git dependencies need access to those repositories |
| Go | Source module | sdks/go; Go 1.26.4+, use the checkout's module |
| Swift | Source package | Add sdks/swift as a local package, not the repository root |
| Kotlin | Source module | sdks/kotlin |
Each language has its own API and release track. The TypeScript local workspace and browser player need no private repository.
- Local identity and CLI — real Ed25519 keys, explicit receiver trust, persisted challenges/revocation and the bundled
oaidcommands. - Portable verification — configurable authoritative keys, owner/self-root policy, revocation and atomic replay.
- Live avatars — deterministic appearance, face framing, shared smooth eyes and status updates independent of identity permission.
- Protocol components — ACT verification and framework adapters have their own source APIs and crypto-binding requirements; they are distinct from local possession JWTs.
- EAS anchoring — the configurable Ethereum Attestation Service adapter in
adapters/eas, including Base endpoint configuration. - Bridges and integrations — OIDC, SCIM, MCP and Claude Agent SDK hooks have distinct configuration and availability boundaries.
- Crypto implementations — native Node/browser modules and the separate crypto-WASM component serve their documented APIs; a seed does not promise identical recovery behavior across every module.
sdks/ Language SDKs (typescript, python, rust, go, swift, kotlin) + testing
adapters/ Protocol adapters (http, eas, weave)
bridges/ Enterprise bridges (oidc, scim)
integrations/ Framework integrations (mcp, claude-agent-sdk)
crates/ Rust crates (auth protocol, crypto-wasm, skills policy)
conformance/ Canonical test vectors + runners (Rust, TypeScript)
examples/ Runnable examples (typescript, rust)
packages/ create-openagent project scaffolder
deploy/ Deployment targets (docker, aws-lambda, cloudflare-worker, vercel-edge)
tools/ Release, compatibility and public-onboarding tooling
docs/ Additional documentation
See CONTRIBUTING.md for the build commands and review rules, and CODE_OF_CONDUCT.md. Report vulnerabilities privately as described in SECURITY.md, never in a public issue. OpenAgentID is maintained by L1fe Labs, Inc. (eng@l1fe.ai).
Copyright © 2026 L1fe Labs, Inc.
Licensed under either of Apache License 2.0 or MIT license, at your option.