Claude Code Chrome integration fails to connect when Claude Desktop (Cowork) is also installed
Description
Claude Code's Chrome browser integration (tabs_context_mcp) never connects when Claude Desktop is also installed
with the Cowork/browser feature enabled. The extension remains in a disconnected state even with Claude Desktop fully
closed.
## Environment
- Claude Code version: 2.1.59
- Extension version: 1.0.56
- Extension ID: fcoeoabgfenejglbffodgkkbkcdhcgfn
- OS: macOS (Darwin 25.3.0)
- Chrome: latest
## Root Cause (Investigated)
Both Claude Desktop and Claude Code register native messaging hosts for the same extension ID:
com.anthropic.claude_browser_extension→/Applications/Claude.app/Contents/Helpers/chrome-native-hostcom.anthropic.claude_code_browser_extension→~/.claude/chrome/chrome-native-host
Claude Desktop force-installs the extension via Chrome's External Extensions policy (~/Library/Application), causing Chrome to label it "Added
Support/Google/Chrome/External Extensions/fcoeoabgfenejglbffodgkkbkcdhcgfn.json
by a third-party". The extension's service worker opens the Desktop Cowork side panel UI but never initiates a
connection to Claude Code's native host.
## Steps to Reproduce
- Install Claude Desktop with Cowork/browser integration enabled
- Install Claude Code and set up Chrome integration
- Close Claude Desktop completely
- Attempt to use Claude Code's Chrome tools — connection always fails
## What Was Tried
- Full Chrome restarts (multiple)
- Removing and reinstalling the extension
- Verified native messaging host config is correct with matching extension ID
- Verified Claude Code binary is functional (native host creates socket successfully)
- Verified account match (same email in Claude Code auth and claude.ai in Chrome)
- Temporarily hiding Desktop's native messaging host file — did not resolve it
## Expected Behavior
Claude Code's Chrome integration should work independently of whether Claude Desktop is installed.
## Actual Behavior
tabs_context_mcp always returns: "Browser extension is not connected"
The extension only opens the Desktop Cowork side panel UI and does not connect to Claude Code's native messaging host.
3 Comments
Still experiencing this on macOS (Darwin 25.3.0, Chrome latest).
tabs_context_mcpreturns "Browser extension is not connected" consistently. Been broken for days. Any update on a fix? @anthropics/claude-codeEnvironment: macOS, Chrome with multiple profiles (Default + Profile 2, 7, 9, 10, 11, 12), Claude Desktop (Cowork mode)
Debugging session findings:
chrome-native-hostprocess starts successfully (PID visible in Activity Monitor) — Chrome ↔ native messaging host communication workstabs_context_mcpalways returns "not connected"com.anthropic.claude_code_browser_extension.jsonandcom.anthropic.claude_browser_extension.jsonboth reference the same extension ID (fcoeoabgfenejglbffodgkkbkcdhcgfn), causing conflicts when both are active~/Library/Application Support/Google/Chrome/External Extensions/) force-installs the extension into ALL Chrome profiles — previous cleanup commands targeting onlyDefaultprofile had no effectConclusion: The native messaging host starts but cannot establish the socket connection back to the Cowork VM. This appears to be the same regression from the Feb 2026 Claude Desktop update.
This is the same bug as #54567 — that thread has the full root-cause analysis: the extension's service worker probes
com.anthropic.claude_browser_extension(Desktop) beforecom.anthropic.claude_code_browser_extension(CLI) and takes the first that returnspong.Adding a repro data point for anyone landing here first:
Workaround that does work (refining "even with Claude Desktop fully closed" from the OP): quitting Claude.app is necessary but not sufficient. Chrome owns the native host process, so it stays alive after the GUI exits. You also need to kill the orphaned native host:
After that, the extension's
onDisconnectfires, it re-probes the two host names, falls through to Claude Code's host, and the connection works. No Chrome restart or extension reinstall needed.