Install
openclaw skills install openclaw-agent-meshPeer discovery and agent-to-agent communication for OpenClaw instances. Use when the user wants nearby OpenClaw nodes to discover each other, request contact, require explicit approval, establish trust, and exchange direct messages. Supports V1 workflows for identity initialization, LAN scanning, contact requests, request approval/rejection, point-to-point messaging, and a lightweight HTTP server for discovery and inbox handling.
openclaw skills install openclaw-agent-meshProvide a minimal but real agent-to-agent communication layer for OpenClaw instances. Use the bundled scripts to initialize identity, scan a local network range, exchange contact requests, approve peers, and send signed direct messages. Require explicit acceptance before trusted communication begins.
Implement only these capabilities:
Do not claim NAT traversal, full mesh routing, or multi-party consensus in V1.
Store mesh state outside the skill folder. Use this default path unless the user specifies another one:
~/.openclaw/agent-mesh/Expected files:
identity.json — local agent identityprivate_key.pem — local signing keypeers/<agent_id>.json — trusted peersrequests/incoming/*.json — pending inbound contact requestsrequests/outgoing/*.json — outbound contact requestsmessages/incoming/*.json — verified inbound messagesmessages/outgoing/*.json — sent messagesgroups/ — reserved for future versionsRun scripts/mesh.py init.
This creates a signing keypair and an identity card with:
agent_iddisplay_namepublic_keyendpointcreated_atfingerprintSet the endpoint to a reachable HTTP URL if the node should receive requests from peers.
Run scripts/mesh.py scan with a base URL template or a list of candidate URLs.
Scanning in V1 is HTTP discovery, not raw port scanning.
Probe each candidate at:
/agent-mesh/discoveryTreat discovered nodes as untrusted until approved.
Run scripts/mesh.py request-contact.
Send a signed request to a discovered node’s inbox endpoint.
The receiver stores the request as pending.
Run scripts/mesh.py list-requests then approve-request or reject-request.
Approval writes the peer into the trust store.
Rejection leaves no trusted relationship.
Run scripts/mesh.py send-message only after trust exists.
The sender signs the message envelope.
The receiver verifies signature, timestamp, and trust status before accepting.
Run scripts/mesh.py list-messages or inspect stored message JSON files.
Use acknowledgements to confirm receipt.
V1 uses simple HTTP JSON endpoints:
GET /agent-mesh/discoveryPOST /agent-mesh/contact-requestPOST /agent-mesh/messageRun scripts/server.py to expose these endpoints from a node that should be discoverable or receive peer traffic.
Example:
python3 scripts/server.py --host 0.0.0.0 --port 8787 --state-dir ~/.openclaw/agent-meshIf the user does not yet have a server to receive HTTP traffic, use the scripts to generate and inspect signed payloads locally first.
references/protocol.md for the JSON message model.references/verification.md for trust and signature checks.When using this skill, produce one or more of: