Fix “Claude Started Debugging This Browser” in Chrome
Chrome shows “Claude started debugging this browser” whenever the Claude in Chrome extension connects. One launch flag, --silent-debugger-extension-api, hides it.
The flag lives on the Chrome process, not in your settings. Run it once in a terminal and the banner is back the next time you open Chrome from the Dock. So this guide sets it up permanently first, and leaves the throwaway command for the end.
Why it takes a launch flag
The extension uses Chrome's chrome.debugger API to read and act on pages, and Chrome warns you whenever any extension attaches that way.
There used to be a matching switch in chrome://flags. It expired in Chrome 77 and was removed. Only the command-line flag is left, and Chrome reads it once, at startup. That is why the fix is about how Chrome launches rather than anything inside it.
Make it permanent on macOS
macOS has no flags file for Chrome, so the answer is a small launcher app that starts Chrome with the flag.
1. Build the launcher
Open Terminal and paste this whole block at once. The bare SH line is part of it, not a typo.
APP="$HOME/Applications/Chrome (Quiet Claude Hint).app"
mkdir -p "$APP/Contents/MacOS" "$APP/Contents/Resources"
cat > "$APP/Contents/MacOS/chrome-quiet" <<'SH'
#!/bin/sh
exec "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--silent-debugger-extension-api "$@"
SH
chmod +x "$APP/Contents/MacOS/chrome-quiet"
cp "/Applications/Google Chrome.app/Contents/Resources/app.icns" \
"$APP/Contents/Resources/app.icns"Then, in the same window, write the bundle's Info.plist. It reuses $APP from above, so a fresh Terminal will not work.
cat > "$APP/Contents/Info.plist" <<'PLIST'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key><string>Chrome (Quiet Claude Hint)</string>
<key>CFBundleIdentifier</key><string>local.chrome.quiet-claude-hint</string>
<key>CFBundleExecutable</key><string>chrome-quiet</string>
<key>CFBundleIconFile</key><string>app</string>
<key>CFBundlePackageType</key><string>APPL</string>
<key>LSArchitecturePriority</key><array><string>arm64</string><string>x86_64</string></array>
<key>LSUIElement</key><true/>
</dict>
</plist>
PLISTThe launcher is a shell script, so Gatekeeper leaves it alone and Chrome updates cannot break it. LSUIElement hides the launcher's own icon so you see Chrome's, and LSArchitecturePriority starts it natively on Apple silicon.
2. Launch Chrome through it
Quit Chrome first, with Cmd-Q or chrome://quit. A running Chrome swallows the new window into the old flagless process and nothing changes.
Then open ~/Applications, drag Chrome (Quiet Claude Hint) to the Dock, and drop the old Chrome icon.
3. Optional: forget about it
Chrome only runs one browser instance at a time. Once a flagged one is running, opening Chrome from Spotlight or a link in Mail joins that instance, banner still hidden.
So add the launcher to System Settings → General → Login Items & Extensions → Open at Login. Chrome starts flagged when you log in and stays that way.
What not to do
You will find advice to replace /Applications/Google Chrome.app/Contents/MacOS/Google Chrome with a wrapper script. It works until Chrome's next update overwrites it, and it breaks the code signature macOS ties to your saved passwords in Keychain. A separate launcher costs one Dock icon and avoids both.
Make it permanent on Linux
Copy Chrome's launcher into your profile, where package updates cannot overwrite your edit:
mkdir -p ~/.local/share/applications
cp /usr/share/applications/google-chrome.desktop \
~/.local/share/applications/google-chrome.desktopOpen the copy:
nano ~/.local/share/applications/google-chrome.desktopYou are editing a text file now, not running commands. Add the flag to each line starting with Exec=:
Exec=/usr/bin/google-chrome-stable --silent-debugger-extension-api %UThere are usually several, one per action such as a new window or an incognito window. Miss one and the banner comes back the first time you start Chrome that way.
Save with Ctrl-O, Return, Ctrl-X. Close every Chrome window, then start Chrome from your applications menu.
Make it permanent on Windows
No terminal needed. Right-click your Chrome shortcut, choose Properties, and append the flag to Target:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --silent-debugger-extension-apiEvery shortcut carries its own Target, so the desktop icon, the Start Menu entry, and anything pinned to the taskbar each need the edit. Quit Chrome fully before testing.
Trying it once
To test the flag before setting any of that up, quit Chrome, then run the line for your platform:
# macOS
open -a "Google Chrome" --args --silent-debugger-extension-api
# Linux
google-chrome --silent-debugger-extension-apiUse google-chrome-stable if that is what your distribution installed. On Windows, use PowerShell rather than Command Prompt:
Start-Process "chrome.exe" -ArgumentList "--silent-debugger-extension-api"Check that it worked
Open chrome://version and look at Command Line. It should contain --silent-debugger-extension-api.
If it does not, Chrome was already running when you launched it. Chrome reuses the existing process, so your command opened a window in the old, flagless one. Quit properly and try again.
The trade-off
This hides a warning. It does not change what Claude, or any other extension, is allowed to do.
It also covers Chrome as a whole. Every extension using the debugger API goes quiet, not only Claude. On my own machine, where I installed Claude on purpose, that is a fine trade. On a shared machine I would leave the banner alone, since unexpected debugger activity is exactly what you want to notice.
Bottom line
Set the launcher up once and the banner is gone for good. A small .app on macOS, a copied .desktop file on Linux, an edited shortcut on Windows.
Whichever you use, quit Chrome completely before the first launch. Almost every "the flag doesn't work" report is a Chrome process that never actually restarted. ★



