acp-router
Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode,…
Diagnose OpenClaw Control UI browser and native Android, iOS, or macOS node connection failures across route, auth, pairing, QR/setup-code, and reconnect states.
$ npx -y skills add openclaw/openclaw --skill node-connect --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/node-connectContext preview
The summary Claude sees to decide when to auto-load this skill.
Diagnose OpenClaw Control UI browser and native Android, iOS, or macOS node connection failures across route, auth, pairing, QR/setup-code, and reconnect states.
name: node-connect description: "Diagnose OpenClaw Control UI browser and native Android, iOS, or macOS node connection failures across route, auth, pairing, QR/setup-code, and reconnect states."
Goal: fix one exact client against one exact Gateway, then prove that client's fresh connection.
Record the target environment/profile, OpenClaw binary, config/state root, Gateway URL/port, and service before changing anything.
Identify the target Gateway before changing pairing or auth.
Classify from the request and Gateway log before choosing commands:
A phone can be either client. Do not use `openclaw qr` or `openclaw nodes status` for a phone browser; those belong to native mobile/node pairing.
Run these through the locked target:
openclaw gateway status --deep openclaw logs --follow --json openclaw devices list openclaw config get gateway.mode openclaw config get gateway.bind openclaw config get gateway.remote.url openclaw config get gateway.auth.mode openclaw config get gateway.auth.allowTailscale openclaw config get gateway.tailscale.mode
Have the client retry once while logs are live. Correlate its client ID, mode, platform, address, auth result, device ID, user, and close code. Ignore other paired devices.
Interpret the first failed transition:
Choose one topology: same machine, LAN, tailnet, or public reverse proxy. Do not mix them.
tailscale status --json tailscale serve status --json
Match the client's URL to the listener/proxy route reaching the locked Gateway.
Restore browser auth before looking for a pairing request:
After auth succeeds:
Inspect the native route through the locked target without exposing the setup credential:
openclaw qr --json | jq '{gatewayUrl, gatewayUrls, auth, access, accessDowngraded, urlSource}'For a CLI controlling a remote Gateway, add `--remote` before `--json`; it selects `gateway.remote.url` and remote credentials. If the redaction filter is unavailable, do not run raw QR JSON in agent-visible output.
Verify `gatewayUrl` and `urlSource`. The setup code is password-equivalent: have the operator copy it from **Control UI → Devices → Pair device**, or run `openclaw qr --setup-code-only` in a terminal outside agent tooling and paste it directly into the official app. Never relay it through agent/chat/tool output. Generate a fresh code after a URL/auth fix or expiry.
If the app reports `pairing required`:
openclaw devices list openclaw devices approve --latest # preview only; exits without approval openclaw devices approve <requestId> openclaw nodes status
`--latest` only previews the current request; never treat it as approval. Re-list immediately before the exact-ID command because retries can supersede the request. Never approve by position, age, or similarity.
Before approval, match available request, device/public-key, client, mode/role, platform, address, user, and retry-time facts.
Declare success only after a new attempt made after the final c
OpenClaw is an open-source AI assistant that runs on your own computer and meets you in the channels you already use: Discord, iMessage, Slack, Teams, Telegram, WhatsApp, and 20+ more, plus native apps for macOS, iOS, Android, Windows, and Linux.
Repo: openclaw/openclaw
Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode,…
Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows,…
Present hosted widget documents on a connected macOS panel and control panel visibility or…
Use when asked to open, run, test, or show an app in Crabbox, including native desktops, web…
Use the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both)…
Discord messaging workflows through OpenClaw's message tool.