by noemica-io
Claude in Chrome, reverse-engineered and open-source. No domain blocklist. Any Chromium browser. Same 18 MCP tools, same performance.
# Add to your Claude Code skills
git clone https://github.com/noemica-io/open-claude-in-chromeGuides for using ai agents skills like open-claude-in-chrome.
No comments yet. Be the first to share your thoughts!
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.
| | 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 |
| 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.
Claude Code <--stdio MCP--> mcp-server.js <--TCP--> native-host.js <--native messaging--> Extension <--> Browser
Three components:
cd host
npm install
cd ..
chrome://extensions (or brave://extensions / edge://extensions)extension/ directory./install.sh <your-extension-id>
If you use multiple browsers, pass all IDs:
./install.sh <chrome-id> <brave-id> <arc-id>
Close all windows and reopen. The browser reads native messaging host configs on startup.
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"
Start a new Claude Code session and test:
Navigate to reddit.com and take a screenshot
Reddit loads. No domain restriction.
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) |
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 |
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 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
./install.sh was run with the correct extension ID~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.open_claude_in_chrome.json~/Library/Application Support/BraveSoftware/Brave-Browser/NativeMessagingHosts/com.anthropic.open_claude_in_chrome.json~/Library/Application Support/Microsoft Edge/NativeMessagingHosts/com.anthropic.open_claude_in_chrome.jsonUse an absolute path:
claude mcp add open-claude-in-chrome -- node /absolute/path/to/host/mcp-server.js
The MCP server started but the native host hasn't connected. Try:
chrome://extensions > "Inspect views: service worker"host/native-host-wrapper.sh existsStale 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.
Default port is 18765. To change:
~/.config/open-claude-in-chrome/config.json:
{ "port": 19000 }
MIT
Built by Sebastian Sosa (Noemica)