coderClaw

iOS App (Node)

Availability: internal preview. The iOS app is not publicly distributed yet.

What it does

Requirements

Quick start (pair + connect)

  1. Start the Gateway:
coderclaw gateway --port 18789
  1. In the iOS app, open Settings and pick a discovered gateway (or enable Manual Host and enter host/port).

  2. Approve the pairing request on the gateway host:

coderclaw nodes pending
coderclaw nodes approve <requestId>
  1. Verify connection:
coderclaw nodes status
coderclaw gateway call node.list --params "{}"

Discovery paths

Bonjour (LAN)

The Gateway advertises _coderclaw-gw._tcp on local.. The iOS app lists these automatically.

Tailnet (cross-network)

If mDNS is blocked, use a unicast DNS-SD zone (choose a domain; example: coderclaw.internal.) and Tailscale split DNS. See Bonjour for the CoreDNS example.

Manual host/port

In Settings, enable Manual Host and enter the gateway host + port (default 18789).

Canvas + A2UI

The iOS node renders a WKWebView canvas. Use node.invoke to drive it:

coderclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://<gateway-host>:18789/__coderclaw__/canvas/"}'

Notes:

Canvas eval / snapshot

coderclaw nodes invoke --node "iOS Node" --command canvas.eval --params '{"javaScript":"(() => { const {ctx} = window.__coderclaw; ctx.clearRect(0,0,innerWidth,innerHeight); ctx.lineWidth=6; ctx.strokeStyle=\"#ff2d55\"; ctx.beginPath(); ctx.moveTo(40,40); ctx.lineTo(innerWidth-40, innerHeight-40); ctx.stroke(); return \"ok\"; })()"}'
coderclaw nodes invoke --node "iOS Node" --command canvas.snapshot --params '{"maxWidth":900,"format":"jpeg"}'

Voice wake + talk mode

Common errors