extension privacy
brw extension privacy policy
Last updated: 11 September 2026
This policy covers the brw browser extension, extension id amocjcgddnoakjijfggdpnefdnboilpe, for Chrome and Chromium. The brw daemon and the wider product are covered by the brw privacy policy.
The short version
- Nothing is collected. No data is transmitted to Don Works, to Revitt, or to any third party. There is no brw account, no telemetry, no analytics and no advertising code.
- The extension's only network destination is
ws://127.0.0.1— a brw daemon running on your own machine. No remote host is permitted by its manifest. - It stays disconnected until you open Options and click Enable local browser control. Before that it attempts no connection.
- It cannot read HttpOnly cookies or export bulk site storage. Those requests are refused in extension code.
- Page-visible values reach the agent you configured, when you ask that agent to do browser work. You choose that agent; brw adds no recipient of its own.
What the extension connects to
The extension holds a WebSocket to a brw daemon (brwd) on the same computer, over ws://127.0.0.1 or ws://localhost. Its manifest grants host access to 127.0.0.1 and localhost only, and its content security policy allows connections to nowhere else. Browser data crossing that hop does not leave your computer.
If you run the daemon on a different machine, you build that hop yourself — brw's documented remote shape is stdio MCP over your own SSH connection, which keeps the browser and its profile on the machine that owns them.
Consent before connection
On install the extension opens its Options page and remains disabled. The data handling described above is disclosed there, and the extension connects only after you click Enable local browser control. Choosing Disable browser control closes the daemon socket and releases every debugger attachment. The toolbar popup always reports the current state: disabled, idle, active, reconnecting or down.
Browser data the extension handles
When control is enabled and you ask an agent to do browser work, the extension handles what that work requires, and no more:
- the URL, title and navigation state of the tabs brw is driving, and the tab group it keeps them in;
- visible page content — headings, prose, links, tables, forms and the semantic controls an agent needs to find and act on;
- the actions you asked for and their results: clicks, typing, scrolling, and what changed on the page afterwards;
- console messages, network resource metadata, screenshots and download metadata, when a request asks for them.
The extension relays these observations to the local daemon and retains none of them itself. Nothing is stored for later, sent anywhere else, or aggregated.
What the extension refuses
The extension is the transport into a browser profile you are already signed into, so it denies the CDP methods that would let that profile's credentials be read or copied out. Refusals happen in service_worker.js before a command reaches the browser:
- Cookies. Every CDP method whose name contains “cookie” is blocked, which includes HttpOnly cookies. brw's cookie tool exists only on a separate browser instance that brw launches and owns, never on your signed-in profile through this extension.
- Bulk site storage. The
Storage,DOMStorage,IndexedDB,CacheStorageandDatabaseCDP domains are blocked, so site storage cannot be enumerated or exported. - Sensitive form fields. Password, one-time-code and payment-card inputs are marked sensitive and their values are masked out of snapshots and reads rather than returned.
- Credential headers. Request headers that carry a bare credential are replaced with
[redacted]in captured network data. - Chrome's own stores. The extension does not read Chrome's password store, passkey store or profile files, and it is not permitted in incognito windows.
brw drives a normal, visible browser. It adds no stealth code, no CAPTCHA bypass, no MFA bypass and no consent bypass.
Where page-visible values can go
The point of the extension is to let an agent you chose read and act on pages you are signed into. When you ask it to, values that are visible on the page — including personal, financial, health, location, communication or authentication details, if the page shows them — are sent to the local daemon and returned to whichever MCP or HTTP client you connected to it. That client is your choice and its own privacy terms apply. Don Works and Revitt are not in that path and receive nothing.
Permissions, and why each one is there
debugger— The transport for browser control. On a request from the local daemon the extension attaches to a visible tab and issues documented Chrome DevTools Protocol commands to inspect page structure and carry out the action you asked for. Attachments are released after inactivity and when you disable control. Cookie methods and bulk-storage domains are refused in extension code before they reach the browser.tabs— Lists, opens, focuses, updates and closes the visible tabs you ask brw to control, and reads their URL and title so a command targets the correct tab.tabGroups— Creates or reuses a named group for agent-owned tabs, so automated work stays visible and separate from your own tabs.downloads— Correlates a download with the tab that started it, so a requested file is not confused with one you started elsewhere. It reads a bounded in-memory session buffer, not your download history.notifications— Alerts you when a flow needs you — MFA, a CAPTCHA, a purchase confirmation — and on completion or a sustained bridge failure.webNavigation— Observes main-frame navigation so waits and post-action observations do not report stale page state.alarms— Schedules the local reconnect and health checks that a Manifest V3 service worker needs to stay alive.storage— Stores your enable/disable choice, the loopback endpoints, an optional profile label and connection status in chrome.storage.local.offscreen— Hosts the loopback WebSocket keepalive that survives service-worker suspension. It renders and inspects no websites.host access to 127.0.0.1 and localhost— The only hosts in the manifest. There is no remote hostname the extension is permitted to reach.
Storage and retention
- The extension stores only your consent choice, loopback endpoints, an optional profile label and connection status, in Chrome local storage on your machine.
- Ordinary page observations pass to the local daemon and are not retained by the extension.
- Captures you explicitly request — text, semantic JSON, screenshots, PDFs, downloads, short video — are stored by the daemon in an owner-only local directory with size and retention limits, and can be listed and deleted with brw's artifact tools.
Your controls
Disable browser control in Options at any time; the socket closes and debugger attachments are released. Uninstalling the extension removes its Chrome-local settings. Anything the daemon stored stays in your local brw data directory until you delete it.
Chrome Web Store Limited Use
brw's use of information received from Google APIs adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements. Browser data is handled only for the disclosed user-facing purpose of carrying out browser actions you request. It is not sold or transferred, not used for advertising, not used for personalisation, not used to determine creditworthiness, and not available for any human at Don Works or Revitt to read.
Read the code
The extension is AGPL-3.0 and ships unminified: every file in the package is a file in the repository. The behaviour described above is in extension/ — the consent gate, the CDP deny-list and the attachment lifecycle are all in service_worker.js.
Contact
Open an issue on the brw repository or reach Revitt.
brw · brw privacy policy · open source by Revitt · AGPL-3.0