Arc: extension connects but all commands time out; /chrome always launches Chrome (hardcoded detection order)

Status Open
Reported on v2.1.212
Maintainer reply None cached
Activity 0 comments · opened Jul 25, 2026

Environment

  • Claude Code 2.1.212 (Homebrew cask), macOS (Darwin 25.5.0)
  • Claude in Chrome extension 1.0.81
  • Browsers installed: Arc (system default, extension installed + signed in), Google Chrome (initially without the extension)
  • Docs state Arc is supported: https://code.claude.com/docs/en/chrome.md ("Claude Code also detects the extension and sets up the connection in other Chromium-based browsers, including Brave, Arc, Vivaldi, and Opera.")

Issue 1 — Arc: extension connects at account level, but every command times out

With the extension installed, signed in, and current in Arc, and the native messaging host manifest present in ~/Library/Application Support/Arc/User Data/NativeMessagingHosts/:

  • The Arc instance appears in list_connected_browsers (isLocal: true) and can be selected.
  • Every actual command (tabs_context_mcp with createIfEmpty: true, tried repeatedly) times out with "The extension is connected but the page may be loading, unresponsive, or waiting on a permission prompt". No permission prompt is visible anywhere in Arc.
  • Installing the extension in Google Chrome instead worked immediately — same machine, same session, first try.

Issue 2 — /chrome always launches Google Chrome, even when Arc is the system default browser

BROWSER_DETECTION_ORDER is hardcoded to ["chrome","brave","arc","edge","chromium","vivaldi","opera"] and detectAvailableBrowser() returns the first browser found in /Applications. If Chrome is installed but unused (extension not even installed in it), every setup/reconnect flow still opens Chrome. There is no setting, flag, or env var to prefer a different browser, and the system default browser is ignored. Suggestion: prefer the OS default browser, or the browser where the extension is actually installed, or offer a picker.

Issue 3 — Native host manifests not written by in-session /chrome

In a session started without --chrome, running /chrome and walking the setup repeatedly never wrote com.anthropic.claude_code_browser_extension.json to any browser directory (and cachedChromeExtensionInstalled stayed false). Only relaunching with claude --chrome wrote the manifests (correctly, to all browsers' directories at once). If /chrome in-session is supposed to trigger the native host install, it didn't; if it isn't, the UI gives no hint that a relaunch with --chrome is required.

Issue 4 — UX: connected browsers are indistinguishable

Connected browsers are named "Browser 1" / "Browser 2" with UUID deviceIds. Users cannot tell which is which, and the ordinal names reshuffle when a new browser connects (the newest instance took over the name "Browser 1", demoting the existing one to "Browser 2"). Please name instances by browser (e.g. "Arc", "Google Chrome") + profile, which the extension can read from its own environment.

🤖 Filed via Claude Code on the user's behalf.

View original on GitHub ↗