Set this up once and Claude Code can control your browser from the terminal.
What This Does
With Claude in Chrome connected, you can give Claude tasks like:
- "Open that lead's LinkedIn and grab their email"
- "Navigate to my Notion dashboard and create a new task"
- "Screenshot that page and tell me what's on it"
- "Click the Sign In button and fill in my credentials"
Claude navigates, clicks, reads pages, fills forms, takes screenshots, and records GIFs. No Puppeteer, no separate scripts. Claude in your terminal talks to your actual browser.
Prerequisites
- Mac (this guide covers macOS)
- Claude Code installed
- Google Chrome installed
- A Claude subscription (Pro or above)
Step 1: Install the Chrome Extension
- Go to the Chrome Web Store and search for "Claude in Chrome" by Anthropic.
- Install it and pin it to your Chrome toolbar so you can see when it's active.
Tip: If the extension icon is greyed out, click it to activate.
Step 2: Start Claude Code with -chrome
Running claude in terminal without flags does not load the browser tools. You need:
claude --chromeThe --chrome flag connects Claude Code to the Chrome extension via native messaging. Without it, the mcp__claude-in-chrome__* tools don't exist in your session and Claude falls back to open commands, which give it no real browser control.
Verify it's working: Inside a Claude Code session, ask Claude to check for browser tools. You should see mcp__claude-in-chrome__* tools available, including tabs_context_mcp, Maps, and read_page.
Step 3: Set Up a Permanent Alias
Add an alias to your shell config so claude always includes --chrome:
For zsh (default on macOS):
echo "alias claude='claude --chrome'" >> ~/.zshrc
source ~/.zshrcFor bash:
echo "alias claude='claude --chrome'" >> ~/.bashrc
source ~/.bashrcFrom now on, typing claude loads the browser tools automatically.
Step 4: Verify the Connection
Open a new Claude Code session and paste this:
Use ToolSearch to find mcp__claude-in-chrome__tabs_context_mcp and tell me if it's available.- Success: Claude finds it, browser control is live.
- Failure: Claude says it can't find it? Check the Troubleshooting section below.
How It Works
Most MCPs go in settings.json under mcpServers. Claude in Chrome does not. The extension registers through Chrome native messaging when you pass --chrome. Nothing to add to your settings file manually.
Side effects of this architecture:
- Disabling the extension removes the tools, even with
-chromeactive. - Restarting Chrome with the extension off drops browser access until you re-enable it and restart the Claude session.
- Restarting the Claude Code session reconnects automatically.
Troubleshooting
[!IMPORTANT] Tools don't appear after
claude --chrome: 1. Go tochrome://extensions/2. Find "Claude in Chrome" and toggle it ON. 3. Restart the Claude Code session. 4. Try again.
[!WARNING] Claude uses the
opencommand instead of the MCP: - The session started without-chrome. - Check:alias | grep claude. - If the alias is missing, run the alias step above and restart your terminal.
[!TIP] Extension is on but tools are still missing: - Quit Chrome completely (Cmd+Q, not just close the window). - Restart the Claude Code session. - If using the Claude Code desktop app, open Chrome before launching Claude Code.
One-Shot Setup Prompt
Paste this into a Claude Code session. It walks through the full setup and confirms the connection at the end:
I want to set up Claude in Chrome MCP so you can control my browser from the terminal.
Do this in order:
1. Check if ~/.zshrc (or ~/.bashrc if I use bash) already has
alias claude='claude --chrome'2. If missing, add it to the end of the file 3. Tell me to runsource ~/.zshrc(or ~/.bashrc) 4. Tell me to install the "Claude in Chrome" extension from the Chrome Web Store 5. Tell me to go to chrome://extensions/ and enable the Claude in Chrome extension 6. Tell me to restart this Claude Code session 7. After I confirm I've restarted, use ToolSearch to find mcpclaude-in-chrometabs_context_mcp and confirm it's liveOne step at a time. Wait for my confirmation before moving to the next.
What Claude Can Do Once Connected
- Navigate: "Go to github.com/my-repo and tell me the latest commit"
- Read pages: "Open that URL and summarise what's on it"
- Click: "Click the blue Sign Up button"
- Fill forms: "Fill in the contact form with my details"
- Screenshot: "Take a screenshot of the current page"
- Record GIFs: "Record what happens when I click through the checkout flow"
Why Not Puppeteer?
Puppeteer spins up a headless browser. Two problems: if Chrome is already running (it always is), Puppeteer hits a SingletonLock conflict and fails to connect. And even when it works, it controls an invisible browser you can't see.
Claude in Chrome controls your actual running Chrome. You watch it work in real time.