The web perception layer for AI Agents.

Through math, not pixels. For Everything an agent needs to reason and act.

PlaygroundView on GitHub
~90–95% web coverage · Apache 2.0
Hollow Matrix Mirror showing Google.com with GDG element annotations

No rendering, just layout

Layout is pure mathematics. Painting requires a GPU. Hollow keeps the layout step and drops everything after it.

Built for agents, not humans

Screenshots were designed for humans. DOM dumps were designed for humans. Hollow answers what an agent actually needs: what is on this page, where is it, what can I do with it?

Serverless by design

A function that runs, calculates, and terminates. No 300MB binary, no 2–4 second cold starts, no persistent server.

Intelligent routing

HOLLOW is a Smart Virtual Browser Engine. Works across SPAs and other complex sites for AI agents to efficiently complete a task.

Zero idle time

The agent reads. Decides. Acts. The function terminates. Nothing idles. Billing stops the moment the session ends.

Deploy in seconds

A standard Next.js deploy. No complex infrastructure. No container orchestration. No browser binaries to manage.

Matrix Mirror — Ghost DOM View
1nav.header-nav
2a.logo
3input#search
4button.submit
SSE Log
[route] HOLLOW selected
[conf] 0.98
[gdg] 47 elements mapped
[action] click elementId:3

Layout is math. Painting is not.

Hollow uses Happy DOM to execute JavaScript and build the DOM tree, then Yoga — the same engine that powers React Native — to calculate exact coordinates. The GDG map is the output: element IDs, positions, relationships.

DOM TreeYogaGDG Map
1Analyze site structure
2Select optimal strategy
3Extract structured data
4Return GDG map

The right strategy for every site, automatically.

Hollow intelligently analyzes each site and selects the optimal extraction strategy. No configuration needed. No manual tuning. Just a URL in, structured data out—covering ~90–95% of agent tasks across SPAs, content-heavy pages, and native apps.

Watch the agent think in real time.

The Matrix Mirror tags every element and makes it addressable. The SSE log shows every routing decision, confidence score, and action as it happens. Scan the QR code, paste the system prompt into Claude or GPT. Working browser in 30 seconds.

12button "Submit"clickable
13input#emailfillable
[Viewport: 1280x800]

[nav: flex-row y:0 h:44]
  [1] a "Home"          x:0    w:80   h:44
  [2] a "Login"         x:80   w:80   h:44

[main: flex-col y:44]
  [3] input:email       x:40   y:84   w:400  h:44
  [4] button "Submit"   x:40   y:140  w:400  h:48
  [5] div.card          x:40   y:200  w:400  h:200
    [6] h2 "Title"      x:56   y:216  w:368
    [7] p "Body text"   x:56   y:260  w:368

Graphic Density Grounding

Structured spatial trees with element IDs, positions, and relationships. Everything an agent needs to reason and act. Nothing it doesn't.

0
Chromium processes
~0ms
Idle time
90–95%
Web coverage

A browser that never have to run on a machine.

We're building web perception for AI agents. Not a faster Puppeteer. Not a headless browser. Not a lighter Browser. Something that fits the tooling reality of how agents actually run.

Perfect for agent pipelines and testing Agent interfaces.

Hollow slots into any agent loop with two API calls. Perceive returns the spatial map. Act takes an element ID. The loop runs until done.

Perfect for serverless infrastructure

No binary to install. No Docker. No Chromium. A standard Next.js deploy on Vercel. Serverless pricing from the first request.

Deploy

git clone github.com/Badgerion/hollow
cd hollow && npm install

# .env
UPSTASH_REDIS_REST_URL=...
UPSTASH_REDIS_REST_TOKEN=...

vercel deploy
  • No binaries
  • No Docker
  • No Chromium
  • Standard Next.js
  • Serverless pricing

API

POST/api/perceive
{ "url": "https://..." }
→ { sessionId, gdgMap, confidence, tier }
POST/api/act
{ sessionId, action: { type, elementId } }
→ { sessionId, gdgMap, confidence, tier }
navigateclickfillscrollselecthover

Give your agent an efficient browser.

Paste the system prompt into Claude, GPT, or Gemini. Working browser in 10 seconds. No API key. No setup.