Claude Code and Claude.app conflict over Chrome extension native messaging host
Resolved 💬 3 comments Opened Jan 26, 2026 by ashray Closed Jan 29, 2026
Bug Description
Claude Code and Claude.app (desktop) both register native messaging hosts for the same Chrome extension, causing a conflict where only one can work at a time.
Root Cause
Both apps use the same native messaging host name com.anthropic.claude_browser_extension for the Chrome extension ID fcoeoabgfenejglbffodgkkbkcdhcgfn:
- Claude.app registers:
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json- Points to:
/Applications/Claude.app/Contents/Helpers/chrome-native-host
- Claude Code registers:
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json- Points to:
~/.claude/chrome/chrome-native-host
However, the Chrome extension calls chrome.runtime.connectNative("com.anthropic.claude_browser_extension"), so it always connects to Claude.app's native host, even when Claude.app is closed.
Symptoms
- Claude Code browser automation returns "Browser extension is not connected"
- Debug logs show MCP server "successfully connected" but tools fail
- Process list shows Claude.app's
chrome-native-hostrunning even when Claude.app is quit
Current Workaround
Manually modify com.anthropic.claude_browser_extension.json to point to Claude Code's native host instead:
{
"name": "com.anthropic.claude_browser_extension",
"path": "~/.claude/chrome/chrome-native-host",
...
}
Then restart Chrome.
Suggested Fix
- Have Claude Code use a different native messaging host name that doesn't conflict with Claude.app
- Or have the Chrome extension support connecting to either host based on context
- Or provide a user-facing toggle to choose which app handles browser automation
Environment
- macOS Darwin 25.1.0
- Claude Code version 2.1.19
- Claude.app installed alongside Claude Code
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗