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
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
| Recurso | HTML bruto | Snapshot ARIA | ZeroDOM |
|---|---|---|---|
| Tokens por página (típico) | ~120.000 | ~8.000 | ~2.000 |
| IDs de nó únicos | Não | Não | Sim |
| Estável entre refatorações | Não | Raramente | Sim (#id) |
| Seletores no contexto | Sim | Sim | Nunca |
| Saída determinística | N/D | Não | Sim |
| Latência | N/D | ~50ms | 10-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.