openclaw browser
Gerencie a superfície de controle de navegador do OpenClaw e execute ações de navegador (ciclo de vida, perfis, abas, snapshots, capturas de tela, navegação, entrada, emulação de estado e depuração).
Relacionado:
- Ferramenta de navegador + API: Ferramenta de navegador
Flags comuns
--url <gatewayWsUrl>: URL WebSocket do Gateway (usa a configuração por padrão).--token <token>: token do Gateway (se necessário).--timeout <ms>: tempo limite da solicitação (ms).--expect-final: aguarda uma resposta final do Gateway.--browser-profile <name>: escolhe um perfil de navegador (padrão da configuração).--json: saída legível por máquina (quando compatível).
Início rápido (local)
browser({ action: "doctor" }).
Solução de problemas rápida
Sestart falhar com not reachable after start, investigue primeiro a prontidão do CDP. Se start e tabs funcionarem, mas open ou navigate falhar, o plano de controle do navegador está íntegro e a falha normalmente é a política SSRF de navegação.
Sequência mínima:
Ciclo de vida
doctor --deepadiciona uma sondagem de snapshot em tempo real. Ela é útil quando a prontidão básica do CDP está verde, mas você quer prova de que a aba atual pode ser inspecionada.- Para perfis
attachOnlye CDP remoto,openclaw browser stopfecha a sessão de controle ativa e limpa substituições temporárias de emulação, mesmo quando o OpenClaw não iniciou o processo do navegador por conta própria. - Para perfis locais gerenciados,
openclaw browser stopinterrompe o processo de navegador gerado. openclaw browser start --headlessse aplica apenas a essa solicitação de inicialização e somente quando o OpenClaw inicia um navegador local gerenciado. Ele não reescrevebrowser.headlessnem a configuração do perfil, e não faz nada para um navegador que já está em execução.- Em hosts Linux sem
DISPLAYouWAYLAND_DISPLAY, perfis locais gerenciados rodam em modo headless automaticamente, a menos queOPENCLAW_BROWSER_HEADLESS=0,browser.headless=falseoubrowser.profiles.<name>.headless=falsesolicite explicitamente um navegador visível.
Se o comando estiver ausente
Seopenclaw browser for um comando desconhecido, verifique plugins.allow em
~/.openclaw/openclaw.json.
Quando plugins.allow estiver presente, liste explicitamente o Plugin de navegador incluído,
a menos que a configuração já tenha um bloco browser raiz:
browser raiz explícito, por exemplo browser.enabled=true ou
browser.profiles.<name>, também ativa o Plugin de navegador incluído sob uma
lista de permissões de plugins restritiva.
Relacionado: Ferramenta de navegador
Perfis
Perfis são configurações nomeadas de roteamento de navegador. Na prática:openclaw: inicia ou anexa a uma instância dedicada do Chrome gerenciada pelo OpenClaw (diretório de dados do usuário isolado).user: controla sua sessão existente do Chrome com login por meio do Chrome DevTools MCP.- perfis CDP personalizados: apontam para um endpoint CDP local ou remoto.
Abas
tabs retorna primeiro suggestedTargetId, depois o tabId estável, como t1,
o rótulo opcional e o targetId bruto. Agentes devem passar
suggestedTargetId de volta para focus, close, snapshots e ações. Você pode
atribuir um rótulo com open --label, tab new --label ou tab label; rótulos,
IDs de abas, IDs de destino brutos e prefixos exclusivos de ID de destino são todos aceitos.
O campo da solicitação ainda se chama targetId por compatibilidade, mas aceita
essas referências de aba. Trate IDs de destino brutos como identificadores de diagnóstico, não como memória
durável do agente.
Quando o Chromium substitui o destino bruto subjacente durante uma navegação ou envio
de formulário, o OpenClaw mantém o tabId/rótulo estável anexado à aba substituta
quando consegue comprovar a correspondência. IDs de destino brutos permanecem voláteis; prefira
suggestedTargetId.
Snapshot / captura de tela / ações
Snapshot:--full-pageé apenas para capturas de página; ele não pode ser combinado com--refou--element.- Perfis
existing-session/useroferecem suporte a capturas de tela de página e capturas de tela--refa partir da saída de snapshot, mas não a capturas de tela CSS--element. --labelssobrepõe as referências do snapshot atual na captura de tela. Em perfis baseados em Playwright, ele funciona com--full-page(sobreposição de rótulos em página inteira),--ref(sobreposição de rótulos em recorte de elemento por referência ARIA) e--element(sobreposição de rótulos em recorte de elemento por seletor CSS); nos modos de recorte de elemento, os rótulos são projetados em relação ao elemento. A resposta também inclui um arrayannotationscom a caixa delimitadora de cada referência. Cada item temref,number,role,nameopcional ebox: {x, y, width, height}; as coordenadas estão no espaço da imagem capturada (viewport / página inteira / relativo ao elemento). O campo é omitido quando está vazio. Perfisexisting-sessionrenderizam uma sobreposição chrome-mcp nas capturas de tela de página, mas não usam o auxiliar de projeção do Playwright e não incluemannotations; capturas de tela CSS--elementnão são compatíveis nesse caso. Sem Playwright ou chrome-mcp, capturas de tela com rótulos não estão disponíveis. Versões anteriores ignoravam--full-page,--refe--elementem capturas de tela rotuladas do Playwright e sempre retornavam uma captura de viewport; capturas de tela rotuladas agora respeitam esses escopos.snapshot --urlsanexa destinos de links descobertos a snapshots de IA para que agentes possam escolher destinos de navegação direta em vez de inferir apenas pelo texto do link.
evaluate --fn aceita o código-fonte de uma função, uma expressão ou um corpo de instruções.
Corpos de instruções são encapsulados como funções assíncronas, então use return para o valor
que você quer receber de volta. Use evaluate --timeout-ms <ms> quando a função no lado da página puder
precisar de mais tempo que o tempo limite padrão de avaliação.
Respostas de ação retornam o targetId bruto atual depois de uma substituição de página
acionada por ação quando o OpenClaw consegue comprovar a aba substituta. Scripts ainda devem
armazenar e passar suggestedTargetId/rótulos para fluxos de trabalho de longa duração.
Auxiliares de arquivo + diálogo:
/tmp/openclaw/downloads por padrão, ou a raiz temporária
configurada). Use waitfordownload ou download quando o agente precisar aguardar um
arquivo específico e retornar seu caminho; esses aguardadores explícitos controlam o próximo download.
Uploads aceitam arquivos da raiz temporária de uploads do OpenClaw e mídia de entrada
gerenciada pelo OpenClaw, incluindo referências media://inbound/<id> e
media/inbound/<id> relativas ao sandbox. Referências de mídia aninhadas, travessia e caminhos
locais arbitrários continuam rejeitados.
Quando uma ação abre uma caixa de diálogo modal, a resposta da ação retorna
blockedByDialog com browserState.dialogs.pending; passe --dialog-id para
respondê-la diretamente. Diálogos tratados fora do OpenClaw aparecem em
browserState.dialogs.recent.
Estado e armazenamento
Viewport + emulação:Depuração
Chrome existente via MCP
Use o perfiluser integrado ou crie seu próprio perfil existing-session:
--cdp-url para que o Chrome MCP se anexe a esse endpoint.
Para Docker, Browserless ou outras configurações remotas em que a semântica do Chrome MCP não é necessária, use um
perfil CDP.
Limites atuais de existing-session:
- ações orientadas por snapshots usam referências, não seletores CSS
browser.actionTimeoutMsdefine por padrão solicitaçõesactcompatíveis para 60000 ms quando os chamadores omitemtimeoutMs; otimeoutMspor chamada ainda prevalece.clické apenas clique esquerdotypenão oferece suporte aslowly=truepressnão oferece suporte adelayMshover,scrollintoview,drag,select,filleevaluaterejeitam substituições de tempo limite por chamadaselectoferece suporte a apenas um valorwait --load networkidlenão é compatível com perfis de sessão existentes (funciona em CDP gerenciado e bruto/remoto)- uploads de arquivos exigem
--ref/--input-ref, não oferecem suporte a--elementCSS e atualmente oferecem suporte a um arquivo por vez - hooks de diálogo não oferecem suporte a
--timeout - capturas de tela oferecem suporte a capturas de página e
--ref, mas não a--elementCSS responsebody, interceptação de download, exportação de PDF e ações em lote ainda exigem um navegador gerenciado ou um perfil CDP bruto
Controle remoto do navegador (proxy de host Node)
Se o Gateway for executado em uma máquina diferente do navegador, execute um host Node na máquina que tem Chrome/Brave/Edge/Chromium. O Gateway encaminhará as ações do navegador para esse Node (não é necessário um servidor separado de controle do navegador). Usegateway.nodes.browser.mode para controlar o roteamento automático e gateway.nodes.browser.node para fixar um Node específico se vários estiverem conectados.
Segurança + configuração remota: Ferramenta de navegador, Acesso remoto, Tailscale, Segurança