Skills clawnexus
Discover, name, and manage OpenClaw instances on your LAN. Scan for AI agents, check status, set aliases, resolve .claw names, and get connection URLs via the ClawNexus daemon.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/alan-silverstreams/clawnexus" ~/.claude/skills/openclaw-skills-clawnexus && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/alan-silverstreams/clawnexus" ~/.openclaw/skills/openclaw-skills-clawnexus && rm -rf "$T"
manifest:
skills/alan-silverstreams/clawnexus/SKILL.mdsource content
ClawNexus
Overview
ClawNexus is a naming and discovery layer for OpenClaw. It runs a local daemon that automatically discovers OpenClaw instances on your network and assigns them readable names, so you can refer to instances by alias (e.g., "home") instead of IP addresses.
Works across networks too — instances can register
.claw names (like home.alan.id.claw) and connect via encrypted relay from anywhere.
Prerequisites
# Install and start the daemon npm install -g clawnexus clawnexus start
When NOT to Use
- Daemon not running → tell the user to run
firstclawnexus start - User only has one OpenClaw instance and doesn't need discovery
- Cross-internet connections without a
name (use local LAN only).claw
Commands
List all known instances
curl -s http://localhost:17890/instances | jq '.instances[] | {name: (.alias // .auto_name), status, address}'
Check a specific instance (by alias, auto_name, or address:port)
curl -s http://localhost:17890/instances/home curl -s http://localhost:17890/instances/olivia curl -s http://localhost:17890/instances/192.168.1.10:18789
Scan the local network for OpenClaw instances
curl -s -X POST http://localhost:17890/scan
Set a friendly alias for an instance
curl -s -X PUT http://localhost:17890/instances/olivia/alias \ -H "Content-Type: application/json" \ -d '{"alias": "home"}'
Get the WebSocket URL to connect to an instance
# Get address and port, then build URL curl -s http://localhost:17890/instances/home | jq '"ws://\(.address):\(.gateway_port)"'
Check daemon health
curl -s http://localhost:17890/health
Resolve a .claw name (Registry, requires internet + v0.2+)
curl -s http://localhost:17890/resolve/myagent.id.claw
Workflow: "Is home online?"
- Check instances:
curl -s http://localhost:17890/instances - Look for alias "home" in the response
- If
→ confirm to userstatus: "online" - If not found → suggest scanning:
curl -X POST http://localhost:17890/scan
Workflow: "Connect me to raspi"
- Resolve:
curl -s http://localhost:17890/instances/raspi - Build URL:
ws://<address>:<gateway_port> - Report URL to user for use with OpenClaw's gateway connect
Troubleshooting
- "Connection refused" on localhost:17890 → The ClawNexus daemon is not running. Tell the user to run
.clawnexus start - No instances found → The daemon may have just started. Run
to trigger a network scan, then retry listing.curl -s -X POST http://localhost:17890/scan - Instance shows
→ The OpenClaw gateway on that machine may be stopped. The instance was previously discovered but is not currently reachable.status: "offline"
Notes
- Instance identifiers accept:
,alias
,auto_name
,display_name
, IP address, oragent_idaddress:port
is derived from the hostname (e.g., hostname "Olivia" → auto_name "olivia")auto_name
instances are the local machine (addressis_self: true
); useful for health checks127.0.0.1- The daemon persists registry to
~/.clawnexus/registry.json