GitHub - noemica-io/open-claude-in-chrome: Claude in Chrome, reverse-engineered and open-source. No domain blocklist. Any Chromium browser. Same 18 MCP tools, same performance.

5 min read Original article ↗

Open Claude in Chrome

Official Claude in Chrome gives you 58 blocked domains and two browsers.
Open Claude in Chrome gives you the whole web.

Clean-room reimplementation of Anthropic's browser extension. No blocklist. Any Chromium browser. 100% feature & performance parity.
by noemica

What's different · Install · Architecture · Demo · How I built it


Demo — Claude on Tinder, Reddit, and Robinhood
Watch Claude navigate Tinder, Reddit, and Robinhood — sites the official extension can't reach.


The official Claude in Chrome extension gives Claude Code full browser automation — as long as you stay within Anthropic's allowlist of "safe" sites. Open Claude in Chrome is a clean-room reimplementation that strips the restrictions while keeping all 18 MCP tools and matching the official extension's performance.

What's Different

Claude in Chrome Open Claude in Chrome
Domain blocklist 58 blocked domains across 11 categories No blocklist. Navigate anywhere.
Browser support Chrome and Edge only Any Chromium browser (Chrome, Edge, Brave, Arc, Opera, Vivaldi, etc.)
Source code Closed source Open source (MIT)
Tools 18 MCP tools Same 18 MCP tools
Performance Baseline Identical

Blocked Domains in the Official Extension

Category Blocked Sites
Banking Chase, BofA, Wells Fargo, Citibank
Investing/Brokerage Schwab, Fidelity, Robinhood, E-Trade, Wealthfront, Betterment
Payments/Transfers PayPal, Venmo, Cash App, Zelle, Stripe, Square, Wise, Western Union, MoneyGram, Adyen, Checkout.com
BNPL Klarna, Affirm, Afterpay
Neobanks/Fintech SoFi, Chime, Mercury, Brex, Ramp
Crypto Coinbase, Binance, Kraken, MetaMask
Gambling DraftKings, FanDuel, Bet365, Bovada, PokerStars, BetMGM, Caesars
Dating Tinder, Bumble, Hinge, Match, OKCupid
Adult Pornhub, XVideos, XNXX
News/Media NYT, WSJ, Barron's, MarketWatch, Bloomberg, Reuters, Economist, Wired, Vogue
Social Media Reddit

Open Claude in Chrome has none of these restrictions.

Architecture

Claude Code <--stdio MCP--> mcp-server.js <--TCP--> native-host.js <--native messaging--> Extension <--> Browser

Three components:

  1. Extension — Manifest V3 with CDP-based browser automation (all 18 tools)
  2. MCP Server — Node.js process started by Claude Code, exposes tools via MCP
  3. Native Messaging Host — Bridge between the MCP server and the extension

Installation

Prerequisites

  • Node.js v18+
  • Any Chromium browser (Chrome, Edge, Brave, Arc, Opera, Vivaldi, etc.)
  • Claude Code v2.0.73+

Step 1: Install dependencies

cd host
npm install
cd ..

Step 2: Load the extension

  1. Go to chrome://extensions (or brave://extensions / edge://extensions)
  2. Enable Developer mode
  3. Click Load unpacked and select the extension/ directory
  4. Copy the extension ID shown under the extension name

Step 3: Register native messaging

./install.sh <your-extension-id>

If you use multiple browsers, pass all IDs:

./install.sh <chrome-id> <brave-id> <arc-id>

Step 4: Restart your browser

Close all windows and reopen. The browser reads native messaging host configs on startup.

Step 5: Add to Claude Code

claude mcp add open-claude-in-chrome -- node /absolute/path/to/host/mcp-server.js

Find the absolute path with:

echo "node $(pwd)/host/mcp-server.js"

Verification

Start a new Claude Code session and test:

Navigate to reddit.com and take a screenshot

Reddit loads. No domain restriction.

Available Tools

All 18 tools, identical to Claude in Chrome:

Tool Description
tabs_context_mcp Get tab group context
tabs_create_mcp Create new tab
navigate Navigate to URL, back, forward
computer Mouse, keyboard, screenshots (13 actions)
read_page Accessibility tree with element refs
get_page_text Extract article/main text
find Find elements by text/attributes
form_input Set form values by ref
javascript_tool Execute JS in page context
read_console_messages Console output (filtered)
read_network_requests Network activity
resize_window Resize browser window
upload_image Upload screenshot to file input
gif_creator GIF recording (stub)
shortcuts_list List shortcuts (stub)
shortcuts_execute Run shortcut (stub)
switch_browser Switch browser (stub)
update_plan Present plan (auto-approved)

Updating After Code Changes

No build step. All files are plain JavaScript. After pulling or editing code:

What changed What to do
extension/background.js or extension/content.js or extension/manifest.json Reload the extension: brave://extensions > click the reload icon
host/mcp-server.js Kill stale servers and reconnect: pkill -f "node.*mcp-server" then /mcp in Claude Code
host/native-host.js Restart the browser (close all windows, reopen)
install.sh or native host name changed Re-run ./install.sh <extension-id>, restart browser, re-add MCP

Quick reset (nuclear option)

If things are broken and you're not sure why:

# 1. Kill all MCP servers
pkill -f "node.*mcp-server"

# 2. Re-run install
./install.sh <your-extension-id>

# 3. Restart browser (close all windows, reopen)

# 4. Reload extension in brave://extensions

# 5. Reconnect in Claude Code
# /mcp

Multiple Sessions

Multiple Claude Code sessions can share the same browser extension. The first session becomes the "primary" (owns the TCP port), and subsequent sessions connect as clients through the primary. All sessions can use the browser simultaneously.

If a session disconnects, kill stale servers and reconnect:

pkill -f "node.*mcp-server"
# then /mcp in each Claude Code session

Troubleshooting

Extension not connecting

  1. Verify the extension is loaded and enabled
  2. Check that ./install.sh was run with the correct extension ID
  3. Restart the browser completely (all windows)
  4. Verify the native messaging host manifest exists:
    • Chrome (macOS): ~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.open_claude_in_chrome.json
    • Brave (macOS): ~/Library/Application Support/BraveSoftware/Brave-Browser/NativeMessagingHosts/com.anthropic.open_claude_in_chrome.json
    • Edge (macOS): ~/Library/Application Support/Microsoft Edge/NativeMessagingHosts/com.anthropic.open_claude_in_chrome.json

MCP server not found

Use an absolute path:

claude mcp add open-claude-in-chrome -- node /absolute/path/to/host/mcp-server.js

"Browser extension is not connected"

The MCP server started but the native host hasn't connected. Try:

  1. Open any webpage (wakes the service worker)
  2. Check service worker logs: chrome://extensions > "Inspect views: service worker"
  3. Verify host/native-host-wrapper.sh exists

Tools fail immediately after reconnect

Stale MCP server processes from previous sessions may be holding the port. Fix:

pkill -f "node.*mcp-server"

Then /mcp in Claude Code to reconnect. The fresh server will bind the port and accept the native host connection.

Port conflict

Default port is 18765. To change:

  1. Create ~/.config/open-claude-in-chrome/config.json:
  2. Restart browser and Claude Code

License

MIT

Built by Sebastian Sosa (Noemica)