Claude Code and Claude Desktop native host configs conflict for same Chrome extension ID
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
- Have both Claude Desktop and Claude Code installed
- Open Chrome with the Claude browser extension
- In Claude Code, try to use any
mcp__claude-in-chrome__*tool - 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:
- Share the browser connection somehow, or
- Use separate Chrome extension IDs, or
- 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.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗