App Android (Nó)
Snapshot de suporte
- Função: app de nó complementar (o Android não hospeda o Gateway).
- Gateway obrigatório: sim (execute no macOS, Linux ou Windows via WSL2).
- Instalação: Primeiros passos + Pareamento.
- Gateway: Runbook + Configuração.
- Protocolos: Protocolo do Gateway (nós + plano de controle).
Controle do sistema
O controle do sistema (launchd/systemd) fica no host do Gateway. Veja Gateway.Runbook de conexão
App de nó Android ⇄ (mDNS/NSD + WebSocket) ⇄ Gateway O Android se conecta diretamente ao WebSocket do Gateway (padrãows://<host>:18789) e usa o pareamento de propriedade do Gateway.
Pré-requisitos
- Voce consegue executar o Gateway na máquina “master”.
- O dispositivo/emulador Android consegue alcançar o WebSocket do gateway:
- Mesma LAN com mDNS/NSD, ou
- Mesmo tailnet do Tailscale usando Wide-Area Bonjour / DNS-SD unicast (veja abaixo), ou
- Host/porta do gateway manual (fallback)
- Voce consegue executar a CLI (
openclaw) na máquina do gateway (ou via SSH).
1. Inicie o Gateway
listening on ws://0.0.0.0:18789
- Defina
gateway.bind: "tailnet"em~/.openclaw/openclaw.jsonno host do gateway. - Reinicie o Gateway / app de menubar do macOS.
2. Verifique a descoberta (opcional)
A partir da máquina do gateway:Descoberta via DNS-SD unicast no tailnet (Viena ⇄ Londres)
A descoberta NSD/mDNS do Android não atravessa redes. Se o nó Android e o gateway estiverem em redes diferentes, mas conectados via Tailscale, use Wide-Area Bonjour / DNS-SD unicast:- Configure uma zona DNS-SD (exemplo
openclaw.internal.) no host do gateway e publique registros_openclaw-gw._tcp. - Configure split DNS do Tailscale para o dominio escolhido apontando para esse servidor DNS.
3. Conecte a partir do Android
No app Android:- O app mantém a conexão com o gateway ativa por meio de um serviço em primeiro plano (notificação persistente).
- Abra Configurações.
- Em Gateways descobertos, selecione seu gateway e toque em Conectar.
- Se o mDNS estiver bloqueado, use Avançado → Gateway manual (host + porta) e Conectar (Manual).
- Endpoint manual (se habilitado), caso contrário
- O ultimo gateway descoberto (melhor esforço).
4. Aprove o pareamento (CLI)
Na máquina do gateway:5. Verifique se o nó esta conectado
-
Via status dos nós:
-
Via Gateway:
6. Chat + histórico
A aba Chat do nó Android usa a chave de sessão primária do gateway (main), portanto o histórico e as respostas são compartilhados com o WebChat e outros clientes:
- Histórico:
chat.history - Enviar:
chat.send - Atualizações push (melhor esforço):
chat.subscribe→event:"chat"
7. Canvas + câmera
Host do Canvas do Gateway (recomendado para conteudo web)
Se voce quiser que o nó mostre HTML/CSS/JS reais que o agente pode editar em disco, aponte o nó para o host do Canvas do Gateway. Observação: os nodes carregam o canvas do servidor HTTP do Gateway (mesma porta quegateway.port, padrão 18789).
-
Crie
~/.openclaw/workspace/canvas/index.htmlno host do gateway. - Navegue o nó ate ele (LAN):
.local, por exemplo http://<gateway-magicdns>:18793/__openclaw__/canvas/.
Este servidor injeta um cliente de live-reload no HTML e recarrega em mudanças de arquivo.
O host A2UI fica em http://<gateway-host>:18793/__openclaw__/a2ui/.
Comandos do Canvas (somente em primeiro plano):
canvas.eval,canvas.snapshot,canvas.navigate(use{"url":""}ou{"url":"/"}para retornar ao scaffold padrão).canvas.snapshotretorna{ format, base64 }(padrãoformat="jpeg").- A2UI:
canvas.a2ui.push,canvas.a2ui.reset(canvas.a2ui.pushJSONLalias legado)
camera.snap(jpg)camera.clip(mp4)