Traditional browser automation frameworks and LLM browser-use agents were designed for isolated sandbox testing, not for real daily desktop workflows. Every time I tried to let an AI agent assist me in my real browser, I kept hitting the same six frustrating roadblocks:
- Lost Logins, Cookies & Saved Sessions: Standalone browsers launch from an empty profile. They do not inherit your active Google, GitHub, or enterprise SSO logins, cookies, or extensions. Logging in from scratch constantly triggers 2FA and anti-bot verification challenges.
- Windows File-Sharing Locks (
[WinError 32]): Attempting to reuse an active Chrome User Data directory on Windows immediately crashes because Chromium holds exclusive file-sharing locks on open profile databases. - Mandatory Manual Mouse-Click Approvals: Whenever an agent attempts to control your local browser via raw CDP or remote debugging ports, Chromium frequently forces intrusive confirmation popups and security prompts. You must stop your work, locate the browser window, and physically click with your mouse to grant permissionβcompletely defeating the purpose of unattended, autonomous automation.
- Sluggish Execution & Astronomical Token Consumption: Conventional AI browser agents upload full-page retina screenshots or massive raw DOM trees back to remote frontier LLMs for every single micro-action. Each step suffers a 6β12 second roundtrip latency and burns tens of thousands of tokens, making multi-step automation painfully slow and prohibitively expensive.
- Intrusive Debugging Banners & Viewport Jitter: Standard remote debugging injects a native top notification bar ('BrowserPaw is debugging this browser'), shifting the viewport downward by ~36px and causing visual layout jitter and misaligned coordinate clicks.
- Foreground Focus Stealing: Typical automation tools force the browser window into the foreground, hijacking your keyboard and mouse focus while you are attempting to perform other tasks.
Frustrated by these roadblocks, I built BrowserPaw to solve all of these problems at their root. By pairing a Chrome MV3 extension directly with a local Native Messaging bridge, BrowserPaw operates seamlessly inside the Chrome you already use every dayβautomating workflows quietly in background tabs without losing logins, stealing focus, or demanding repetitive manual approvals.
β‘ What is BrowserPaw?
BrowserPaw is a Chrome extension + local MCP server that lets AI agents operate your real browser. It exposes 50 tools across 8 categories (autonomous execution, navigation & tabs, perception & extraction, action & pipeline, observation & diagnostics, management, network, performance & health), defaulting to a minimal 14-tool core profile for everyday sessions to avoid token bloat and decision paralysis. Full tool exposure is enabled via CHROME_MCP_TOOL_PROFILE=full or dynamic activation through chrome_tool_docs.
Two execution paths are available:
- Deterministic tools β indexed clicks, fills, batch pipelines, form wizards, screenshots, network capture, etc. The calling agent plans each step.
chrome_act_toward_goalβ a local perception-action micro-loop without per-step MCP round-trips. The native server perceives the page, decides the next action, and acts, without an MCP round-trip per step. It supports local decider models (with GPU acceleration) and TypeSafe Jev System One cloud inference.
π― Key capabilities
- Session continuity β Runs inside your existing Chrome. Google, GitHub, and SSO logins are already there; no profile copying, no re-authentication.
- Pruned, indexed DOM β
chrome_read_domstrips non-interactive and occluded nodes and assigns 1-based indices. On 1,000+ node pages this reduces node count by over 85% (test-validated), keeping snapshots small. A fast snapshot mode returns a viewport summary within an optimized budget target of 10β30 ms and β€15 KB. - Card flattening and viewport virtualization β
flattenCardscollapses repetitive feed cards into one-line summaries;virtualizeViewportfolds off-screen list items into count placeholders. - Shadow DOM traversal β Recursively walks open shadow roots; closed shadow hosts are tagged and interacted with at the host level. Accessible names are extracted from icon-only buttons (aria-label, title, SVG titles).
- Batch pipelines β
chrome_batch_actionsruns multi-step click/fill/wait/assert/extract sequences in a single MCP round-trip.chrome_form_pipelineadvances multi-step forms locally. - Overlay dismissal β
chrome_dismiss_overlaycloses marketing popups, cookie banners, and modals in one step, without dumping the DOM. - Delta piggybacking β
includeDelta: truereturns DOM mutations in the same response as an action, removing the need for a follow-up DOM read. - Native event fidelity β Clicks and keystrokes are dispatched as trusted CDP events (
isTrusted: true), so React/Vue/Angular and Shadow DOM handlers fire normally. - Coordinate fallback β When DOM indexing fails (canvas, WebGL, icon-only UI), a screenshot grid plus
chrome_computerprovides coordinate-based control with 24 px magnetic auto-snapping. - Human handoff β
chrome_request_human_interventiondims the page, shows a banner, and parks the cursor so the user can complete 2FA or captchas; automation resumes afterward. - Tab and window management β Create, group, move, and close tabs, query history and bookmarks, and capture performance traces, all under the user's existing credentials.
π§ Dual-brain execution
ββ Macro Planner (your reasoning LLM) ββββββββββββββββββββ
β Task decomposition, cross-page strategy, recovery β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β MCP (low frequency)
βΌ
ββ Semantic Micro-Loop (Native Server) βββββββββββββββββββ
β chrome_act_toward_goal: β
β perceive β decide (Jev or heuristic) β act β verify β
β No MCP round-trip per step β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β Native Messaging
βΌ
ββ Chrome MV3 Extension ββββββββββββββββββββββββββββββββββ
β 49 browser tools Β· CDP events Β· in-page engine β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Routing guideline:
- Fixed action sequence, known indices β deterministic tools (
chrome_batch_actions,chrome_form_pipeline). - Single-page goal in natural language β
chrome_act_toward_goal. - Long-horizon, multi-page, novel, or escalated situations β the calling agent drives.
The micro-loop is bounded: at most 60 steps in Jev mode (default 10), truncated to 5 steps in heuristic fallback. It intercepts 14 destructive action keywords (pay, delete, submit, etc.) and escalates ambiguous or low-confidence decisions back to the calling agent with candidate elements.
Autonomous Jev Modes & Smart Gating:
- Off: Disabled by the user in the extension popup.
chrome_act_toward_goalis automatically hidden fromtools/list; if invoked directly, it is rejected and prompts for user authorization. - Local: Runs an offline, privacy-first decider model (
decider-2b) locally on port 8009 with NVIDIA GPU acceleration (CUDA RTX) or CPU fallback. Once weights are downloaded via popup or setup script, the bridge manages process lifecycle and hot-loads automatically. - Remote: Uses TypeSafe Jev System One cloud inference. Set
TYPESAFE_API_KEY(or configure via popup) with optional customBase URLand custom fine-tunedmodelId. Failing configurations return actionable diagnostic logs instead of silent heuristic fallback. - Experimental remote vision: No switch and no pinned vision model. Point the popup's
Modelfield at any id and click Apply; before capturing anything BrowserPaw asks upstream which release answers that endpoint and sends viewport screenshots only when it can answer Jev 1.14boxquestions (jev-previewandjev-1.14.0qualify today, whilejev-lateststill resolves to Jev 1.13 and is declined without sending an image). Text and DOM targeting remain the normal path, and vision is unavailable in local/off modes. Images and Box are experimental TypeSafe APIs, so uncertain or stale targets escalate to the calling agent.
π Quick start
Option 1: Install with an AI agent (Recommended)
Paste this to your agent:
"Set up BrowserPaw: https://github.com/GoldenLoaf24h/browserpaw. Read INSTALL.md and follow the steps."
Your agent will compile the project and register the OS native host automatically. Then simply open chrome://extensions, enable Developer mode, click Load unpacked, and select app/chrome-extension/.output/chrome-mv3 (or your configured local staging directory).
Option 2: Prebuilt extension (No extension build required)
- Download the latest
browserpaw-extension-v*.zipandbrowserpaw-skill-v*.zipfrom Releases. - Unzip the extension to a local persistent directory, open
chrome://extensions, enable Developer mode, and click Load unpacked. - The extension ZIP does not include the Native Messaging server. Clone the repository and follow INSTALL.md to build and register the local bridge.
- Copy the full
skill/directory (including itsreferences/folder) into your agent's skills directory (Codex:~/.codex/skills/browserpaw/).
Option 3: Build from source
git clone https://github.com/GoldenLoaf24h/browserpaw.git
cd browserpaw && pnpm install && pnpm build
node app/native-server/dist/scripts/register-dev.js
Then load app/chrome-extension/.output/chrome-mv3 (or your configured staging directory) into chrome://extensions.
Verification
Verify that all components are functioning with the built-in diagnostic suite:
node skill/config/doctor.mjs
Claude Code users can install the bundled plugin by running /plugin marketplace add GoldenLoaf24h/browserpaw and then /plugin install browserpaw@browserpaw, after which /browserpaw loads the operating guide.
Full onboarding (Codex Stdio setup, Cursor, Claude Desktop, Claude Code, Hermes, Jev API key) is in INSTALL.md.
π οΈ Tool catalog
All 50 tools are grouped below. For machine-readable schemas and parameter details, see docs/TOOLS.md.
Autonomous execution (1)
chrome_act_toward_goalβ Local perception-action loop toward a natural-language goal. Jev inference with heuristic fallback; escalates on ambiguity or destructive actions.
Navigation & tabs (7)
chrome_navigateβ Open URL, refresh, history back/forward, background tabs.chrome_switch_tabβ Switch active tab or bind session affinity (auto-handover strictly restricted to verified openerTabId or webNavigation lineage).chrome_close_tabsβ Close tabs by id, URL, or session (requires confirm for active tab).chrome_move_tabβ Reposition tabs or move across windows.get_windows_and_tabsβ List windows and tabs with state.chrome_attach_tab/chrome_detach_tabβ Attach or detach the CDP debugger.
Perception & extraction (7)
chrome_read_domβ Indexed, pruned DOM tree with shadow DOM traversal and fast snapshot mode.chrome_scroll_until_foundβ Client-side auto-scroll to find target text/element, settles virtual DOM, centers element, and returns live index.chrome_grepβ Regex or text search returning element indices without a full DOM dump.chrome_get_markdownβ Clean Markdown extraction for reading tasks.chrome_inspect_mediaβ Extract image or canvas data; super-resolves small captchas.chrome_get_dropdown_optionsβ List select/combobox options.chrome_consoleβ Capture console logs and errors.
Action & pipeline (15)
chrome_interact_indexβ Trusted click, hover, double-click, drag by 1-based index.chrome_fill_indexβ Trusted text input with clear, submit, and multiline support.chrome_batch_actionsβ Multi-step pipeline (click/fill/wait/assert/extract) in one round-trip.chrome_form_pipelineβ Autonomous multi-step form filling.chrome_smart_scrollβ Scroll page or inner containers with progress reporting.chrome_keyboardβ Raw key presses and shortcuts.chrome_upload_fileβ Native file-input upload.chrome_insert_mediaβ Paste/drop a real File into rich-text editors.chrome_handle_dialogβ Accept or dismiss native alert/confirm/prompt.chrome_handle_downloadβ Wait for and locate downloads.chrome_computerβ Coordinate-level mouse/keyboard control (visual fallback).chrome_request_human_interventionβ Yield to the user for captcha/2FA.chrome_undo_last_actionβ Roll back the last mutation.chrome_dismiss_overlayβ Close popups, modals, and cookie banners.chrome_javascriptβ Evaluate JavaScript in the page context.
Observation & diagnostics (3)
chrome_screenshotβ Viewport, element, or full-page capture with optional coordinate grid.chrome_cdp_executeβ Raw CDP escape hatch.chrome_tool_docsβ Query tool schemas and activate hidden profiles.
Management (10)
chrome_tab_group_create/chrome_tab_group_update/chrome_tab_group_list/chrome_tab_group_ungroup/chrome_tab_group_closeβ Tab group lifecycle.chrome_historyβ Search browsing history.chrome_bookmark_search/chrome_bookmark_add/chrome_bookmark_deleteβ Bookmark operations.chrome_storageβ Read and manipulate cookies, localStorage, and sessionStorage.
Network (3)
chrome_intercept_apiβ Capture backend JSON responses matching a URL pattern.chrome_network_captureβ Record network traffic.chrome_network_requestβ Authenticated HTTP requests through the browser session.
Performance & health (4)
performance_start_trace/performance_stop_trace/performance_analyze_insightβ Record and analyze performance traces.chrome_doctorβ Check port, extension link, token, and native host health.
ποΈ Architecture
AI Client (any MCP-capable agent)
β MCP over Stdio (recommended zero-config) or HTTP/SSE on 127.0.0.1:12306
βΌ
Native Messaging Bridge (Fastify + Stdio Host)
βββ Fast Decision Engine (Jev micro-loop)
βββ Passthrough for 49 deterministic tools (50 tools total)
β Chrome Native Messaging
βΌ
Chrome MV3 Extension (Service Worker)
βββ In-Page Engine (1-based DOM indexing)
βββ CDP Session Manager
βββ Agent Cursor Overlay
For details, see docs/ARCHITECTURE.md.
π Documentation
- Project Map β Navigation hub and reading paths.
- Tool Reference β Schemas for all 50 tools.
- Install & Onboard β Step-by-step setup including Jev key.
- Agent Integration β MCP client configuration.
- Architecture β Design and decisions.
- Troubleshooting β Connection and execution issues.
π‘ Acknowledgments
- hangwin/mcp-chrome β MV3 extension and Native Messaging bridge foundation.
- browser-use/browser-use β DOM-first indexing principles.
- BrowserOS β DOM diffing and element grep patterns.
- TypeSafe β Jev System One fast-decision models.
π Legal & License
This project is licensed under the AGPL-3.0 license (GNU Affero General Public License v3.0 or later).
βοΈ Open Source & SaaS Copyleft (Section 13)
Under the terms of AGPLv3, any modifications, forks, or derivative worksβincluding those hosted remotely as a network service, cloud gateway, or SaaS platform interacting with users over a computer networkβmust make their complete corresponding source code freely available under the same AGPL-3.0 license.
π‘οΈ Disclaimer of Warranties & Limitation of Liability
This software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or copyright holders be liable for any claim, damages, account suspensions, data loss, or other liability arising from, out of, or in connection with the software or the use or other dealings in the software.
π Compliance with Third-Party Terms
Users are solely responsible for ensuring that their automated browser workflows comply with all applicable local laws, regulations, and the Terms of Service (ToS) or robots.txt policies of any third-party websites or services accessed.
π·οΈ Trademarks & Non-Affiliation
Google Chrome is a trademark of Google LLC. Microsoft Edge is a trademark of Microsoft Corporation. OpenAI and ChatGPT are trademarks of OpenAI, Inc. TypeSafe is a trademark of TypeSafe, Inc. BrowserPaw is an independent open-source project and is not sponsored, endorsed, or affiliated with any of these entities. Third-party software attributions and licenses are documented in NOTICE.
π‘οΈ Verification & Quality
Development acceptance gates, build/deployment verification, and runtime identity standards are defined in docs/QUALITY.md.
Run pnpm verify to execute full static quality and build audits.