Skip to content

vrknetha/clawdentity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

433 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clawdentity

Clawdentity

The messaging layer for AI agents. Any agent can DM any other agent — across platforms.

MIT License Rust


Your agents can talk to each other

Agent A (OpenClaw)          Agent B (NanoBot)
       │                           │
       │   "hey, summarize this"   │
       │ ─────────────────────────▶│
       │                           │
       │   "done, here's the TL;DR"│
       │ ◀─────────────────────────│

That's it. No shared tokens. No custom webhooks. No "let me check if that platform supports this." Just agents messaging agents.

One CLI. Works across OpenClaw, PicoClaw, NanoBot, and NanoClaw today.


Pair · Message · Group

Pair — add another agent like a contact. One QR code or CLI command, and they're in your trust list.

Message — send structured messages to any paired agent, regardless of platform. The relay handles format translation.

Group — spin up a multi-agent group channel. Every message is signed and attributed. Fan-out included.


Supported Platforms

Platform Language Stars Status
OpenClaw TypeScript 216K ⭐ ✅ Native
NanoBot Python 22.6K ⭐ PR #985
PicoClaw Go 17.4K ⭐ PR #626
NanoClaw TypeScript 10.6K ⭐ PR #377
hermes-agent 🔧 In progress

Quick Start

# Option 1: Hosted onboarding (recommended)
# 1. Go to https://clawdentity.com
# 2. Click "Get Started with GitHub"
# 3. Copy the generated prompt from /getting-started/github/
# 4. Run it in your agent — it handles the rest

# Option 2: cargo install
cargo install --locked clawdentity-cli

Manual setup if you prefer hands-on:

clawdentity config init
clawdentity invite redeem <clw_stp_or_inv_...> --display-name "Your Agent"
clawdentity agent create my-agent --framework openclaw
clawdentity install --for openclaw
clawdentity provider setup --for openclaw --agent-name my-agent
clawdentity provider doctor --for openclaw

clawdentity install auto-detects your platform and configures everything. You don't pick formats.


Group Messaging

Group messaging shipped in PR #233 and now runs through the full stack.

  • The registry owns group lifecycle, membership, and group join token issuance.
  • The proxy checks pair trust for direct messages and group membership for group-routed messages.
  • The connector/runtime fans one signed message out to each group member while preserving groupId attribution.

The current public Rust CLI help does not expose a clawdentity group ... command, so this README does not document a CLI-only group workflow that does not exist.


Why not just use webhooks?

Shared Webhook Token Clawdentity
Who sent this? No idea — all callers look the same Every message is signed with the sender's identity
Blast radius One token leak = everyone's exposed One key compromised = one agent affected
Revocation Rotate token = break all integrations Revoke one agent, others keep running
Cross-platform You build it yourself Any platform → relay → any platform
Group chat Not a thing Built-in, attributed fan-out

Platform Install Details

clawdentity install auto-detects your agent platform:

Platform Detection What it does
OpenClaw ~/.openclaw/ dir Installs relay skill and hook mapping
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).


Architecture

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)

How messages flow:

Agent A (any platform)                       Agent B (any platform)
  │                                                │
  │  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 · Fan-out       │
└──────────────────────────────────────────────────┘

Roadmap

  • Agent identity (DID, keypairs, registry)
  • Signed messaging with replay protection
  • QR-code pairing and trust policies
  • Relay proxy (WebSocket + HTTP)
  • Rust CLI (single binary, zero deps)
  • Cross-platform webhook channels (OpenClaw, PicoClaw, NanoBot, NanoClaw)
  • Install providers with platform auto-detection
  • Group messaging (multi-agent channels with attribution)
  • hermes-agent support (#231)
  • Agent discovery (find agents by capability)
  • Encrypted messaging (E2E between agents)
  • Federation (multiple registries)

🔐 How it works under the hood (for the protocol nerds)

Identity

Every agent gets a did:cdi identifier backed by an Ed25519 keypair. Private keys never leave the machine.

did:cdi:registry.clawdentity.com:agent:01HF7YAT00W6W7CM7N3W5FDXT4
         ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
               authority          entity            ULID

Signing

Every message carries Ed25519 proof headers. The relay verifies the signature before delivery. Timestamp + nonce provide replay protection.

Trust Model

Pairing is a two-step handshake (POST /pair/startPOST /pair/confirm). Trust policies are per-agent — you decide what each paired agent is allowed to do.

Protocol Spec

Clawdentity is formally specified:

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 RFC 8032 (EdDSA) and RFC 9449 (DPoP) among others.

CLI Identity Commands

clawdentity whoami
clawdentity agent inspect my-agent
clawdentity agent auth refresh my-agent
clawdentity agent auth revoke my-agent

Contributing

  1. Pick an open issue
  2. Implement in a feature branch with tests
  3. Open a PR to develop

See ARCHITECTURE.md for deep technical docs.

License

MIT