Reference
Lineage & Upstream
chrome-use started from vercel-labs/agent-browser (Apache-2.0) and is now a standalone project. This page covers who the upstream is, what path each took after the fork, and how to think about the relationship: it's not a variant of upstream — it's a different product, built to drive your already-logged-in real Chrome.
Upstream: vercel-labs/agent-browser
chrome-use's first line of code came from Vercel Labs' agent-browser: a Rust browser-automation CLI for AI agents.
The daemon model, the snapshot-plus-@ref interaction paradigm, and the overall Rust CLI skeleton are inherited from it.
There'd be no chrome-use without that upstream, and the credit belongs here.
The lineage is still visible in the repo:
git remote'supstreamstill points atvercel-labs/agent-browser;- the environment-variable prefix is still
AGENT_BROWSER_*; - the
abscommand alias comes from the old repo name agent-browser-stealth; - early Release tags carried a
-fork.Nsuffix (likev0.27.0-fork.12); current tags are an independentv1.x.yseries.
What changed after the fork
The core divergence is the connection method. Upstream's classic path launches a browser instance for the agent; chrome-use's default path takes over the real Chrome where you're already logged into everything, and the whole chain was rebuilt for that:
Extension-relay architecture. The CLI talks to a per-session background daemon over a Unix domain socket; the daemon connects to the ab-connect browser
extension over Chrome native messaging; the extension drives target tabs with CDP via chrome.debugger. No --remote-debugging-port anywhere,
so it never trips the "Allow remote debugging?" dialog Chrome 136+ pops on every connection. Install is one curl … | sh plus a one-time extension install.
The full pipeline is on How It Works.
Anti-detection. On the extension path to real Chrome, nothing is JS-injected — it is your real browser, and CreepJS reads 0% bot.
The --launch path opens a separate stealth Chromium disguised with native CDP- and flag-level overrides, not leak-prone JS patches.
See Stealth & Anti-detection and Real Chrome.
Also brought in: --humanize behavioral evasion, multi-agent isolation via per-session colored tab groups,
session handoff ownership and human takeover, single-pass scripting, and a whole command surface built around real Chrome.
Why choose chrome-use
Upstream spins up a clean new browser for the agent; chrome-use lets the agent use the real Chrome you're already using, already logged into everything. In most real tasks that one difference removes the three most painful things: re-logging in, getting banned by anti-bot, and a debug-permission prompt on every connect. Point by point:
| agent-browser (upstream) | chrome-use | |
|---|---|---|
| which browser | a new instance launched for the agent | the real Chrome you use, already logged in |
| logins | re-login per site, or inject cookies yourself | reused as-is; SSO / 2FA already done |
| anti-bot | automation signals by default; easy to flag and ban | it's a real browser: CreepJS 0% bot; --humanize beats behavioral checks too |
| connection | --remote-debugging-port: Chrome 136+ prompts "Allow remote debugging?" on every connect | extension + native messaging, zero prompts |
| multi-agent | a separate browser instance each | colored tab-group isolation inside one real Chrome |
| complex flows | one command at a time | single-pass scripting: many steps in one tool call, survives hard navigations |
| platforms | — | a single binary — macOS / Linux / Windows |
In one line: reuse real logins, dodge anti-bot and debug prompts, run several agents concurrently in one Chrome — that's what chrome-use is for. Item-by-item measurements (tokens, performance, vs ego-lite) are on how chrome-use compares.
Pinning a version
The default install pulls the latest GitHub Release. For production or CI, pin a specific tag with AGENT_BROWSER_VERSION
(the variable name is itself part of the lineage):
# latest
$ curl -fsSL https://raw.githubusercontent.com/leeguooooo/chrome-use/main/install.sh | sh
# pin a version
$ AGENT_BROWSER_VERSION=v1.5.70 \
curl -fsSL https://raw.githubusercontent.com/leeguooooo/chrome-use/main/install.sh | sh
v0.27.0-fork.12-style tags with a -fork.N suffix in old docs or scripts belong to the early fork series;
the same variable pins them too. New projects should just use v1.x.y.
License
Upstream agent-browser is Apache-2.0, and chrome-use ships under Apache-2.0 as well; the full text is in LICENSE at the repo root.
Apache-2.0 permits free use, modification, and distribution (commercial included), on the condition that you keep the copyright and license notices.
chrome-use credits upstream in the README. If you redistribute based on chrome-use, keep the LICENSE and carry forward the attribution chain to vercel-labs/agent-browser.