Open Claude in Chrome
A clean-room Claude browser extension with no domain blocklist: any Chromium browser, the same 21 MCP tools, matching performance.
- Source repo
- noemica-io/open-claude-in-chrome
- Stars
- ★ 274
- Last updated
- 1mo ago
- License
- NOASSERTION
- Primary language
- HTML
- FA score
- 48/100 · Major gaps
At a glance
- How it runs
- Works with
- Platform-specificClaude Code
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- Teams that need Claude Code to automate sites the official extension blocks, such as Reddit, Robinhood or Tinder.
- Not a fit if
- Users not on Claude Code or another MCP client
- Anyone needing unattended execute_code uptime (no health check or auto-restart)
- Source review
- 48/100 · Major gaps
What does this agent do, and when should you use it?
Open Claude in Chrome is a clean-room reimplementation of Anthropic's official Claude in Chrome extension, built by noemica and released under MIT. It ships three core pieces: a Manifest V3 extension that automates the browser over CDP, a Node.js MCP server (mcp-server.js) that Claude Code launches over stdio, and a native messaging host (native-host.js) that bridges the two; codemode/hybrid variants add a Cloudflare Worker (V8 isolate) hosted by wrangler dev to run model-written JavaScript. Compared with the official extension it removes the 58 blocked domains (banking, brokerage, payments, crypto, gambling, dating, adult, several media sites and Reddit) and runs on any Chromium browser rather than only Chrome and Edge. The README reports a 17-arm study on 12 held-out REAL benchmark tasks where the cold harness and the official extension are statistically indistinguishable (2.04 vs 1.95 min/task), while per-action overhead drops from 0.31s to 0.12s. It also includes a four-track imitation-learning recorder that hands an expert rollout to a live Claude Code session.
The repository exposes 21 MCP tools to Claude Code (tabs_context_mcp, tabs_create_mcp, tabs_close_mcp, navigate, computer, read_page, get_page_text, find, form_input, javascript_tool, read_console_messages, read_network_requests, resize_window, file_upload, and others) plus its own execute_code, update_plan, set_tab_focus, get_config/set_config, recording_ack, retranscribe_recording, debug and debug_timings. Execution flows Claude Code <-stdio MCP-> mcp-server.js <-TCP-> native-host.js <-native messaging-> extension <-> browser; the codemode/hybrid servers insert a wrangler-dev-hosted Cloudflare Worker so LLM-written JS runs in a V8 isolate and drives every tool through a typed chrome.* API in one round trip. The extension performs clicks, typing, screenshots, zoom, console and network reads over CDP, and the humanize setting produces curved cursor paths, off-centre clicks with press dwell and momentum-decomposed scrolls. audit_mode starts an rrweb DOM recording per tab and stitches segments into one timeline per Claude Code session, keyed off the h{clientId}_{id} request prefix. The recorder resolves actions to durable element anchors, transcribes spoken narration via the OpenAI API, and the native host writes trace.json, SCHEMA_v0.md and images/ under ~/.config/open-claude-in-chrome/recordings/<id>/.
- Teams that need Claude Code to automate sites the official extension blocks, such as Reddit, Robinhood or Tinder.
- Developers running Brave, Arc, Opera or Vivaldi who want browser-agent control in their own browser instead of installing Chrome or Edge.
- Engineers who want to demonstrate a browser task once, with spoken narration, and have Claude generalize the recording to sister tasks.
- Anyone collapsing multi-step forms, wizards or repeated submissions into a single execute_code round trip to cut latency.
- Compliance or debugging work that needs a replayable rrweb audit of what an agent actually did in the browser.
- Advanced users who want several Claude Code sessions sharing one browser extension and driving different tabs concurrently.
How do you install or deploy this agent?
Prerequisites: Node.js v18+, any Chromium browser, Claude Code v2.1.80+ (v2.0.73+ suffices for browser automation alone), and an OpenAI API key. Steps: (1) npm install --prefix host and npm install --prefix host/codemode/worker — the second is not optional, without it execute_code falls back to fetching wrangler over the network on every cold start. (2) Open chrome://extensions (or brave:// / edge://), enable Developer mode, Load unpacked the extension/ directory, and copy the extension ID. (3) Run ./install.sh <your-extension-id> to register the native messaging host; pass multiple IDs for multiple browsers. (4) Close all browser windows and reopen. (5) Right-click the extension icon, open Options, paste the OpenAI key and click Save & validate, then click Enable microphone and allow the prompt. (6) Register the server: claude mcp add open-claude-in-chrome-hybrid -- node /absolute/path/to/host/codemode/server-hybrid.js (hybrid is the superset with all 21 tools, execute_code and the recording channel). (7) Launch with claude --dangerously-load-development-channels server:open-claude-in-chrome-hybrid and keep the session open.
How do you use this agent?
After launch, run two checks: ask the session to "Navigate to reddit.com and take a screenshot" to confirm the extension, native host and MCP server are wired up, then issue one execute_code call that creates a tab, navigates to reddit.com, clicks the first post, goes back and returns every post title except the top three to confirm the sandbox is live (the first call may report the sandbox is still starting — wait and retry). Configure behavior through set_config, e.g. set_config({ key: "humanize", value: true }) for humanized input with humanize_speed set to fastest, fast, natural or relaxed, and set_config({ key: "audit_mode", value: "audit" }) for rrweb auditing, replayed from the Audits page under Options. To record an imitation-learning demonstration, tell the session you are about to teach it, click the toolbar icon (badge shows REC), act while narrating out loud (hold Alt while clicking to demonstrate without firing the action), click the icon again to stop, then once the badge shows 📋 and the reference is on your clipboard, paste it into Claude Code. If the sandbox dies, reconnect with /mcp in Claude Code or run pkill -f "server-hybrid|server-codemode"; pkill -f wrangler before reconnecting.
What are this agent's strengths and limitations?
- No domain blocklist at all, so all 58 sites the official extension blocks (Reddit, Robinhood, Tinder, PayPal, Coinbase and more) are reachable.
- Runs on any Chromium browser, whereas the official extension supports only Chrome and Edge.
- On 12 held-out REAL benchmark tasks it is statistically indistinguishable from the official extension when cold (2.04 vs 1.95 min/task, p=0.44) yet per-action overhead is 0.31s vs 0.12s, 2.7x less.
- execute_code lets the model write JS that drives all 21 tools in one call; the README's best method lands 23% fewer turns and 15% less time than the official extension.
- Ships a four-track imitation-learning recorder and rrweb audit replay that can hand a recording to a live Claude Code session.
- Plain JavaScript with no build step, released under MIT.
- Tied to Claude Code and the MCP client shape; other clients are not supported.
- execute_code depends on a wrangler/workerd child process with no health check and no auto-restart, so it stays down until the MCP server restarts.
- Recording transcription requires an OpenAI API key and depends on the research-preview channels flag to inject into a session.
- gif_creator, shortcuts_list and shortcuts_execute are still stubs, and upload_image attaches to a file input by ref only, not by coordinate.
- The README admits the benchmark task set saturates, one task's grading is ambiguous, and repeat runs vary 10-20%, so single-digit differences are noise.
- The README states the in-browser capture, mic and stop pipeline are wired but awaiting a live verification pass.
How does this agent compare with similar options?
The official Claude in Chrome extension is the direct alternative: closed source, Chrome and Edge only, 58 blocked domains, 21 MCP tools. Open Claude in Chrome is open source (MIT), works in any Chromium browser, has no blocklist, and adds execute_code, update_plan, humanize, audit_mode and the imitation-learning recorder. The README also contrasts Claude Cowork, which analyses each recording at capture time and keeps only the result, whereas this harness records raw four-track traces and defers analysis; distilled the same way by the same model, the raw recordings win both regimes by 6.6 fewer turns and 6.4 fewer minutes (p=0.012, p=0.008).
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Open Claude in Chrome This agent | 48 · Major gaps | MCP serverFree + model costs | ★ 274 | 1mo ago | HTML | Claude Code |
| Open Browser Use | 65 · Some gaps | CLIFree | ★ 418 | 5d ago | JavaScript | Codex · Claude Code |
| Browsentic | 75 · Some gaps | — | ★ 282 | 2d ago | TypeScript | Codex · Claude Code |
| WebBrain | 68 · Some gaps | Browser extensionFree + model costs | ★ 1.7k | today | JavaScript | Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
The tool inventory and audit/recording notes describe browser actions, file uploads, page JavaScript, console and network reads, local recording writes, and microphone transcription, so data-flow transparency earns a relatively strong score. Installation requires the user to load the extension, grant microphone access, and configure an API key, but the materials do not show consistent per-action confirmation or rollback for consequential browser actions. File upload accepts any absolute local path, and recordings lack an automatic retention cap, limiting least privilege, sensitive-data handling, external-effects, and rollback scores. Dependency security is addressed only through install guidance, with no audit or complete provenance evidence. The README calls the project a clean-room reimplementation and references Anthropic's product, but the supplied material cannot verify provenance or authorization.
The README explains sidecar lifetime, startup budget, lack of health checks or auto-restart, failure behavior, and recovery steps, making its failure guidance useful. Dependency availability is limited by reliance on locally installed worker packages or fetching wrangler over the network on cold start. The materials contain notable contradictions: the description says 18 MCP tools while the README repeatedly says 21 and its table lists more; the README claims MIT while the supplied LICENSE is PolyForm Noncommercial; and recording flows are described as validated while in-browser capture is still awaiting a live pass. Self-consistency therefore scores low.
The documentation targets Claude Code users and describes multiple Chromium browsers, default/code/hybrid server variants, and recording scenarios. It also explains component responsibilities and known capability differences. Trigger conditions and boundaries for high-impact page actions are not clearly specified; unrestricted domains are presented as a feature, without a configurable restriction policy, so trigger precision receives only partial credit.
The README has practical sections for installation, verification, architecture, variants, troubleshooting, examples, and limitations. Tool naming has a consistent pattern, but tool counts and version claims conflict. The README's MIT statement conflicts with the supplied license file, so license clarity earns only partial credit. The supplied materials contain no version history or changelog. The README names noemica, but does not clearly assign maintenance responsibility or promise an update path.
The tools cover navigation, page reading, input, screenshots, and batched execution. The documentation explains the intended benefit of code mode for multi-step flows and provides benchmark results with caveats, helping users assess ordinary value and time costs. Self-reported performance is not treated as independently verified; the README acknowledges a small task set and variable results, and says the in-browser recording experience still needs a live pass.
The architecture, installation, troubleshooting, and tool differences include concrete names, steps, and observable checks. The benchmark gives task counts, statistics, and limitations, and distinguishes reported measurements from conclusions. Core feature, performance, and safety claims lack cross-source corroboration in the supplied material; the two source excerpts are also insufficient to verify the full product, so corroboration scores low.
- The README claims MIT, while the supplied LICENSE is PolyForm Noncommercial; verify the applicable repository license before relying on or using it.
- Tool counts conflict (18, 21, and more entries in the table); do not treat README counts or parity claims as verified capabilities.
- Recording stores page behavior, frames, and audio-related data locally, and file upload accepts any absolute local path. Consider local sensitive-data exposure and retention before use.
FAQ
Do I have to supply an OpenAI API key?
execute_code stopped working while other tools still work. Why?
Can several Claude Code sessions share one browser?
Does the extension record what I type?
Which browsers are supported and what changes are needed?
Thanks — we use this to improve the page.