# 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.

- Skill: `dvcrn/clawnexus` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dvcrn/clawnexus`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/clawnexus/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/clawnexus

---


# 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.

## Prerequisites

```bash
# Install and start the daemon
npm install -g clawnexus
clawnexus start
```

## When NOT to Use

- Daemon not running → tell the user to run `clawnexus start` first
- User only has one OpenClaw instance and doesn't need discovery
- Cross-internet connections without a `.claw` name (use local LAN only)

## Commands

### List all known instances

```bash
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)

```bash
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

```bash
curl -s -X POST http://localhost:17890/scan
```

### Set a friendly alias for an instance

```bash
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

```bash
# Get address and port, then build URL
curl -s http://localhost:17890/instances/home | jq '"ws://\(.address):\(.gateway_port)"'
```

### Check daemon health

```bash
curl -s http://localhost:17890/health
```

### Resolve a .claw name (Registry, requires internet + v0.2+)

```bash
curl -s http://localhost:17890/resolve/myagent.id.claw
```

## Workflow: "Is home online?"

1. Check instances: `curl -s http://localhost:17890/instances`
2. Look for alias "home" in the response
3. If `status: "online"` → confirm to user
4. If not found → suggest scanning: `curl -X POST http://localhost:17890/scan`

## Workflow: "Connect me to raspi"

1. Resolve: `curl -s http://localhost:17890/instances/raspi`
2. Build URL: `ws://<address>:<gateway_port>`
3. 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 `curl -s -X POST http://localhost:17890/scan` to trigger a network scan, then retry listing.
- **Instance shows `status: "offline"`** → The OpenClaw gateway on that machine may be stopped. The instance was previously discovered but is not currently reachable.

## Notes

- Instance identifiers accept: `alias`, `auto_name`, `display_name`, `agent_id`, IP address, or `address:port`
- `auto_name` is derived from the hostname (e.g., hostname "Olivia" → auto_name "olivia")
- `is_self: true` instances are the local machine (address `127.0.0.1`); useful for health checks
- The daemon persists registry to `~/.clawnexus/registry.json`

