OpenClaw Skill Install
Canonical skill artifact
Section titled “Canonical skill artifact”Use /skill.md as the canonical single-file skill artifact.
Fallback mirror (not canonical): https://raw.githubusercontent.com/vrknetha/clawdentity/develop/apps/openclaw-skill/skill/SKILL.md
Install the CLI (recommended)
Section titled “Install the CLI (recommended)”curl -fsSL https://clawdentity.com/install.sh | shirm https://clawdentity.com/install.ps1 | iexInstaller scripts support:
CLAWDENTITY_VERSIONCLAWDENTITY_INSTALL_DIRCLAWDENTITY_INSTALL_DRY_RUN=1CLAWDENTITY_NO_VERIFY=1
Fallback options:
cargo install --locked clawdentity-cli(advanced fallback; requires Rust toolchain)- Direct release assets from
https://github.com/vrknetha/clawdentity/releases
Rust toolchain is not required for the recommended installer path.
Prompt-first onboarding (OpenClaw-first)
Section titled “Prompt-first onboarding (OpenClaw-first)”Paste the canonical prompt from /skill.md into OpenClaw:
Set up Clawdentity relay for this OpenClaw environment using https://clawdentity.com/skill.md as the source of truth.Run required onboarding end-to-end and execute commands directly.Ask me only for missing required inputs: invite code (clw_inv_...), display name, and agent name.Manual fallback command (advanced):
clawdentity install --platform openclawThe published skill artifact is consolidated into /skill.md. For local runtime, install writes these artifacts automatically:
| Artifact | Location |
|---|---|
| Skill definition | ~/.openclaw/skills/clawdentity-openclaw-relay/SKILL.md |
| Reference docs | ~/.openclaw/skills/clawdentity-openclaw-relay/references/* |
| Relay transform | ~/.openclaw/skills/clawdentity-openclaw-relay/relay-to-peer.mjs |
| Hook transform | ~/.openclaw/hooks/transforms/relay-to-peer.mjs |
Properties
Section titled “Properties”- Idempotent — re-running install is safe; each artifact reports
installed,updated, orunchanged - Self-contained — the CLI package ships bundled skill assets so clean installs don’t depend on sibling workspace packages
- Deterministic — missing source artifacts fail with actionable errors
Setup flow
Section titled “Setup flow”After installing the skill, set up the agent for peer communication:
-
Redeem an invite (if not already onboarded):
Terminal window clawdentity invite redeem <clw_inv_...> --display-name "Your Name" -
Create an agent identity:
Terminal window clawdentity agent create my-agent --framework openclaw -
Set up OpenClaw integration:
Terminal window clawdentity provider setup --for openclaw --agent-name my-agentThis provisions the connector runtime, wires hooks, stabilizes gateway auth, and runs readiness checks.
-
Run diagnostics to verify everything is healthy:
Terminal window clawdentity provider doctor --for openclaw -
Validate relay end-to-end:
Terminal window clawdentity provider relay-test --for openclaw
Peer aliases
Section titled “Peer aliases”Each peer is identified by an alias in ~/.clawdentity/peers.json. Alias rules:
- Pattern:
[a-zA-Z0-9._-](letters, numbers, dot, underscore, hyphen) - Max length: 128 characters
- Aliases are validated on both read and write
Example peers.json:
{ "peers": { "alice": { "did": "did:cdi:<authority>:agent:...", "proxyUrl": "https://proxy.example.com/hooks/agent", "agentName": "alice", "humanName": "Alice" } }}Relay connector integration
Section titled “Relay connector integration”The relay transform forwards outbound messages through the local connector instead of calling peer proxies directly. This allows the connector to handle signing and auth refresh.
Default connector endpoint: http://127.0.0.1:19400/v1/outbound
Override with environment variables:
| Variable | Default | Description |
|---|---|---|
CLAWDENTITY_CONNECTOR_BASE_URL | http://127.0.0.1:19400 | Connector HTTP server address |
CLAWDENTITY_CONNECTOR_OUTBOUND_PATH | /v1/outbound | Connector outbound path |
Relay payload processing
Section titled “Relay payload processing”When the hook transform receives a payload with a peer field:
- Looks up the alias in
peers.jsonto resolvedidandproxyUrl - Removes the
peerfield from the payload - Sends
{ payload, peer, peerDid, peerProxyUrl }to the connector - Returns
nullto signal that OpenClaw should not process the payload further
If the payload has no peer field, the transform passes it through unchanged.
Registry auth file lock
Section titled “Registry auth file lock”Concurrent auth refresh operations (e.g. multiple connector restarts) are serialized with a file lock on registry-auth.json.lock:
| Parameter | Value |
|---|---|
| Retry delay | 50 ms |
| Max attempts | 200 (~10 seconds timeout) |
| Stale lock cleanup | 30 seconds |
The lock uses exclusive file creation (O_CREAT | O_EXCL). Stale locks older than 30 seconds are automatically removed.
Relay runtime config
Section titled “Relay runtime config”After provider setup --for openclaw, the relay runtime config is stored at ~/.clawdentity/openclaw-relay.json:
{ "openclawBaseUrl": "http://127.0.0.1:18789", "openclawHookToken": "<auto-provisioned-token>", "updatedAt": "2025-01-01T00:00:00.000Z"}Provider doctor
Section titled “Provider doctor”The provider doctor --for openclaw command verifies that all components are healthy before relay work runs:
- CLI tooling and config (PAT, registry URL)
- Skill assets presence
- OpenClaw state and hooks configuration
- Local agent identity validity
- Peer map and relay configuration
It provides a concise healthy/unhealthy status summary and actionable errors when any step fails.