Claude fixed the layout and says “done”. But it cannot see the page — unless you give it a browser. Claude in Chrome connects Claude Code to the browser you use every day: it opens its own tabs in a visible window, reads the console, takes screenshots, and on a login page or a CAPTCHA it stops and waits for you.
What you need
- Google Chrome or Microsoft Edge with the Claude in Chrome extension, version 1.0.36 or later;
- a Pro, Max, Team or Enterprise plan, logged in through
/login. If you logged in with an API key, the Chrome integration is off; - macOS, Linux or regular Windows. It does not work in WSL.
Starting it
claude --chrome
The first time, a window with an explanation appears — press Enter. Then check:
/chrome
You need two lines: Status: Enabled and Extension: Installed. If the extension is not found, quit Claude Code, restart Chrome and run claude --chrome again. The first time, Claude Code installs a connection file, and Chrome reads it only at startup.
Now you can ask:
Open http://127.0.0.1:8000/ui-demo.html, tell me what the page shows,
read the console (reload to catch errors on load) and save a screenshot.
Every action starts with a Claude in Chrome wants to request. For a local page you can allow all actions for the session. From there it is the usual loop: Claude finds an error in the console, fixes the code, reloads the page and takes a new screenshot — this time as proof.
If Claude does not reach for the browser, start the session with --chrome or choose Enabled by default in /chrome. But then the browser tools load into every session and take up room in the .
An alternative without your logins
The key thing about Claude in Chrome is that it shares the login state of your browser. Claude can reach any site where you are logged in. The extension’s permissions decide which sites it may look at, click and fill in.
If the task does not need logins — and for checking your own page it almost never does — use the Chrome DevTools server with a temporary profile. It is worth starting like this:
claude mcp add --env CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS=1 --transport stdio chrome-devtools \
-- npx -y chrome-devtools-mcp@1.10.1 --isolated --no-usage-statistics --no-performance-crux
| What | Why |
|---|---|
@1.10.1 | an exact version: the package will not change by itself between runs |
--isolated | a temporary browser profile — without your logins |
--no-usage-statistics | do not send usage statistics to Google |
--no-performance-crux | do not send URLs from performance traces to the CrUX API |
CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS=1 | do not check npm for updates |
To give the whole team the server, write the same thing into .mcp.json at the repository root and commit it. Note: pages still load from the network, and the server shows Claude everything in that browser.
Quick check
You need to check that your local page on 127.0.0.1 renders without console errors. What is safer?
Careful
Claude in Chrome acts with your logins: email, bank, work systems — everything you are logged in to in that browser. Limit it to the sites the task needs, and read every “Claude in Chrome wants to” request before allowing a site. The Enabled by default option in /chrome keeps the browser connected in every session — turn it on only if you need the browser all the time.
Practice in the terminal