Setup
Set up OcuClaw, your way.
Hand the setup to your agent, or work through it yourself.
Step 1 · Your setup
First, tell us what you're using.
Three quick choices build the right setup path.
Choose your agent and its install status to continue.
Install the OcuClaw-Assist skill from ClawHub, then use it to set up OcuClaw for me.
CLICK TO COPYPaste your agent's feedback block.
Guide experience only. Remove tokens, relay addresses, node names, and anything private.
Feedback will be used to help improve the OcuClaw-Assist skill. Your submission will be stored for up to one week.
Get OpenClaw running first.
Complete these two checks. The handoff prompt appears here as soon as your agent is ready.
OpenClaw is the agent host — everything OcuClaw sets up lives inside it on this machine. Until it's installed there's no agent to hand this setup to.
Run in PowerShell.
Run in Terminal.
Run in a terminal — on WSL2, inside the WSL shell.
A new terminal answers openclaw --version with a version number.
command not found right after installing → the installer updated PATH but this shell hasn't reloaded it — open a new PowerShell windownew terminal and retry. Still missing → re-run the install command and read its output for errors.
A model provider is the brain your agent runs on — OpenClaw can't do anything without one. You sign in on this machine; keys and sessions stay yours.
Finish the installer's onboarding to the end, then add a model provider — e.g. sign in with your Claude or ChatGPT subscription.
Onboarding finishes cleanly and the provider you added is listed as registered.
A provider that won't sign in, or one whose session expired later → openclaw models auth login re-runs the provider sign-in.
Hermes Agent support is coming soon.
Hermes Agent is in beta testing and launches soon. To take part in the beta, join the Discord.
Switch to OpenClaw to continue today.
Finish Phase 0 first. Your setup routes appear when OpenClaw is ready.
Anything in ‹angle brackets› is yours — replace it before running.
Establish your lane
Confirm the ground before installing anything — glasses paired, host current. Keep your phone nearby.
Everything below installs into OpenClaw on this machine — confirm the glasses and host are ready first.
Prints the minimum version or newer; G2 connected in the Even Realities app; OcuClaw installed from the Even Hub store on the phone.
command not found → OpenClaw isn't installed — do Phase 0 / openclaw.ai first. Older version → update OpenClaw before continuing.
Plugin, token & gateway
Add the plugin, set the relay secret yourself, grant the display hook, and load it.
Pulls the OcuClaw plugin from ClawHub, the scanned stable channel. The install prints a community-channel advisory — standard, not an error.
openclaw plugins inspect ocuclaw --json → the top-level install object is non-null. Appearing in plugins list alone doesn't count.
Older host rejects the clawhub: prefix → openclaw plugins install npm:ocuclaw. Leftovers from a failed attempt (install: null) → re-run the install once with --force, inspect again.
The token is the password your phone app will present to the relay. You create it and set it yourself, so it never passes through anyone else.
Replace only the quoted value. Make it typeable — step 09 asks for it on the phone.
The command exits cleanly, no empty/too-short rejection.
Rejected as empty or too short → nothing was saved; re-run with a real value. Never set it empty.
OpenClaw loads the plugin; its tools are available to the agent by default — the one explicit grant is the display-reset hook.
The last line is a read-only sanity check — Config path not found is the normal answer (no policy set, default exposure applies).
openclaw plugins list shows ocuclaw enabled.
tools.deny naming ocuclaw or group:plugins → that block is deliberate; resolve it before continuing. A non-empty tools.allow lacking both → add "ocuclaw" to that list — don't add an alsoAllow beside it, config rejects both in one scope.
The relay binds a loopback-only port on this machine. Fresh installs pick 47800 and record it automatically at first start — nothing to decide.
Only if it isn't loaded after a minute: openclaw gateway restart --safe
Status: loaded · logs show relay service started on ws://127.0.0.1:‹port› · openclaw config get plugins.entries.ocuclaw.config.wsPort returns the settled port (47800 fresh). Note it — step 07 needs it.
Bind error (EADDRINUSE, "address already in use") → find a free port walking 47800 → 43117 → 38271 — ss -ltnH "sport = :47800"lsof -nP -iTCP:47800 -sTCP:LISTENnetstat -ano | findstr :47800 and netsh int ipv4 show excludedportrange protocol=tcp (empty = free) — then openclaw config set plugins.entries.ocuclaw.config.wsPort ‹port› --strict-json. An earlier attempt left the bind at 0.0.0.0 → openclaw config set plugins.entries.ocuclaw.config.wsBind "127.0.0.1".
Join the halves over Tailscale
Bring Tailscale up, serve the relay privately — two doors, one purpose each — and get your phone onto the same tailnet.
Tailscale makes a private network between this machine and your phone — only your devices can reach the relay.
The sign-in URL prints in the terminal.
Standalone package from tailscale.com/download → sign in in the app.
Installer from tailscale.com/download/windows → sign in from the tray.
tailscale ip -4 prints a 100.x.y.z address.
Using the App Store build instead of the standalone package → its CLI isn't on PATH; wherever step 07 says tailscale, use /Applications/Tailscale.app/Contents/MacOS/Tailscale.
Two tailnet-only routes into the relay: the phone app uses :8444; :8443 is the optional Even AI door. Nothing becomes public — never use funnel.
‹port› = the wsPort from step 05 (47800 on fresh installs).
Run both from an Administrator PowerShell.
tailscale serve status shows both routes proxying to localhost:‹port›. Note the machine name ‹node›.‹tailnet›.ts.net from that output — step 09 uses it.
One route missing or pointing at the wrong backend → re-run just that route's command once more. Mac App Store Tailscale → use the full CLI path from step 06's note.
The phone must be on the same private network to reach the relay.
tailscale status on this machine lists the phone, and the phone's Tailscale app shows Connected.
Tailnet requires device approval → approve the phone at login.tailscale.com/admin/machines.
The app is the phone half — it reaches the relay at the tailnet address, authenticated by your token.
In the Even Realities app → Even Hub App Store → install + open OcuClaw → Relay Server: Address wss://‹node›.‹tailnet›.ts.net:8444 (exact machine name from step 07) · Token = the password from step 03 → tap Connect.
The app shows Connected and OpenClaw Status fills in (session, model).
The address must start wss:// (not ws://) and use :8444 — not :8443 (Even AI's door) and never the local ‹port› (loopback-only, unreachable from the phone). App shows a version screen saying it's too old → update OcuClaw from Even Hub.
See it on the glasses
One end-to-end check closes the loop. A reply on the G2 and you're done.
Proves the whole chain: phone → OpenClaw → glasses.
The reply is visible on the G2.
Reply visible in the app but glasses dark → wake the glasses (double-tap), reopen OcuClaw inside Even Hub, retry.
Spine complete.
Glasses live. Ask your agent for the extras — Soniox voice input, the Even AI wake word, easy bug reports.