Claude in Chrome never connects to Claude Code CLI — list_connected_browsers returns [] / "Browser extension is not connected" despite matching account and full Chrome restart

Status Open
Reported on v2.1.206
Maintainer reply None cached
Activity 5 comments · opened Jul 10, 2026

The Claude Code CLI cannot connect to the Claude in Chrome extension. Every browser tool fails because no browser is ever paired: list_connected_browsers returns an empty array [], and any browser action returns "Browser extension is not connected." This persists across full Chrome restarts, a Claude Code re-login, and confirming both sides are on the same claude.ai account.

Environment:

  • OS: macOS 26.5.2 (build 25F84)
  • Claude Code: 2.1.206
  • Google Chrome: 149.0.7827.201
  • Claude in Chrome extension: installed, running, and logged in (extension Settings shows the account signed in, microphone access granted, notifications enabled)
  • Auth: Claude Code is authenticated via claude.ai account login (subscription), NOT an API key — both ANTHROPIC_API_KEY and ANTHROPIC_AUTH_TOKEN are unset in the environment
  • Account: the same claude.ai account is signed in to both the extension and the Claude Code CLI

Expected behavior:
list_connected_browsers returns the running Chrome instance, and tabs_context_mcp can create/attach to a tab so browser automation works.

Actual behavior:
The extension never pairs with the CLI session:

  • list_connected_browsers
[]
  • tabs_context_mcp (with createIfEmpty: true) →
Browser extension is not connected. Please ensure the Claude browser extension is installed and running (https://claude.ai/chrome), and that you are logged into claude.ai with the same account as Claude Code. If this is your first time connecting to Chrome, you may need to restart Chrome for the installation to take effect.

Troubleshooting already tried (all failed):

  1. Confirmed the extension is installed, running, and logged in via its Settings page.
  2. Confirmed Claude Code uses an account login, not an API key (ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN both unset).
  3. Re-ran /login in Claude Code (reported "Login successful").
  4. Fully quit Chrome with ⌘Q (not just closing the window) and reopened — multiple times, including after the re-login.
  5. Confirmed the MCP browser tools load correctly on the Claude Code side (via ToolSearch); the failure is purely the extension↔CLI handshake, not tool availability.
  6. The extension UI exposes no "Connect" / device-pairing button, and shows "No sites have been approved yet."

Note:

  • No corporate proxy or custom network setup.
  • Happy to provide extension logs or any other diagnostics — please point me at where the extension connection logs live.

View original on GitHub ↗

4 Comments

ES-Bristol · 1 month ago

Confirming this on my machine — same silent native-messaging failure.

  • Claude Code 2.1.202 (also reproduced on 2.1.197)
  • macOS 26.5.2 (Darwin 25.5.0)
  • Chrome 150.0.7871.125
  • Extension ID fcoeoabgfenejglbffodgkkbkcdhcgfn, installed + enabled, same account as Claude Code

Same symptom: /chrome → "Reconnect extension" opens a Chrome window that closes after ~1 second, and every browser tool returns "Browser extension is not connected." Native-messaging host manifest is present and correct, its wrapper execs the current binary (/opt/homebrew/Caskroom/claude-code/2.1.202/claude --chrome-native-host, exists + executable), correct Chrome profile, same account. Already tried full Chrome restart, extension remove + reinstall, and a complete machine power-cycle. Reproduces identically across two Claude Code versions and a reboot.

kennethsinder · 1 month ago

Ran into this too. Was going to file a separate issue with the following details:

I'm actually not sure what debug information would be helpful here but: - Claude extension installed in Chrome (screenshot of trying to poke at the extension directly in Chrome) and worked before <img width="302" height="74" alt="Image" src="https://github.com/user-attachments/assets/1513bdeb-243d-4266-a570-d076ad3d0715" /> - Possibly related to switching from iTerm 2 to Ghostty recently? - Same Claude account in the browser and Claude Code CLI - CLI version 2.1.220 (Claude Code) - MacBook Pro - Chrome version Version 150.0.7871.187 (Official Build) (arm64) - Instructions/error message provided to Claude and relayed to me are incorrect/not helpful
esobarzo · 26 days ago

Confirming the same failure on another macOS machine — extension never registers with the service, all local checks pass.

Environment

  • Claude Code 2.1.221 (also seen on earlier 2.1.x)
  • macOS Darwin 25.5.0 (arm64)
  • Chrome 150.0.7871.187
  • Claude in Chrome extension 1.0.84 (latest on the Web Store, updated 2026-07-28), installed in the Default profile
  • Extension signed in with the same claude.ai account as Claude Code (subscription login, no API key env vars)
  • No VPN or proxy

Symptoms

  • tabs_context_mcp → "Browser extension is not connected"
  • list_connected_browsers[]
  • switch_browser → "No other browsers available"
  • /chrome in Claude Code shows Status: Enabled, Extension: Installed

Already tried (no effect)

  • Full Chrome quit (Cmd+Q) and restart after installing the extension
  • Disabling and re-enabling the extension
  • Verified account match on both sides

Everything local checks out; the extension simply never appears as a connected browser. Happy to provide more diagnostics if useful.

esobarzo · 26 days ago

Follow-up from my earlier report — after further digging we could narrow this down considerably. There were two separate problems, and the second one looks server-side:

1. (Now resolved locally) Two Anthropic native-messaging hosts were in conflict.
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/ contained both:

  • com.anthropic.claude_browser_extension.json → Claude desktop app helper (/Applications/Claude.app/Contents/Helpers/chrome-native-host), allowed_origins includes the extension ID
  • com.anthropic.claude_code_browser_extension.json → Claude Code wrapper (~/.claude/chrome/chrome-native-host)

~/Library/Logs/Claude/chrome-native-host.log showed the extension had been connecting to the desktop app host all along (socket at /tmp/claude-mcp-browser-bridge-<user>/<pid>.sock), which would explain the CLI never seeing it. Today's update to Claude Code 2.1.221 renamed the desktop manifest to .json.disabled; after a full Chrome restart the extension now spawns the Claude Code native host (claude.exe --chrome-native-host running, bridge socket present), and /chrome in a fresh CLI session shows Status: Enabled with the browser MCP tools registered. The dual-manifest conflict may explain a number of the reports in this thread (anyone with both the Claude desktop app and Claude Code installed).

2. (Still broken) Account-level browser registration never happens.
Even with the local chain fully healthy (extension → Claude Code native host → bridge socket, /chrome Enabled):

  • list_connected_browsers[]
  • switch_browser → "No other browsers available"
  • /chrome → "Select browser…" → "No browsers are connected"
  • Signing out and back into the extension (to force device re-registration) changed nothing
  • claude.ai → Settings → "Claude in Chrome" is enabled for the account (Beta toggle on, site permissions "allow all sites"), so it is not an entitlement/rollout issue

So the remaining failure appears to be on the service side: the extension never registers as a connected browser for the account, independent of the local native-messaging setup and with the feature enabled on the account.

Environment: Claude Code 2.1.221, extension 1.0.84, Chrome 150.0.7871.187, macOS Darwin 25.5.0 (arm64), Claude desktop app also installed.

Showing cached comments. Read the full discussion on GitHub ↗