Claude Code and Claude Desktop native host configs conflict for same Chrome extension ID

Resolved 💬 3 comments Opened Jan 23, 2026 by LaneConsultancy Closed Jan 27, 2026

Description

When both Claude Desktop and Claude Code are installed, their Chrome native messaging host configurations conflict because they both register for the same Chrome extension ID (fcoeoabgfenejglbffodgkkbkcdhcgfn). Chrome preferentially connects to Claude Desktop's native host, causing Claude Code's browser automation tools to fail with "Browser extension is not connected."

Environment

  • Claude Code version: 2.1.17
  • macOS (Darwin 25.2.0)
  • Both Claude Desktop and Claude Code installed

Native Host Configurations

Claude Desktop (com.anthropic.claude_browser_extension.json):

{
  "name": "com.anthropic.claude_browser_extension",
  "path": "/Applications/Claude.app/Contents/Helpers/chrome-native-host",
  "allowed_origins": [
    "chrome-extension://dihbgbndebgnbjfmelmegjepbnkhlgni/",
    "chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/",
    "chrome-extension://dngcpimnedloihjnnfngkgjoidhnaolf/"
  ]
}

Claude Code (com.anthropic.claude_code_browser_extension.json):

{
  "name": "com.anthropic.claude_code_browser_extension",
  "path": "/Users/<user>/.claude/chrome/chrome-native-host",
  "allowed_origins": [
    "chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/"
  ]
}

Both configs include chrome-extension://fcoeoabgfenejglbffodgkkbkcdhcgfn/, and Chrome connects to Claude Desktop's native host, leaving Claude Code unable to connect.

Steps to Reproduce

  1. Have both Claude Desktop and Claude Code installed
  2. Open Chrome with the Claude browser extension
  3. In Claude Code, try to use any mcp__claude-in-chrome__* tool
  4. Observe error: "Browser extension is not connected"

Workaround

Rename Claude Desktop's native host config to force Chrome to use Claude Code's:

mv ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json \
   ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json.bak

Then restart Chrome. This breaks Claude Desktop's browser control but allows Claude Code to work.

Expected Behavior

Both Claude Desktop and Claude Code should be able to coexist and either:

  1. Share the browser connection somehow, or
  2. Use separate Chrome extension IDs, or
  3. Have a clear mechanism for users to choose which app controls the browser

Actual Behavior

Chrome silently connects to Claude Desktop's native host, and Claude Code reports "Browser extension is not connected" with no indication of the conflict.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗