ZeroDOM

Convierte una página web en vivo en un grafo de interacción optimizado para tokens para agentes de navegación de IA — 71% menos tokens que el modo de instantánea ARIA de Playwright. Cada selector CSS se verifica para asegurar su unicidad real en todo el documento antes de devolverse, no se asume a partir de un atributo.

Documentación

Sugerir una edición

99.0%

precisión de resolución de selectores

98.9%

ahorro mediano de tokens frente a HTML sin procesar

10-30ms

análisis determinista, sin llamada de modelo

Dos flujos de trabajo, un grafo

El análisis es idéntico en ambos casos: una lista plana de cada elemento sobre el que la página puede actuar. Lo que cambia es el destino de esa lista.

Ingenieros de agentes de IA y automatización

Introduce un grafo denso en tokens en tu bucle de LLM (LangChain, LlamaIndex o un bucle propio) como texto compacto o un flujo de nodos JSONL. Los identificadores numerados permanecen estables entre turnos; el selector se resuelve en tu lado, nunca en el contexto.

  • 98.9% menos tokens que HTML sin procesar
  • JSONL directo al bucle: zerodom inspect --pipe
  • Servidor MCP para Claude / Cursor, sin muros de bots sin cabeza

Operadores de seguridad y cazadores de recompensas por bugs

Conduce tu Chrome real con sesión iniciada a través de la extensión para alcanzar superficies autenticadas, o lanza un Chrome desechable sin huella sobre una tubería CDP sin procesar. Compara la superficie analizada con reglas deterministas que no realizan llamadas de red propias.

  • Sesión real mediante el relé + extensión (evita muros de bots)
  • Reconocimiento sin huella: zerodom inspect --stealth
  • Reglas deterministas del lado del cliente: zerodom scan

Desde la terminal

Nativo de Unix. Lee una página, transmite sus nodos como JSONL o escanea una lista de objetivos autorizados contra tu conjunto de reglas: entrada por stdin, líneas estructuradas por salida, listo para jq o un bucle 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 lanza un Chrome nuevo con perfil desechable y habla CDP a través de los descriptores de archivo heredados 3 y 4, sin puerto de depuración localhost y sin dejar nada en disco. Para conducir tu navegador real con sesión iniciada (páginas autenticadas, sesiones existentes), usa la extensión de Chrome y el relé.

El problema

Un agente que conduce un navegador tiene hoy dos espacios de acción. Ambos son malos. Los píxeles son lentos y producen coordenadas que quedan obsoletas al hacer scroll. El árbol de accesibilidad es más barato pero enorme, sin identificadores estables. ZeroDOM es una tercera opción.

Véalo en acción

Analiza cualquier página y obtén un grafo plano de cada elemento clicable y rellenable. El modelo ve identificadores numerados, no selectores CSS, no HTML sin procesar, no 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'

El modelo ve [03] y hace clic. ZeroDOM resuelve button.btn-primary en tu lado, el selector nunca entra en el contexto.

97% menos tokens para las mismas seis acciones (~3,000 → ~80)

Cómo se compara

CaracterísticaHTML sin procesarInstantánea ARIAZeroDOM
Tokens por página (típico)~120,000~8,000~2,000
Identificadores de nodo únicosNoNoSí
Estable entre refactorizacionesNoRaramenteSí (#id)
Selectores en contextoSíSíNunca
Salida deterministaN/DNoSí
LatenciaN/D~50ms10-30ms

Cómo funciona

El selector nunca sale de tu proceso. Un modelo solo ve un identificador de nodo como [03]; la ruta CSS que realmente aborda el elemento vive en selector_map(), en tu lado, y se resuelve justo antes del clic.

1

Página en vivo

una página de Playwright, o HTML que ya tienes

2

ZeroDOMParser

una pasada DFS: podar, recopilar, etiquetar

3

InteractionGraph

texto compacto o JSON, enviado al modelo

4

El modelo elige un nodo

p. ej., clic [03], nunca un selector

5

selector_map()[node]

resuelto en tu lado, no en el del modelo

6

Actuar

clic/rellenar mediante Playwright, luego releer

Arquitectura

Consulta Arquitectura para el diseño completo del sistema, el flujo de datos y la economía de tokens.

Comenzar

Elige tu camino:

[

Quiero probarlo

Analiza una página y lee el grafo en tres líneas.

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

Quiero construir un agente

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

Quiero integrarlo

Conecta ZeroDOM a Claude Desktop, Cursor o tu propio bucle de agente.

Configuración de MCP](https://zerodom.vexralabs.com/docs/mcp-setup)

Explorar la documentación

[

Arquitectura

Visión general del sistema, flujo de datos, internals del analizador y economía de tokens.

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

Aplicaciones

Pruebas de QA, pruebas de penetración, recompensas por bugs, automatización y extracción de datos.

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

Ver el grafo

Capturas de pantalla, informes HTML y la barra de conducción en la página.

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

Resolución de etiquetas

El orden de prioridad de nueve pasos para nombrar controles.

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

Auditoría de selectores

Comprueba selectores existentes contra una página en vivo.

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

Integraciones

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

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

Reconocimiento de recompensas por bugs

Tubería Chrome sigilosa, escaneo de superficies y el sandbox de aislamiento.

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