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 →
Ecosystem · vulpine-mark

Set-of-Mark labelling for vision-driven agents.

Vision models are great at "click the green button" and bad at "click div[role="button"].btn-primary:nth-child(3)". vulpine-mark generates annotated screenshots with durable object IDs so agents can click by label instead of selector.

Open source · MPL 2.0GoSet-of-Mark
01

What it does

Renders a screenshot of the current page, overlays numbered labels on every interactive element, and returns the annotated image plus a stable objectId per label. The agent picks an element by its @N label; vulpine-mark resolves that back to a DOM target on the next interaction tool.

02

How it pairs

VulpineOS exposes vulpine-mark through the MCP toolbelt as vulpine_annotated_screenshot and vulpine_click_label. It also works standalone over CDP via Foxbridge for any agent stack that wants Set-of-Mark behaviour.

01

Durable IDs

Labels survive minor DOM churn — re-annotation reuses the same id when the element is the same target.

02

Click-by-label

Agents reference @1, @2, @3 instead of selectors. Lower hallucination rate, higher hit rate.

03

Composable

Works with VulpineOS, Foxbridge, or any CDP-driven browser. No VulpineOS dependency.

03

Resources

  • vulpine-mark source

    github.com/VulpineOS/vulpine-mark

Self-host the runtime today.

All four open-source pieces — VulpineOS, Foxbridge, vulpine-mark, mobilebridge — are MPL 2.0 and ship together.

Star on GitHub→Read the docs
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