VulpineOS
Docs
Runtime
Runtime overview
Hardened browser, orchestrator, MCP
Injection filter
Strip invisible DOM before the agent
Action lock
Freeze JS, timers, reflows mid-think
Optimised DOM
93.1% measured token reduction
Operator surfaces
Web panel
Embedded operator console
TUI workbench
SSH-friendly terminal UI
MCP toolbelt
36 typed browser tools
Vulpine-Box
One-container self-host
Ecosystem
Foxbridge
CDP ↔ Juggler / WebDriver BiDi
vulpine-mark
Set-of-Mark visual labelling
mobilebridge
Android device sessions
OpenClaw
Pre-configured agent loop
Documentation
Quickstart
First agent in 30 seconds
Architecture
Four-phase security model
MCP Reference
All 36 browser tools
Agent Scripting DSL
Declarative agent definitions
Open source
VulpineOS Runtime
GitHub, MPL 2.0
Foxbridge
CDP ↔ Juggler / WebDriver BiDi
vulpine-mark
Set-of-Mark visual labelling
mobilebridge
Android device discovery + sessions
Integrations
OpenClaw
Pre-configured agent loop
Camoufox
Anti-detect browser core
LLM providers
30+ models, one toolbelt
Docker (Vulpine-Box)
One-click self-host
Guides
AI Agent Security
Threat model, mitigations
Prevent Prompt Injection
Hidden DOM, ARIA tricks
OpenClaw + Camoufox
End-to-end setup
Camoufox vs Chrome
Why Firefox, why patches
Engineering
Changelog
Release notes as work lands
Roadmap
Now, next, later, research
Blog
Long-form posts on the runtime
RenderLab
Optional render-diagnostics study
Community
Support
How to get help, fast
GitHub Discussions
Ideas, RFCs, support
Contributing
How to help
Security
Responsible disclosure
Star on GitHub →
Product · Optimised DOM

93.1% smaller than Chrome accessibility.

LLMs spend most of their context window on DOM structure that does not change between turns. Our optimised DOM export strips that overhead with short role codes, single-child flattening, adjacent text merging, and empty-field elision.

Real benchmarkLive on CamoufoxPage.getOptimizedDOM
01

Benchmark

Same workload, same input page, same agent prompt. Three snapshots, measured by the GPT-4 tokenizer.

Chrome AX42,832

Tokens. Standard accessibility tree, the baseline.

Playwright ariaSnapshot11,577

Tokens. 73% reduction vs Chrome AX.

VulpineOS optimised DOM2,942

Tokens. 93.1% reduction vs Chrome AX. 74.6% vs Playwright.

02

Compression strategy

We emit a flat node array of [depth, roleCode, text, ...optionalAttrs]. Roles are short codes (doc, btn, lnk, h1); structural wrappers without semantic value are skipped; single-child wrappers collapse into their child; adjacent text nodes merge; empty or default fields drop entirely. The result is still semantic JSON the LLM can navigate, just denser.

03

Output shape

One small wire format. Tunable via maxDepth, maxNodes, and maxTextLength params.

{
  "v": 1,
  "title": "Sign in",
  "url": "https://example.com/login",
  "nodes": [
    [0, "doc", "Sign in"],
    [1, "h1", "Welcome back"],
    [1, "lbl", "Email"],
    [1, "tbox"],
    [1, "lbl", "Password"],
    [1, "tbox", null, { "type": "password" }],
    [1, "btn", "Sign in"]
  ]
}
Wire format · Page.getOptimizedDOM
04

Resources

  • Architecture deep-dive

    docs.vulpineos.com/architecture — every patch, where it lives, and why.

  • VulpineOS source

    github.com/VulpineOS/VulpineOS — runtime, patches, additions.

Self-host the runtime today.

Pull the source, build the binary, and drive your first agent. The waitlist gates the managed runtime; the open-source path is open now.

Read the docs→Star on GitHub
VulpineOS

The browser built for AI agents.
Open-source runtime, end to end.

Camoufox 146.0.1
Product
RuntimeAction lockOptimised DOMMCP toolbeltVulpine-Box
Ecosystem
Foxbridgevulpine-markmobilebridgeOpenClawCamoufox
Resources
Resources hubRoadmapChangelogBlogDocs
Community
SupportDiscussionsContributingIssuesSecurity
© 2026 VulpineOSBuilt on Camoufox · Firefox 146.0.1TermsPrivacyCookiesAcceptable useSecurity