Matrix OSMatrix OS

Browser Automation

Persistent browser profiles and the Matrix OS browser MCP tool.

Matrix OS can expose an in-process browser MCP server to the kernel when browser automation is enabled in ~/system/config.json.

~/system/config.json
{
  "browser": {
    "enabled": true,
    "headless": true,
    "defaultProfile": "default",
    "timeout": 30000,
    "idleTimeout": 300000
  }
}

The kernel registers the mcp__matrix-os-browser__browser tool. Agents use it to navigate pages, inspect accessibility snapshots, fill forms, manage tabs, capture screenshots, save PDFs, and read browser console output.

Persistent Profiles

The browser tool launches Chromium with a Playwright persistent context. Cookies, local storage, and login state are stored under the owner-controlled Matrix home:

~/data/browser-profiles/{profile}/

Use the profile argument to keep independent login lanes:

{
  "action": "navigate",
  "profile": "github-work",
  "url": "https://github.com/login"
}

Profile names are lowercase slugs such as default, work, or github-work. Matrix keeps one active browser session at a time; switching profiles closes the active browser before opening the requested profile.

Security

  • Navigation only accepts http and https.
  • Local, private, link-local, multicast, documentation, and internal host targets are blocked before navigation.
  • Page and tab network requests run through the same guard, so public pages cannot use the agent browser to request private/internal resources.
  • Hostname targets are DNS-preflighted. This is not DNS pinning, so DNS rebinding remains a residual risk until Matrix routes browser traffic through a dispatcher that pins resolved addresses.
  • Screenshot and PDF output paths are confined to ~/data/screenshots/.
  • Browser page text, snapshots, console output, and evaluate output are wrapped as untrusted external content before they reach the agent.

Use browser automation only when needed

Prefer WebSearch or WebFetch for simple public information retrieval. Use the browser tool when a task needs dynamic UI interaction, login state, screenshots, or JavaScript-rendered content.

Design Notes

Matrix follows the local persistent-profile path from OpenClaw's browser design: a dedicated agent browser profile instead of the user's daily browser profile, with deterministic actions and screenshots. Hermes adds useful future directions such as cloud provider routing, Browser Use, Camofox persistence, CDP attach, VNC live view, and private-URL routing, but Matrix's default runtime starts with local owner-controlled Playwright profiles.

How is this guide?

On this page