ZeroDOM

Analisa uma página web ao vivo em um grafo de interação otimizado para tokens para agentes de navegador de IA — 71% menos tokens que o modo de snapshot ARIA do Playwright. Cada seletor CSS é verificado quanto à unicidade real em todo o documento antes de ser retornado, não presumido a partir de um atributo.

Documentação

Sugerir uma edição

99,0%

precisão na resolução de seletores

98,9%

economia mediana de tokens em relação ao HTML bruto

10-30ms

análise determinística, sem chamada de modelo

Dois fluxos de trabalho, um grafo

A análise é idêntica em ambos os casos: uma lista plana de todos os elementos com os quais a página pode interagir. A diferença está no que você envia para ele.

Engenheiros de agentes de IA e automação

Alimente um grafo denso em tokens no seu loop de LLM (LangChain, LlamaIndex ou um loop feito à mão) como texto compacto ou um fluxo de nós JSONL. Os identificadores numerados permanecem estáveis entre turnos; o seletor é resolvido do seu lado, nunca no contexto.

  • 98,9% menos tokens que HTML bruto
  • JSONL direto no loop: zerodom inspect --pipe
  • Servidor MCP para Claude / Cursor, sem barreiras de bots headless

Operadores de segurança e caçadores de bug bounty

Dirija seu Chrome real e autenticado pela extensão para acessar superfícies autenticadas, ou inicie um Chrome descartável sem deixar rastros por um pipe CDP bruto. Compare a superfície analisada com regras determinísticas que não fazem chamadas de rede próprias.

  • Sessão real via relay + extensão (contorna barreiras de bots)
  • Reconhecimento sem deixar rastros: zerodom inspect --stealth
  • Regras determinísticas no lado do cliente: zerodom scan

Pelo terminal

Nativo para Unix. Leia uma página, transmita seus nós como JSONL ou escaneie uma lista de alvos autorizados contra seu conjunto de regras: entrada via stdin, linhas estruturadas na saída, prontas para jq ou um loop de agente.

# Token-dense interaction graph + a savings report
zerodom inspect https://example.com

# Flat node array as JSONL, one node per line — straight into an agent loop
zerodom inspect --pipe https://example.com

# Scan targets you are authorized to test against surfaces.yaml; findings as JSONL
cat targets.txt | zerodom scan -

# Zero-footprint recon: throwaway-profile Chrome over a CDP pipe, no debug port
zerodom inspect --stealth https://example.com

--stealth inicia um Chrome novo com perfil descartável e fala CDP pelos descritores de arquivo herdados 3 e 4, sem porta de depuração localhost, sem deixar nada no disco. Para usar seu navegador real e autenticado (páginas autenticadas, sessões existentes), use a extensão do Chrome e o relay.

O problema

Um agente que dirige um navegador tem dois espaços de ação hoje. Ambos são ruins. Pixels são lentos e produzem coordenadas que ficam obsoletas ao rolar. A árvore de acessibilidade é mais barata, mas enorme, sem identificadores estáveis. ZeroDOM é uma terceira opção.

Veja em ação

Analise qualquer página e obtenha um grafo plano de todos os elementos clicáveis e preenchíveis. O modelo vê identificadores numerados, não seletores CSS, não HTML bruto, não coordenadas.

<form class="login-form" id="auth">
  <div class="field">
    <label for="email">Email</label>
    <input type="email" id="email" required>
  </div>
  <div class="field">
    <label for="pass">Password</label>
    <input type="password" id="pass">
  </div>
  <button class="btn-primary">Sign In</button>
  <a href="/forgot">Forgot password?</a>
</form>
<nav class="sidebar">
  <a href="/dashboard">Dashboard</a>
  <a href="/settings">Settings</a>
</nav>
<!-- 200+ more lines -->
[01] textbox 'Email'
[02] textbox 'Password'
[03] button 'Sign In'
[04] link 'Forgot password?'
[05] link 'Dashboard'
[06] link 'Settings'

O modelo vê [03] e clica. ZeroDOM resolve button.btn-primary do seu lado; o seletor nunca entra no contexto.

97% menos tokens para as mesmas seis ações (~3.000 → ~80)

Como se compara

RecursoHTML brutoSnapshot ARIAZeroDOM
Tokens por página (típico)~120.000~8.000~2.000
IDs de nó únicosNãoNãoSim
Estável entre refatoraçõesNãoRaramenteSim (#id)
Seletores no contextoSimSimNunca
Saída determinísticaN/DNãoSim
LatênciaN/D~50ms10-30ms

Como funciona

O seletor nunca sai do seu processo. Um modelo só vê um ID de nó como [03]; o caminho CSS que realmente endereça o elemento vive em selector_map(), do seu lado, e é resolvido imediatamente antes do clique.

1

Página ao vivo

uma Playwright Page, ou HTML que você já tem

2

ZeroDOMParser

uma passagem DFS: podar, coletar, rotular

3

InteractionGraph

texto compacto ou JSON, enviado ao modelo

4

Modelo escolhe um nó

ex.: clique [03], nunca um seletor

5

selector_map()[node]

resolvido do seu lado, não do modelo

6

Agir

clique/preencha via Playwright, depois releia

Arquitetura

Veja Arquitetura para o design completo do sistema, fluxo de dados e economia de tokens.

Comece agora

Escolha seu caminho:

[

Quero experimentar

Analise uma página e leia o grafo em três linhas.

Início rápido](https://zerodom.vexralabs.com/docs/quickstart)[

Quero construir um agente

Passo a passo](https://zerodom.vexralabs.com/docs/walkthrough)[

Quero integrar

Conecte ZeroDOM ao Claude Desktop, Cursor ou seu próprio loop de agente.

Configuração do MCP](https://zerodom.vexralabs.com/docs/mcp-setup)

Explore a documentação

[

Arquitetura

Visão geral do sistema, fluxo de dados, internals do parser e economia de tokens.

](https://zerodom.vexralabs.com/docs/architecture)[

Aplicações

Testes de QA, testes de penetração, bug bounty, automação e extração de dados.

](https://zerodom.vexralabs.com/docs/applications)[

Vendo o grafo

Capturas de tela, relatórios HTML e a barra de direção na página.

](https://zerodom.vexralabs.com/docs/seeing-the-graph)[

Resolução de rótulos

A ordem de prioridade em nove etapas para nomear controles.

](https://zerodom.vexralabs.com/docs/label-resolution)[

Auditoria de seletores

Verifique seletores existentes contra uma página ao vivo.

](https://zerodom.vexralabs.com/docs/selector-audit)[

Integrações

LangChain, OpenAI, Anthropic, Vercel AI SDK, CrewAI.

](https://zerodom.vexralabs.com/docs/integrations)[

Reconhecimento para bug bounty

Pipe Chrome furtivo, varredura de superfície e o sandbox de isolamento.

](https://zerodom.vexralabs.com/docs/bug-bounty)