Your Chrome, behind the terminal.

agent-chrome lets Claude Code use a copy of your signed-in Chrome. The window opens behind your other apps, so you keep typing while Claude browses as you.

Get it on GitHub > /plugin marketplace add rav4nn/agent-chrome

Free and open source. Needs macOS, Google Chrome, Node 18.3+ and Claude Code.

Same prompt, two setups: >Open Hacker News and the first 3 posts in 3 tabs

Playwright MCP, extension mode

Each browser call pulls Chrome to the front. What you type next lands in the browser.

Took focus 0 times

agent-chrome

Tabs open in a red window behind your terminal. You keep typing.

Took focus 0 times

Animated from a real side-by-side recording. Watch the 1:26 video

Set it up in five steps.

About two minutes. Each step plays on the right as you scroll.

  1. Quit Chrome

    Press ⌘ Q in Chrome. Closing the window isn't enough.

    agent-chrome copies your Chrome profile. If Chrome is running, the copy can lose its sign-ins.

  2. Add the plugin

    In Claude Code, run these two commands:

    /plugin marketplace add rav4nn/agent-chrome
    /plugin install agent-chrome@agent-chrome

    The plugin teaches Claude how to set up and use agent-chrome. It doesn't give Claude a browser yet. Step 3 does.

    Rather not use the plugin?

    Run the setup CLI with npx. No clone needed:

    npx github:rav4nn/agent-chrome profiles
    npx github:rav4nn/agent-chrome add "Work"

    Or clone the repo:

    git clone https://github.com/rav4nn/agent-chrome.git
    cd agent-chrome && node bin/agent-chrome.mjs add "Work"
  3. Set up a profile

    Ask Claude:

    Set up agent-chrome for one of my Chrome profiles.

    Claude lists your Chrome profiles and asks which one you want. Pick one, say Work.

    macOS then tells you that agent-chrome-work can run in the background. That's the small proxy for this profile. It uses about 25 MB of memory while it waits.

  4. Start a new session and test it

    Restart Claude Code so the new chrome-work tools load. Then ask:

    Open chrome-work and go to myaccount.google.com. Tell me which Google account is signed in. Don't click or change anything.

    Keep typing while it runs. The agent window has a red theme and opens behind your terminal.

  5. Quit it, then ask again

    When Claude is done, quit the red Chrome from the Dock. Then ask:

    Open chrome-work and go to example.com.

    The window comes back behind your apps, still signed in. Only you ever close it.

Name the profile in every prompt.

Each profile you add becomes its own MCP server, chrome-<name>. Say the name and Claude uses that profile, with whatever accounts it's signed in to.

Open chrome-work and go to reddit.com. Open the first 3 posts and summarise them.
Open chrome-work and check my GitHub notifications. List the ones that need a reply.
Open chrome-personal and find the tracking link for my last Amazon order.

Why the window stays behind.

On macOS, Chrome jumps to the front each time a tool talks to it over its debug port. A pipe doesn't trigger that, but only one program can hold a pipe.

agent-chrome runs a small proxy for each profile. The proxy holds the pipe to Chrome, and every Claude session connects to the proxy. So several sessions share one signed-in Chrome, and none of them steals focus.

About 500 lines of NodeOne dependencyLocalhost onlyNo telemetryMIT
Claude session A Claude session B Claude session C proxy127.0.0.1:9410 Chromeyour profile copy pipe WebSocket

Good to know.

Does Claude use my real Chrome profile?

No. It uses a copy. On APFS the copy takes no extra disk space until the two drift apart. Your own Chrome stays yours.

I signed in to a site in my own Chrome. Why is the agent window signed out?

The copy doesn't pick up new sign-ins. Sign in inside the red window once, or quit Chrome and run add "Work" --recopy for a fresh copy.

How much memory does it use?

The proxy uses about 25 MB while it waits. An open agent window is a full Chrome: about 500 MB for one simple page, more for heavy sites. Quit the window to free it.

What syncs back to my Google account?

Passwords, bookmarks, autofill and settings still sync. Themes, typed URLs, tabs, extensions and apps don't. So a password the agent saves reaches your real account.

Can a website connect to the proxy?

No. The proxy refuses any request that a browser sends with an Origin header, and any Host other than 127.0.0.1 or localhost. Other programs on your Mac can connect, the same as with Chrome's own debug port.

Does my password manager work in the agent window?

No. Extensions are off there. Sign in by hand once, or let Chrome's built-in password manager fill the form.

Windows or Linux?

Not yet. The focus bug is a macOS problem, and the setup CLI is macOS only.

How do I remove it?

Ask Claude to remove agent-chrome for chrome-work, or run npx github:rav4nn/agent-chrome remove work. It stops the proxy, removes the login item and unregisters the MCP server. Add --delete-profile to delete the copy too.

Let Claude browse.
Keep your keyboard.

Free, open source, and set up in about two minutes.

Get it on GitHub