/usr/share/doc/nomad
Zero-overhead headless browser. Built for AI agents.
Binary size
~4 MB
Idle RSS
~6 MB
Soak throughput
~17,000 req/s
Multi-page soak
~2,900 req/s
Peak RSS (soak)
6.5 MB
Memory leak
0 KB
Output formats
11 modes
Protocol messages
30 variants
▸Pipeline · 7 stages
00
▸fetch_url
I/O · TLS
Chrome UA, native-tls JA3, shared CookieJar. Raw-TCP localhost bypass skips the reqwest connection pool.
01
▸parse_html
CPU · SIMD
memchr pre-scan with skip-block jumps. ~80% of pages bypass html5ever and tokenize directly into EntityArray.
02
▸css::match
CPU · indexed
Hash-indexed selectors by tag, class, and id. Compound and combinator selectors — no cascade recursion.
03
▸layout::solve
CPU · 1-pass
Single forward sweep, block and inline only. Monospace-based text sizing. No reflow loop.
04
▸js::sandbox
QuickJS · ghost-fleet
Lazy OnceLock QuickJS workers, initialized on first SPA or WAF page. ECS↔JS hydration bridge.
05
▸page_cache
Memory · zero-copy
LRU cache of pre-serialized frame bytes. Tab_id patched at byte-offset 4. Zero-clone on hit.
06
▸ecs::frame → wire
Wire · bincode / UDS
Structure-of-Arrays flattened into bincode. XXH3-hashed entities, state-tagged FrameDeltas.
// Every page is 11 parallel vectors in a Structure-of-Arrays layout.
diff_since() produces FrameDeltas in O(N) — unchanged entities are omitted from the wire.#vs alternatives
| Engine | Arch | RSS | Soak | Output | Binary |
|---|---|---|---|---|---|
| Nomad | Daemon | ~6 MB | 17,000/s | 11 formats | ~4 MB |
| Chrome Headless | Process/tab | ~400 MB | 23/s | Raw HTML | ~180 MB |
| Lightpanda | Process/req | ~26 MB | 24/s | Raw markdown | 105 MB |
| Playwright | Process/script | ~180 MB | 33/s | Raw HTML/DOM | ~150 MB |
*Who is it for
+
LLM agent developers — Browse, extract, act in <1s per page
+
AI infra engineers — High-throughput at 17,000 req/s
+
Data pipeline builders — Summary format ~150 B keeps LLM costs down
+
Web automation teams — Structured output with semantic roles
▸DaemonMessage · 30 variants
0–5daemon → clientFrame · Delta · Meta
6–15client → daemonNavigate · Scroll · JS
16–19agent opsFindEntities · ClickEntity
20–25extensionsActionLog · CompareTabs
26–29health · authHealth · Handshake