Para configuração, ajustes e solução de problemas, consulte Browser. Esta página é a referência para a API HTTP de controle local, a CLIDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw browser
e padrões de script (snapshots, refs, esperas, fluxos de depuração).
API de controle (opcional)
Apenas para integrações locais, o Gateway expõe uma pequena API HTTP de local loopback:- Status/iniciar/parar:
GET /,POST /start,POST /stop - Abas:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Snapshot/captura de tela:
GET /snapshot,POST /screenshot - Ações:
POST /navigate,POST /act - Hooks:
POST /hooks/file-chooser,POST /hooks/dialog - Downloads:
POST /download,POST /wait/download - Permissões:
POST /permissions/grant - Depuração:
GET /console,POST /pdf - Depuração:
GET /errors,GET /requests,POST /trace/start,POST /trace/stop,POST /highlight - Rede:
POST /response/body - Estado:
GET /cookies,POST /cookies/set,POST /cookies/clear - Estado:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Configurações:
POST /set/offline,POST /set/headers,POST /set/credentials,POST /set/geolocation,POST /set/media,POST /set/timezone,POST /set/locale,POST /set/device
?profile=<name>. POST /start?headless=true solicita uma
inicialização headless pontual para perfis gerenciados locais sem alterar a configuração
persistida do navegador; perfis attach-only, CDP remoto e existing-session rejeitam
essa substituição porque o OpenClaw não inicia esses processos de navegador.
Se a autenticação do gateway por segredo compartilhado estiver configurada, as rotas HTTP do navegador também exigem autenticação:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>ou autenticação HTTP Basic com essa senha
- Esta API de navegador local loopback independente não consome cabeçalhos de identidade trusted-proxy ou Tailscale Serve.
- Se
gateway.auth.modefornoneoutrusted-proxy, essas rotas de navegador de local loopback não herdam esses modos com identidade; mantenha-as apenas em local loopback.
Contrato de erro de /act
POST /act usa uma resposta de erro estruturada para validação no nível da rota e
falhas de política:
code:
ACT_KIND_REQUIRED(HTTP 400):kindestá ausente ou não é reconhecido.ACT_INVALID_REQUEST(HTTP 400): a carga da ação falhou na normalização ou validação.ACT_SELECTOR_UNSUPPORTED(HTTP 400):selectorfoi usado com um tipo de ação sem suporte.ACT_EVALUATE_DISABLED(HTTP 403):evaluate(ouwait --fn) está desativado pela configuração.ACT_TARGET_ID_MISMATCH(HTTP 403):targetIdde nível superior ou em lote entra em conflito com o destino da solicitação.ACT_EXISTING_SESSION_UNSUPPORTED(HTTP 501): a ação não é compatível com perfis existing-session.
{ "error": "<message>" } sem um
campo code.
Requisito do Playwright
Alguns recursos (navigate/act/snapshot de IA/snapshot por função, capturas de tela de elementos, PDF) exigem Playwright. Se o Playwright não estiver instalado, esses endpoints retornam um erro 501 claro. O que ainda funciona sem o Playwright:- Snapshots ARIA
- Snapshots de acessibilidade em estilo de função (
--interactive,--compact,--depth,--efficient) quando um WebSocket CDP por aba está disponível. Isso é um fallback para inspeção e descoberta de refs; o Playwright continua sendo o principal mecanismo de ações. - Capturas de tela de página para o navegador
openclawgerenciado quando um WebSocket CDP por aba está disponível - Capturas de tela de página para perfis
existing-session/ Chrome MCP - Capturas de tela baseadas em refs de
existing-session(--ref) a partir da saída de snapshot
navigateact- Snapshots de IA que dependem do formato nativo de snapshot de IA do Playwright
- Capturas de tela de elementos por seletor CSS (
--element) - exportação completa de PDF do navegador
--full-page; a rota retorna fullPage is not supported for element screenshots.
Se você vir Playwright is not available in this gateway build, o Gateway empacotado
não tem a dependência principal de runtime do navegador. Reinstale ou atualize o
OpenClaw e reinicie o gateway. Para Docker, instale também os binários do navegador
Chromium conforme mostrado abaixo.
Instalação do Playwright no Docker
Se seu Gateway roda no Docker, evitenpx playwright (conflitos de substituição do npm).
Use a CLI incluída em vez disso:
PLAYWRIGHT_BROWSERS_PATH (por exemplo,
/home/node/.cache/ms-playwright) e garanta que /home/node seja persistido via
OPENCLAW_HOME_VOLUME ou um bind mount. O OpenClaw detecta automaticamente o
Chromium persistido no Linux. Consulte Docker.
Como funciona (interno)
Um pequeno servidor de controle local loopback aceita solicitações HTTP e se conecta a navegadores baseados em Chromium via CDP. Ações avançadas (click/type/snapshot/PDF) passam pelo Playwright sobre CDP; quando o Playwright está ausente, apenas operações que não dependem do Playwright ficam disponíveis. O agente vê uma interface estável enquanto navegadores locais/remotos e perfis são trocados livremente por baixo.Referência rápida da CLI
Todos os comandos aceitam--browser-profile <name> para direcionar um perfil específico, e --json para saída legível por máquina.
Básico: status, abas, abrir/focar/fechar
Básico: status, abas, abrir/focar/fechar
Inspeção: captura de tela, snapshot, console, erros, solicitações
Inspeção: captura de tela, snapshot, console, erros, solicitações
Ações: navegar, clicar, digitar, arrastar, esperar, avaliar
Ações: navegar, clicar, digitar, arrastar, esperar, avaliar
Estado: cookies, armazenamento, offline, cabeçalhos, geo, dispositivo
Estado: cookies, armazenamento, offline, cabeçalhos, geo, dispositivo
uploadedialogsão chamadas de preparação; execute-as antes do click/press que aciona o seletor/diálogo.click/type/etc exigem umarefdesnapshot(numérica12, ref de funçãoe12, ou ref ARIA acionávelax12). Seletores CSS intencionalmente não são compatíveis com ações. Useclick-coordsquando a posição visível na viewport for o único destino confiável.- Caminhos de download, trace e upload são restritos às raízes temporárias do OpenClaw:
/tmp/openclaw{,/downloads,/uploads}(fallback:${os.tmpdir()}/openclaw/...). uploadtambém pode definir inputs de arquivo diretamente via--input-refou--element.
suggestedTargetId de tabs em scripts.
Visão rápida das flags de snapshot:
--format ai(padrão com Playwright): snapshot de IA com refs numéricas (aria-ref="<n>").--format aria: árvore de acessibilidade com refsaxN. Quando o Playwright está disponível, o OpenClaw vincula refs com IDs DOM de backend à página ao vivo para que ações posteriores possam usá-las; caso contrário, trate a saída apenas como inspeção.--efficient(ou--mode efficient): predefinição compacta de snapshot por função. Definabrowser.snapshotDefaults.mode: "efficient"para tornar isso o padrão (consulte Configuração do Gateway).--interactive,--compact,--depth,--selectorforçam um snapshot por função com refsref=e12.--frame "<iframe>"limita snapshots por função a um iframe.--labelsadiciona uma captura de tela apenas da viewport com rótulos de ref sobrepostos (imprimeMEDIA:<path>).--urlsacrescenta destinos de links descobertos aos snapshots de IA.
Snapshots e refs
O OpenClaw oferece suporte a dois estilos de “snapshot”:-
Snapshot de IA (refs numéricas):
openclaw browser snapshot(padrão;--format ai)- Saída: um snapshot de texto que inclui refs numéricas.
- Ações:
openclaw browser click 12,openclaw browser type 23 "hello". - Internamente, a ref é resolvida via
aria-refdo Playwright.
-
Snapshot por função (refs de função como
e12):openclaw browser snapshot --interactive(ou--compact,--depth,--selector,--frame)- Saída: uma lista/árvore baseada em função com
[ref=e12](e opcionalmente[nth=1]). - Ações:
openclaw browser click e12,openclaw browser highlight e12. - Internamente, a ref é resolvida via
getByRole(...)(maisnth()para duplicatas). - Adicione
--labelspara incluir uma captura de tela da viewport com rótulose12sobrepostos. - Adicione
--urlsquando o texto do link for ambíguo e o agente precisar de destinos de navegação concretos.
- Saída: uma lista/árvore baseada em função com
-
Snapshot ARIA (refs ARIA como
ax12):openclaw browser snapshot --format aria- Saída: a árvore de acessibilidade como nós estruturados.
- Ações:
openclaw browser click ax12funciona quando o caminho de snapshot consegue vincular a ref por meio do Playwright e de IDs DOM de backend do Chrome.
-
Se o Playwright não estiver disponível, snapshots ARIA ainda podem ser úteis para
inspeção, mas as refs podem não ser acionáveis. Faça um novo snapshot com
--format aiou--interactivequando precisar de refs de ação. -
Prova Docker para o caminho de fallback raw-CDP:
pnpm test:docker:browser-cdp-snapshotinicia o Chromium com CDP, executabrowser doctor --deepe verifica se snapshots por função incluem URLs de links, clicáveis promovidos por cursor e metadados de iframe.
- Refs não são estáveis entre navegações; se algo falhar, execute
snapshotnovamente e use uma ref nova. /actretorna otargetIdbruto atual após uma substituição disparada por ação quando consegue comprovar a aba substituta. Continue usando ids/rótulos de abas estáveis para comandos de acompanhamento.- Se o snapshot de funções tiver sido obtido com
--frame, as refs de função ficam escopadas a esse iframe até o próximo snapshot de funções. - Refs
axNdesconhecidas ou obsoletas falham rapidamente em vez de cair no seletoraria-refdo Playwright. Execute um snapshot novo na mesma aba quando isso acontecer.
Recursos avançados de espera
Você pode esperar por mais do que apenas tempo/texto:- Esperar por URL (globs compatíveis com Playwright):
openclaw browser wait --url "**/dash"
- Esperar por estado de carregamento:
openclaw browser wait --load networkidle
- Esperar por um predicado JS:
openclaw browser wait --fn "window.ready===true"
- Esperar um seletor ficar visível:
openclaw browser wait "#main"
Fluxos de trabalho de depuração
Quando uma ação falhar (por exemplo, “not visible”, “strict mode violation”, “covered”):openclaw browser snapshot --interactive- Use
click <ref>/type <ref>(prefira refs de função no modo interativo) - Se ainda falhar:
openclaw browser highlight <ref>para ver o que o Playwright está mirando - Se a página se comportar de forma estranha:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Para depuração profunda: grave um trace:
openclaw browser trace start- reproduza o problema
openclaw browser trace stop(imprimeTRACE:<path>)
Saída JSON
--json é para scripts e ferramentas estruturadas.
Exemplos:
refs mais um pequeno bloco stats (lines/chars/refs/interactive) para que ferramentas possam raciocinar sobre tamanho e densidade do payload.
Controles de estado e ambiente
Eles são úteis para fluxos de trabalho do tipo “fazer o site se comportar como X”:- Cookies:
cookies,cookies set,cookies clear - Armazenamento:
storage local|session get|set|clear - Offline:
set offline on|off - Cabeçalhos:
set headers --headers-json '{"X-Debug":"1"}'(o legadoset headers --json '{"X-Debug":"1"}'continua compatível) - Autenticação básica HTTP:
set credentials user pass(ou--clear) - Geolocalização:
set geo <lat> <lon> --origin "https://example.com"(ou--clear) - Mídia:
set media dark|light|no-preference|none - Fuso horário / localidade:
set timezone ...,set locale ... - Dispositivo / viewport:
set device "iPhone 14"(predefinições de dispositivo do Playwright)set viewport 1280 720
Segurança e privacidade
- O perfil do navegador openclaw pode conter sessões autenticadas; trate-o como sensível.
browser act kind=evaluate/openclaw browser evaluateewait --fnexecutam JavaScript arbitrário no contexto da página. Injeção de prompt pode direcionar isso. Desative combrowser.evaluateEnabled=falsese você não precisar desse recurso.- Para logins e observações anti-bot (X/Twitter etc.), consulte Login no navegador + postagem no X/Twitter.
- Mantenha o host Gateway/Node privado (loopback ou apenas tailnet).
- Endpoints CDP remotos são poderosos; crie túneis e proteja-os.
Relacionados
- Navegador - visão geral, configuração, perfis, segurança
- Login no navegador - entrar em sites
- Solução de problemas do navegador no Linux
- Solução de problemas do navegador no WSL2