Claude-in-Chrome: 'extension not connected' persists on 2.1.197 even with live native host; Desktop app can silently claim the extension channel
Open 💬 0 comments Opened Jul 13, 2026 by heylumio-sean
Summary
Claude-in-Chrome MCP reports "Browser extension is not connected" on every call, even after exhaustively verifying/repairing the pairing preconditions. Root-cause trail suggests two distinct problems: (1) the Claude Desktop app can claim the extension's native-messaging channel, silently breaking Claude Code's browser tools with a misleading error; (2) after fully clearing the desktop channel — with a live claude --chrome-native-host process spawned by the extension — the CLI session still cannot see the browser on v2.1.197.
Environment
- macOS (Darwin 25.5.0)
- Claude Code 2.1.197 (Homebrew cask — current cask version at time of filing; newer builds exist on the native-installer channel)
- Claude in Chrome extension v1.0.80 (
fcoeoabgfenejglbffodgkkbkcdhcgfn) - Chrome: multiple profiles; extension installed + enabled in the active profile (verified via profile Preferences: no
disable_reasons) - Extension and Claude Code CLI signed into the same claude.ai account (verified visually in extension settings page and CLI
/status) - Claude Desktop app also installed (Electron 42.5.1 build 1.20186.1)
Timeline / repro
- Browser tools worked previously (same machine, same account).
- The Claude Desktop app (re)registered its native-messaging host manifest (
com.anthropic.claude_browser_extension.json, file mtime matches the breakage time) and its helper process (/Applications/Claude.app/Contents/Helpers/chrome-native-host chrome-extension://fcoeo.../) held the extension's channel. - From that point, every
tabs_context_mcp/list_connected_browserscall from Claude Code returned "Browser extension is not connected" — while the extension's own sidebar kept working (desktop channel). The error text (check install / same account / restart Chrome) points users in the wrong direction for this failure mode. - Remediation attempted, in order, verifying state at each step:
- Quit Claude Desktop → its helper process survived as an orphan still holding the channel; killed it manually.
- Parked the desktop manifest so only
com.anthropic.claude_code_browser_extension.json(→~/.claude/chrome/chrome-native-host, wrapper exec'ing the 2.1.197 binary — same version as the running session) remained. - Extension sign-out/sign-in; extension toggle off/on at
chrome://extensions; full Chrome restart. - After the toggle, the extension did spawn
claude --chrome-native-host(process observed running, correct binary, correct version). - Reconnected the
claude-in-chromeMCP server in the CLI session (/mcp→ reconnect → "Reconnected").
- Result: still "Browser extension is not connected" on every call.
Expected
- Claude Code's browser tools connect when the extension is installed, enabled, signed into the same account, and its native host process is running.
- If the Desktop app claims the channel, the error should say so (e.g. "browser is paired with the Claude Desktop app") instead of the generic not-connected text.
- Quitting the Desktop app should not leave an orphaned native-host helper holding the extension channel.
Actual
- Generic "Browser extension is not connected" in all cases, including with a live
claude --chrome-native-hostprocess spawned by the extension and no competing desktop channel.
Notes
- A second machine on Claude Code 2.1.207 pairs fine, so this may already be fixed post-2.1.197 — if so, the actionable residue is (a) the misleading error message for the desktop-app-owns-the-channel case and (b) the orphaned desktop helper process after quit.