参考 / Reference

血统与上游

chrome-use 起源于 vercel-labs/agent-browser(Apache-2.0), 现在是独立项目。这一页交代上游是谁、分叉之后各自走了哪条路、以及该怎么理解这层关系:它不是上游的替代版本, 是一个目标不同的产品,专门驱动你已登录的真实 Chrome。

上游:vercel-labs/agent-browser

chrome-use 的第一行代码来自 Vercel Labs 的 agent-browser:一个用 Rust 写的、给 AI agent 用的浏览器自动化 CLI。 守护进程模型、快照加 @ref 引用的交互范式、Rust CLI 的整体骨架都继承自它。没有这个上游就没有 chrome-use, 这份功劳记在这里。

仓库里的血统痕迹至今可查:

ℹ️ README 原话
“Originally based on vercel-labs/agent-browser (Apache-2.0); now a standalone project — the stealth/extension-relay architecture, anti-detection, humanize, multi-agent isolation, and CLI have diverged substantially.”

分叉之后加了什么

分歧的核心是连接方式。上游的经典路径是为 agent 启动一个浏览器实例;chrome-use 的默认路径是接管你已经登录一切的 那个真实 Chrome,整条链路为此重造:

扩展中继架构。CLI 与每个会话的后台守护进程之间走 Unix domain socket;守护进程经 Chrome 原生消息连接 ab-connect 浏览器扩展;扩展再用 chrome.debugger 发 CDP 命令驱动目标标签页。全程没有 --remote-debugging-port,因此不会触发 Chrome 136+ 每次连接都弹的「Allow remote debugging?」对话框。 安装只需一条 curl … | sh 加一次性的扩展安装。整条链路见 它怎么工作

反检测。走扩展连真实 Chrome 时不注入任何 JS 补丁,因为它就是你的真实浏览器,CreepJS 实测 0% bot。 --launch 路径另开一个隔离的隐身 Chromium,用 CDP 与启动参数级的原生覆盖做伪装,不靠容易泄漏的 JS 打补丁。 详见 反检测与隐身驱动真实 Chrome

还搬进来的:--humanize 行为级过检测、每会话彩色标签组的多 agent 隔离、 session handoff 所有权与人工接管、单次成型脚本、以及围绕真实 Chrome 的一整套命令面。

为什么选 chrome-use

上游给 agent 起一个干净的新浏览器;chrome-use 让 agent 用你正在用、已经登录了一切的那个真 Chrome。 大多数真实任务里,这一步之差正好省掉最痛的三件事:重新登录、被反爬封号、每次连接都弹调试确认框。逐项看:

agent-browser(上游)chrome-use
用哪个浏览器为 agent 新起一个浏览器实例你正在用、已登录一切的真 Chrome
登录每个站点重新登录,或自己注入 cookie现成复用,SSO / 2FA 天然已过
反爬默认带自动化特征,容易被识别、被封号本来就是真浏览器,CreepJS 0% bot--humanize 再过行为检测
连接方式--remote-debugging-port:Chrome 136+ 每次连接弹「Allow remote debugging?」扩展 + 原生消息,零确认弹窗
多 agent各起各的浏览器实例一个真 Chrome 里彩色标签组隔离,互不打架
复杂多步流程逐条命令单次成型脚本:一次 tool call 跑完多步、扛硬跳转
平台单一二进制,macOS / Linux / Windows

一句话:需要复用真实登录、绕开反爬和调试弹窗、多个 agent 在同一个 Chrome 里并发干活——这就是 chrome-use 存在的理由。 逐项实测(含 token、性能、vs ego-lite)见 对比其他方案

ℹ️ 什么时候用上游就够了
如果你要的只是给 agent 起一个隔离的全新浏览器实例、且完全不在意登录态和反爬,上游 agent-browser 是干净的选择。 两个项目命令面、连接方式、默认行为都已分开演进,本站文档只描述 chrome-use,不能反过来套用到 agent-browser 上。

两边独立发版,互不承诺兼容。逐项能力对比见 对比其他方案

锁定版本

默认安装拉取最新 GitHub Release。生产环境或 CI 建议用 AGENT_BROWSER_VERSION 锁定具体 tag (这个变量名本身就是血统的一部分):

bash
# 装最新版
$ curl -fsSL https://raw.githubusercontent.com/leeguooooo/chrome-use/main/install.sh | sh

# 锁定到指定版本
$ AGENT_BROWSER_VERSION=v1.5.70 \
    curl -fsSL https://raw.githubusercontent.com/leeguooooo/chrome-use/main/install.sh | sh
💡 老 tag
旧文档或旧脚本里出现的 v0.27.0-fork.12 这类带 -fork.N 后缀的 tag 属于分叉早期的版本序列, 同一个变量照样能锁定;新项目直接用 v1.x.y

许可证

上游 agent-browser 采用 Apache-2.0,chrome-use 同样以 Apache-2.0 发布,许可证全文见仓库根目录 LICENSE

Apache-2.0 允许自由使用、修改、分发(含商用),条件是保留版权与许可声明。chrome-use 在 README 中署名上游。 如果你基于 chrome-use 再分发,需要保留 LICENSE,并延续对 vercel-labs/agent-browser 的署名链。