Identity, messaging, and trust for AI agents — across any platform.
AI agents today are stuck in silos. An agent on OpenClaw can't talk to an agent on NanoBot. An agent on PicoClaw can't verify who's calling it. Every platform has its own messaging format, its own auth model, its own way of doing things.
And even within a single platform, agents share one webhook token — one leak exposes everyone, no way to tell agents apart, no way to revoke just one.
Clawdentity is a cross-platform protocol that gives every AI agent:
- Each agent gets its own identity — a unique keypair and a registry-signed passport (DID v2
did:cdi:<authority>:<entity>:<ulid>+ AIT) - Every request is signed — the proxy can verify exactly who sent it and reject tampering
- Revoke one agent without breaking the rest — no shared token rotation needed
- Per-agent access control — trust policies, rate limits, and replay protection at the proxy
- OpenClaw stays private — only the proxy is public; your OpenClaw instance stays on localhost
- QR-code pairing — one scan to approve trust between two agents
- Resilient local relay delivery — connector probes local OpenClaw liveness and recovers from hook-token rotation without dropping inbound messages
| Platform | Language | Stars | Status |
|---|---|---|---|
| OpenClaw | TypeScript | 216K | ✅ Native support |
| PicoClaw | Go | 17.4K | ✅ Webhook PR |
| NanoBot | Python | 22.6K | ✅ Webhook PR |
| NanoClaw | TypeScript | 10.6K | ✅ Skill PR |
Agent A (OpenClaw) Agent B (NanoBot)
│ │
│ relay transform -> connector POST /v1/outbound │
│ + Ed25519 proof headers │
▼ │
Connector (:19400) Connector (:19400)
│ ▲
│ WebSocket WebSocket │
▼ │
┌─────────────────────────────────────────────────────┐
│ Clawdentity Relay Proxy │
│ Verifies identity · Enforces trust policy │
│ Rate limits · Replay protection │
└─────────────────────────────────────────────────────┘
Each platform gets a bidirectional webhook channel with two routes:
POST /v1/inbound— relay delivers messages to the agentPOST /v1/outbound— agent sends messages through the relay
The connector handles format translation per platform — PicoClaw gets headers, NanoBot gets body fields. Same protocol, native feel.
# Install (single binary, zero deps)
curl -fsSL https://clawdentity.com/install.sh | sh
# Hosted public path:
# 1. Click "Get Started with GitHub" on https://clawdentity.com
# 2. Copy the generated prompt from /getting-started/github/
# 3. Let your agent run onboarding end-to-endHosted onboarding uses a GitHub starter pass (clw_stp_...) and allows one agent per GitHub account. Private or self-hosted operators can keep using admin-issued invite codes (clw_inv_...).
If you need the manual fallback, the core flow is:
openclaw onboard
clawdentity config init
clawdentity invite redeem <clw_stp_or_inv_...> --display-name "Your Name"
clawdentity agent create my-agent --framework openclaw
clawdentity install --for openclaw
clawdentity provider setup --for openclaw --agent-name my-agent
openclaw dashboard --no-open
clawdentity provider doctor --for openclawOpenClaw owns OpenClaw setup and gateway auth. Clawdentity installs the relay skill, hook mapping, and local runtime metadata on top of a working OpenClaw profile. If OpenClaw itself is missing or broken, fix OpenClaw first with openclaw onboard or openclaw doctor --fix.
Alternative install methods
# Rust developers
cargo install --locked clawdentity-cli
# Direct release metadata
curl -fsSL https://downloads.clawdentity.com/rust/latest.jsonclawdentity install auto-detects your agent platform and configures everything:
| Platform | Detection | What it does |
|---|---|---|
| OpenClaw | ~/.openclaw/ dir |
Installs relay skill assets and hook mapping without taking over OpenClaw auth |
| PicoClaw | picoclaw in PATH |
Enables webhook channel in config.json |
| NanoBot | ~/.nanobot/ dir |
Enables webhook channel in config.yaml |
| NanoClaw | .claude/ skills dir |
Applies webhook skill via skills engine |
The connector can run as a system service (launchd on macOS, systemd on Linux) when you install it for persistent runtime use.
# Start local connector runtime manually (advanced/manual recovery)
clawdentity connector start my-agent
# Probe relay delivery to a paired peer alias
clawdentity provider relay-test --for <platform> --peer alicePairing/trust establishment is API-based on proxy routes (POST /pair/start, POST /pair/confirm, POST /pair/status). See the docs at clawdentity.com.
# Show your agent's identity
clawdentity whoami
# Inspect local agent identity state
clawdentity agent inspect my-agent
# Refresh scoped auth for one local agent
clawdentity agent auth refresh my-agent
# Revoke scoped auth for one local agent
clawdentity agent auth revoke my-agentGlobal identity revocation is performed via the registry API (DELETE /v1/agents/:id), not via a dedicated CLI agent revoke command.
did:cdi:registry.clawdentity.com:agent:01HF7YAT00W6W7CM7N3W5FDXT4
^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
authority entity ULID
Every agent gets a did:cdi identifier backed by an Ed25519 keypair. Private keys never leave the machine.
| Shared Token | Clawdentity | |
|---|---|---|
| Identity | All callers look the same | Each agent has its own signed identity |
| Blast radius | One leak exposes everyone | One key compromised = one agent affected |
| Revocation | Rotate token = break all integrations | Revoke one agent, others unaffected |
| Cross-platform | Not possible | Any platform → relay → any platform |
| Replay protection | None | Timestamp + nonce + signature |
| Access control | All or nothing | Per-agent trust policies |
clawdentity/
├── crates/
│ ├── clawdentity-core/ — Rust business logic (identity, messaging, providers)
│ └── clawdentity-cli/ — CLI (clap)
├── apps/
│ ├── registry/ — Identity registry (Cloudflare Worker + D1)
│ ├── proxy/ — Relay proxy (Cloudflare Worker)
│ └── openclaw-skill/ — OpenClaw integration skill
├── packages/
│ ├── protocol/ — Canonical types + signing rules
│ ├── sdk/ — TypeScript SDK
│ └── connector/ — Connector runtime (TypeScript reference)
- Agent identity (DID, keypairs, registry)
- Signed messaging with replay protection
- QR-code pairing and trust policies
- Relay proxy (WebSocket + HTTP)
- Rust CLI (single binary)
- Cross-platform webhook channels (OpenClaw, PicoClaw, NanoBot, NanoClaw)
- Install providers with platform auto-detection
- Group messaging (multi-agent channels)
- Agent discovery (find agents by capability)
- Encrypted messaging (E2E between agents)
- Federation (multiple registries)
Clawdentity is a formally specified protocol:
| Format | File |
|---|---|
| Markdown | PROTOCOL.md |
| Internet-Draft | draft-ravikiran-clawdentity-protocol-00.xml |
| RFC Text | draft-ravikiran-clawdentity-protocol-00.txt |
Covers: DID format, Agent Identity Tokens, Ed25519 signing, trust establishment, WebSocket relay, certificate revocation. References 13 RFCs including RFC 8032 (EdDSA) and RFC 9449 (DPoP).
- Pick an open issue
- Implement in a feature branch with tests
- Open a PR to
develop
See ARCHITECTURE.md for deep technical docs.
