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_KEYandANTHROPIC_AUTH_TOKENare 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(withcreateIfEmpty: 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):
- Confirmed the extension is installed, running, and logged in via its Settings page.
- Confirmed Claude Code uses an account login, not an API key (
ANTHROPIC_API_KEY/ANTHROPIC_AUTH_TOKENboth unset). - Re-ran
/loginin Claude Code (reported "Login successful"). - Fully quit Chrome with ⌘Q (not just closing the window) and reopened — multiple times, including after the re-login.
- 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.
- 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.
Showing cached comments. Read the full discussion on GitHub ↗
4 Comments
Confirming this on my machine — same silent native-messaging failure.
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.Ran into this too. Was going to file a separate issue with the following details:
Confirming the same failure on another macOS machine — extension never registers with the service, all local checks pass.
Environment
Symptoms
tabs_context_mcp→ "Browser extension is not connected"list_connected_browsers→[]switch_browser→ "No other browsers available"/chromein Claude Code shows Status: Enabled, Extension: InstalledAlready tried (no effect)
Everything local checks out; the extension simply never appears as a connected browser. Happy to provide more diagnostics if useful.
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 IDcom.anthropic.claude_code_browser_extension.json→ Claude Code wrapper (~/.claude/chrome/chrome-native-host)~/Library/Logs/Claude/chrome-native-host.logshowed 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-hostrunning, bridge socket present), and/chromein 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,
/chromeEnabled):list_connected_browsers→[]switch_browser→ "No other browsers available"/chrome→ "Select browser…" → "No browsers are connected"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.