Skip to content

feat: add Claude plugin executablePath user config#1981

Open
maruen wants to merge 1 commit intoChromeDevTools:mainfrom
maruen:feat/claude-plugin-executable-path
Open

feat: add Claude plugin executablePath user config#1981
maruen wants to merge 1 commit intoChromeDevTools:mainfrom
maruen:feat/claude-plugin-executable-path

Conversation

@maruen
Copy link
Copy Markdown

@maruen maruen commented Apr 29, 2026

Summary

  • Add a Claude plugin executablePath user config option so users can point the MCP at a custom Chrome binary (e.g. Chrome for Testing) without editing the plugin manifest in their plugin cache.
  • Pass the option through with --executablePath=${user_config.executablePath}. A blank value keeps the default auto-detected-stable-Chrome behavior.
  • Document the Claude Code pluginConfigs settings shape, mirroring feat: add Claude plugin browser URL config #1851.

Motivation

On macOS, when the user's regular Chrome and the MCP-launched Chrome share bundle ID com.google.Chrome, AppleScript tell application "Google Chrome" becomes ambiguous and OS-automation menu commands (e.g. Tab → Pin Tab) silently no-op on the wrong window. Pointing the MCP at /Applications/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing (bundle ID com.google.chrome.for.testing) gives the MCP-launched Chrome a separate AppleScript identity and resolves the conflict — but currently requires patching the plugin manifest in the user's plugin cache, which gets reset on plugin upgrade.

Testing

  • jq . .claude-plugin/plugin.json parses cleanly
  • npm run check-format (eslint + prettier) passes

Add a userConfig option for the executablePath CLI flag so users running
the plugin via Claude Code can point at a custom Chrome binary without
editing the plugin manifest in their plugin cache. Useful when the host
has multiple Chrome installations — for example pointing at Chrome for
Testing on macOS so the MCP-launched Chrome has a separate bundle ID
(com.google.chrome.for.testing) and can be scripted unambiguously by
AppleScript / OS automation tools without conflicting with the user's
regular Chrome (com.google.Chrome).

Mirrors the user_config.browserUrl pattern from ChromeDevTools#1851.

Leaving the option blank keeps the existing auto-detected-stable-Chrome
behavior — no opt-in cost.
Comment on lines +5 to +10
"userConfig": {
"executablePath": {
"description": "Optional path to a custom Chrome executable. Useful when the system has multiple Chrome installations (e.g. point at the Chrome for Testing binary so the MCP-launched Chrome stays separate from the user's regular Chrome and can be scripted unambiguously by AppleScript / OS automation tools). Leave blank to use the auto-detected stable Chrome.",
"sensitive": false
}
},
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we update it as part of npm run gen? so that it does not need to be manually maintained? perhaps a new script to update plugin configurations would be great.

cc @natorion

@natorion
Copy link
Copy Markdown
Contributor

I think adding this makes sense. Any other client integrations we have to update?

@OrKoN
Copy link
Copy Markdown
Collaborator

OrKoN commented Apr 30, 2026

I think adding this makes sense. Any other client integrations we have to update?

AFAIK not all clients support something like this in their plugins. So it would have to be done per client.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants