Getting Started
Installation
Installing chrome-use is just three things: install the CLI with one command, add the Chrome extension and register the local bridge, and pull the agent skills into your project.
It ships as prebuilt binaries via GitHub Releases—no npm, no token—so neither the publisher nor you has to log into any account.
Once installed, run chrome-use doctor to self-check in one shot.
Install the CLI in one line
Download the prebuilt binary for your platform from the latest
GitHub Release
to install chrome-use (plus the short alias abs). This is the primary distribution channel—it doesn't go through npm and needs no token.
$ curl -fsSL https://raw.githubusercontent.com/leeguooooo/chrome-use/main/install.sh | sh
chrome-use and abs are the same executable—abs is just a short alias.
There's no separate "stealth executable"; anti-detection is runtime behavior. Connecting to your real Chrome applies zero patches, and only --launch (opening a fresh browser) applies the full patch set. See
Connecting to your real Chrome.
Other install methods
When you need a pinned version, a custom install directory, or manual placement on Windows:
# pin a specific version
$ AGENT_BROWSER_VERSION=v1.5.70 curl -fsSL https://raw.githubusercontent.com/leeguooooo/chrome-use/main/install.sh | sh
# install to a custom directory
$ AGENT_BROWSER_BIN_DIR=$HOME/bin curl -fsSL https://raw.githubusercontent.com/leeguooooo/chrome-use/main/install.sh | sh
- Windows: download
chrome-use-win32-x64.tar.gzfrom the Releases page and putchrome-use.exeon your PATH. The extension path for connecting to your real Chrome works on Windows too—see the next section. - npm (legacy):
npm install -g chrome-useis still published, but GitHub Releases is the primary channel now.
For the list of pinnable tags, see Lineage—how the tags evolved from the agent-browser fork (early v0.x-fork.N tags) to today's chrome-use v1.5.x tags.
which -a chrome-use shows more than one install, an older npm / pnpm copy may be shadowing the newer build installed by install.sh
(the npm registry lags behind GitHub Releases). Remove the old copy—npm rm -g chrome-use or pnpm rm -g chrome-use—so the new build takes effect.
Install the extension, connect your real Chrome
To drive the real Chrome you're already logged into (reusing existing sessions, no confirmation prompts), install the browser extension and register the local bridge once. This is the recommended path.
-
Install the chrome-use extension from the Chrome Web Store with a one-click Add to Chrome.
The store build stays stable across restarts, which suits unattended use. Confirm you got the right one by the listing name chrome-use and extension ID
knfcmbamhjmaonkfnjhldjedeobeafmk(its repo codename isab-connect). - Register the native-messaging host—one time:
# register the local bridge (one time)
$ chrome-use extension install
# after that, open drives your already-logged-in Chrome directly
$ chrome-use open https://x.com/home
From then on, chrome-use open drives your real, already-logged-in Chrome through native messaging—no debug port, no token,
and never an "Allow remote debugging?" prompt. The extension auto-updates and stays connected across restarts, so you never confirm again on later calls. For how the connection works, see
Connecting to your real Chrome.
chrome-use extension install works on Windows: it registers the native-messaging host in the HKCU registry,
then you add the extension once from the Web Store (Windows has no macOS-style silent force-install). After that, chrome-use open drives your logged-in Chrome the same way.
chrome-use --launch open <url> to spin up a brand-new, isolated blank-profile browser (with the full anti-detection patch set),
no extension required—CI takes this path automatically. When you need real cookies / login state, use --profile auto instead.
Pull the agent skills
install.sh above already did thiscurl … | sh one-liner installs the agent skill globally right after the binary (npx skills add leeguooooo/chrome-use -g).
Read on only to install it by hand or on a non–Claude Code runner. Opt out with AGENT_BROWSER_NO_SKILL=1.
Claude Code — plugin marketplace (recommended): installs the skill globally (all projects), auto-updates, and lists the rest of the
*-use family:
> /plugin marketplace add leeguooooo/plugins
> /plugin install chrome-use@leeguooooo-plugins
Other agent runners (Cursor, Codex, custom scripts): pull the SKILL.md with skills.sh. Add
-g for a global install (visible to every project); drop it to install only into the current project:
$ npx skills add leeguooooo/chrome-use -g
Either way the AI agent gets the right usage patterns and pre-authorized bash permissions for chrome-use and abs;
the specialized guides (electron / slack / agentcore / …) are served by the binary itself via chrome-use skills get <name>,
so they always match the installed version. Once installed, it's worth reading
The core loop first.
skills add only carry markdown; neither bundles the ~20MB binary. If chrome-use isn't present in the skill environment,
just rerun the install.sh one-liner above to fill in the binary (the skill also teaches the agent to self-heal).
Run your first command
The browser stays running across commands, so the ones below feel like a single session. When you're done, wrap up with chrome-use close (or close --all).
# take a screenshot of a page
$ chrome-use open https://example.com
$ chrome-use screenshot home.png
$ chrome-use close
For the full open → snapshot -i → fill → click walkthrough (search, click a result, screenshot again), read The core loop;
for every command and flag, see Commands.
Diagnose install problems
When a command fails unexpectedly (Unknown command, Failed to connect, a stuck daemon, a version mismatch after upgrade, Chrome not found, and so on),
run doctor before anything else.
# full diagnostic: environment, Chrome, daemon, config, providers, network, launch self-test
$ chrome-use doctor
$ chrome-use doctor --offline --quick # fast, purely local
$ chrome-use doctor --fix # run destructive fixes (reinstall Chrome, clear stale state…)
$ chrome-use doctor --json # structured output for programmatic use
Every doctor run automatically cleans up stale socket / pid / version sidecar files; destructive operations only run when you add --fix.
Exit codes: 0 when everything passes (warnings included), 1 on any failure.
chrome-use stealth status (add --json for structured results)—
it runs live webdriver / chrome / plugins / UA probes and lists the applied overrides, which is more reliable than driving an external detector.
chrome-use is too old (rerun install.sh to upgrade), or the extension / local bridge isn't up
(the prompt disappears for good once the store extension is installed). For more troubleshooting, see Troubleshooting.