BrowserCtrl← Home

Privacy Policy

Effective date: 2026-05-22

TL;DR: BrowserCtrl runs entirely on your machine. We do not collect, transmit, store, or sell any data about you or your browsing.

What BrowserCtrl is

BrowserCtrl is an open-source tool that lets AI agents (Claude Desktop, Cursor, Zed, Windsurf, Claude Code) drive your real Chrome browser via the Model Context Protocol (MCP). It connects a local daemon (browserctrl on your machine) to a Chrome extension over Chrome Native Messaging. Everything runs locally — there is no BrowserCtrl-operated server in the data path.

What we do NOT collect

The extension does not transmit any of the following to BrowserCtrl, its authors, or any third party:

  • URLs you visit
  • Page contents, screenshots, DOM snapshots, or ARIA snapshots
  • Form input, cookies, or authentication tokens
  • The text of any prompts you send to your AI agent
  • Network requests captured during automation
  • Identifiable information about you (name, email, IP, device fingerprint)

Where any of this data appears, it stays on your machine: in the AI agent that initiated the request (e.g. Claude Desktop), in the local daemon's memory, or in ~/.browserctrl/ on disk.

What lives on your machine

The daemon writes the following to ~/.browserctrl/:

  • daemon.token — a per-process random auth token (rotated every restart)
  • daemon.pid — the daemon's PID for browserctrl status
  • daemon-version.txt — current version
  • daemon.mjs, node_modules/ — the bundled daemon code that Chrome's Native Messaging Host launches on demand
  • logs/*.log — local diagnostic logs (no PII; trimmed automatically)

Nothing in this directory ever leaves your machine unless you explicitly include it (for example, pasting browserctrl diagnose output into a bug report).

What the extension stores

The extension uses chrome.storage.local to persist:

  • A local profile ID used by the daemon to identify your install
  • Your “disconnected by user” preference (so an explicit Unpair sticks across restarts)
  • Per-origin approval preferences (the allowlist)

All of this is local to your browser profile — Chrome handles it the same way it handles any other extension's local storage.

Third-party services

BrowserCtrl itself contacts no third-party services.

The landing page at browserctrl.xyz uses Web3Forms to relay waitlist signups. If you submit your email there, only that email is shared with Web3Forms (per their privacy policy) so we can email you when the alpha opens up.

Permissions the extension requests

  • debugger — drives Chrome via the DevTools Protocol
  • tabs — enumerates and focuses your existing tabs
  • storage — local-only preferences (above)
  • alarms — keeps the service worker alive during long automations
  • notifications — connection-state toasts (optional)
  • <all_urls> — the AI agent can be on any URL; we operate only on tabs the daemon explicitly addresses

Trust is rooted in the local install — the Chrome Native Messaging manifest written by browserctrl init pins which extension ID is allowed to talk to the daemon binary. No remote endpoint can drive the debugger.

Open source

The entire stack — extension, daemon, CLI — is open source under MIT / Apache 2.0: github.com/DeRaowl/browserctrl. If anything in this policy looks wrong, the code is the source of truth — please open an issue.

Changes

If we ever change this policy, the diff will be visible in the git history of docs/privacy-policy.md. We will not retroactively expand what data is collected.

Contact