chrome-use 是面向 AI 智能体的浏览器自动化命令行工具,通过 CDP 驱动 Chrome/Chromium,不依赖 Playwright 或 Puppeteer。它使用无障碍树快照与紧凑的 @eN 引用,使智能体在约 200-400 token 内完成页面交互,而非解析原始 HTML。
核心工作流:chrome-use open <url> 打开页面;chrome-use snapshot -i 只查看可交互元素;chrome-use click @e3 等命令对快照中的引用执行操作;页面变化后重新快照。引用每次快照重新分配,页面导航或结构变化后会失效,但可在重渲染间自愈:每个引用记录角色、无障碍名称与祖先路径指纹,节点消失时会自动重定位到匹配元素;若元素确实不存在则报错而非误点。
主要能力:导航、读取、点击、填表、提取、截图。快照支持 -i 仅交互元素、-u 含链接 URL、-c 紧凑、-d 限制深度、-s 限定 CSS 选择器、-f 正则过滤、--json 机器可读。读取可用 read(对活动标签页做可读性提取,或对 URL 直接抓取并转 Markdown,支持 llms.txt/outline)、get text(默认跨所有 frame 聚合文本)、get html/attr/value/title/url/count、frames。表单校验错误会以无引用的 alert 行出现在 -i 快照中,便于诊断提交失败。
站点适配器:chrome-use site <name>/<cmd> 由社区编写的 JS 函数在已登录标签页内调用站点自身 JSON API,返回结构化数据,免去点击与抓取。安装后先运行 chrome-use site update 获取适配器包,site list 查看已装命令,site info 查看参数,运行示例 chrome-use site github/issues owner/repo --json。打开某域名页面时若有适配器会提示,优先使用。
真实 Chrome 驱动:可通过扩展连接流程驱动用户已登录的实时 Chrome(一次性执行 chrome-use extension install 并安装商店扩展),open 会自动经中继连接。--launch 打开隔离空测试配置;--profile auto 复用真实配置;browsers 列出已连接浏览器,--browser 固定会话。每个 --session 自动获得独立标签组与守护进程,互不干扰。
分层使用:结构化路径(快照 + @ref、find、类型化动作)适合常规表单与导航;当结构化路径受阻时改用 eval 直接操作真实 DOM,如检查隐藏输入、Shadow DOM、表单校验状态,或直接 el.click() 绕过遮挡。但标准操作应优先使用专门命令,因为命令会自愈引用、穿透跨源 iframe、触发 React/Vue 监听事件并返回结构化输出。
硬性规则:先快照,绝不用截图定位元素。截图仅用于可视化验证或保存图像资产(如地图、图表、og 图、视觉差异基线),可用 screenshot [selector] [--clip x,y,w,h] <file>,自动缩放至最长边 ≤2000px。坐标点击仅用于 canvas/WebGL 或快照确实无返回时;box @ref 可给出元素 CSS 像素盒与中心坐标。
选择最省成本的工具:查找来源用 WebSearch;静态或公开页面事实用 WebFetch 或 curl;已知站点结构化数据(尤其需登录)用 site 适配器;任意页面的结构化数据(表格、搜索结果、信息流)用 extract --schema 一次返回干净 JSON;需要登录态、交互、JS 渲染或反爬页面才用 chrome-use。不要手工拼接带查询参数的深层 URL。
反检测排序:真实已登录 Chrome(扩展连接)优于有头启动浏览器,无头被禁止。默认静默,新标签不抢焦点。--humanize 增加类人输入,cf-status 检查/复用 Cloudflare 通过状态。
安装:npm i -g chrome-use && chrome-use install。完成用 chrome-use close 或 close --all。失败会自动本地记录,可用 chrome-use friction 查看,设 AGENT_BROWSER_NO_FRICTION_LOG=1 关闭,日志不上传。问题可提交至 https://github.com/leeguooooo/chrome-use/issues。
限制与注意:快照的无障碍视图有损且脆弱,隐藏输入不会出现,覆盖层可能阻挡坐标点击;整页文本默认跨 frame 聚合,但任有边界。关于收费、价格、平台支持范围与效果等事实,资料未提供。