macOS companion app
Gateway no macOS
O OpenClaw.app não inclui o Node/Bun nem o runtime do Gateway. O aplicativo para macOS
espera uma instalação externa da CLI openclaw, não inicia o Gateway como
um processo filho e gerencia um serviço launchd por usuário para manter o Gateway
em execução (ou se conecta a um Gateway local que já esteja em execução).
Configuração automática
Em um Mac novo, escolha This Mac durante a integração inicial. O aplicativo executa seu
script de instalação assinado e incluído antes do assistente do Gateway: ele instala um
runtime do Node no espaço do usuário e a CLI openclaw correspondente em ~/.openclaw,
depois instala e inicia o serviço launchd por usuário. Esse caminho não requer
Terminal, Homebrew nem acesso de administrador.
O aplicativo inclui apenas o script de instalação, não o payload do Node ou do Gateway; a configuração requer uma conexão com a internet para baixar o runtime e o pacote correspondente do OpenClaw.
Recuperação manual
O Node 24 é recomendado para uma instalação manual; o Node 22.19+ também funciona. Instale
o openclaw globalmente:
npm install -g openclaw@<version>Use Retry setup após uma falha na configuração automática. Se ela ainda falhar, instale a CLI manualmente com o comando acima e escolha Check again na integração inicial.
Launchd (Gateway como LaunchAgent)
Rótulo: ai.openclaw.gateway (perfil padrão) ou ai.openclaw.<profile>
para um perfil nomeado.
Localização do plist (por usuário): ~/Library/LaunchAgents/ai.openclaw.gateway.plist
(ou ai.openclaw.<profile>.plist).
O aplicativo para macOS é responsável pela instalação/atualização do LaunchAgent para o perfil padrão no
modo Local. A CLI também pode instalá-lo diretamente: openclaw gateway install
(perfis nomeados são selecionados pela variável de ambiente OPENCLAW_PROFILE).
Comportamento:
- "OpenClaw Active" ativa/desativa o LaunchAgent.
- Encerrar o aplicativo não interrompe o Gateway (o launchd o mantém ativo).
- Se um Gateway já estiver em execução na porta configurada, o aplicativo se conecta a ele em vez de iniciar um novo.
Registro em log:
- stdout do launchd:
~/Library/Logs/openclaw/gateway.log(os perfis usamgateway-<profile>.log) - stderr do launchd: suprimido
- Se o host entrar em um ciclo com ocorrências repetidas de
EADDRINUSEou reinicializações rápidas, verifique se há LaunchAgentsai.openclaw.gateway/ai.openclaw.nodeduplicados e a solução alternativa do marcador do launchd em solução de problemas do Gateway.
Compatibilidade de versões
O aplicativo para macOS verifica a versão do Gateway em relação à sua própria versão. A integração inicial executa automaticamente a configuração gerenciada quando uma CLI existente está ausente ou é incompatível. Use Retry setup para repetir a instalação ou Check again após reparar uma CLI externa.
Diretório de estado no macOS
Mantenha o estado do OpenClaw em um disco local e não sincronizado. Evite o iCloud Drive e outras pastas sincronizadas com a nuvem; a latência da sincronização e os bloqueios de arquivos podem afetar sessões, credenciais e o estado do Gateway.
Defina OPENCLAW_STATE_DIR como um caminho local somente quando precisar de uma substituição.
openclaw doctor alerta sobre caminhos de estado comuns sincronizados com a nuvem e recomenda
voltar para o armazenamento local. Consulte
variáveis de ambiente e
Doctor.
Depurar a conectividade do aplicativo
Use a CLI de depuração do macOS a partir de um checkout do código-fonte para testar a mesma lógica de handshake e descoberta do WebSocket do Gateway usada pelo aplicativo:
cd apps/macosswift run openclaw-mac connect --jsonswift run openclaw-mac discover --timeout 3000 --jsonconnect aceita --url, --token, --timeout, --probe e --json
(além de substituições da identidade do cliente; execute com --help para ver a lista completa).
discover aceita --timeout, --json e --include-local. Compare
a saída da descoberta com openclaw gateway discover --json quando precisar
separar a descoberta da CLI de problemas de conexão no aplicativo.
Verificação rápida
openclaw --version OPENCLAW_SKIP_CHANNELS=1 \OPENCLAW_SKIP_CANVAS_HOST=1 \openclaw gateway --port 18999 --bind loopbackEm seguida:
openclaw gateway call health --url ws://127.0.0.1:18999 --timeout 3000