| name | browser-use |
| description | Automates browser interactions. **Auto-trigger**: 当用户需要浏览网页、填表、截图、数据抓取、自动化测试时自动使用。 |
| allowed-tools | Bash(browser-use:*) |
使用 browser-use CLI 进行浏览器自动化
browser-use 命令提供快速、持久的浏览器自动化功能。它跨命令保持浏览器会话,支持复杂的多步骤工作流。
前置条件
在使用此技能之前,必须先安装并配置 browser-use。运行诊断命令进行验证:
browser-use doctor
更多信息,请访问 https://github.com/browser-use/browser-use/blob/main/browser_use/skill_cli/README.md
核心工作流
- 导航:
browser-use open <url> - 打开 URL(如需要则启动浏览器)
- 检查:
browser-use state - 返回可点击元素及其索引
- 交互: 使用 state 返回的索引进行交互(
browser-use click 5、browser-use input 3 "text")
- 验证:
browser-use state 或 browser-use screenshot 确认操作结果
- 重复: 浏览器在命令之间保持打开状态
浏览器模式
browser-use --browser chromium open <url>
browser-use --browser chromium --headed open <url>
browser-use --browser real open <url>
browser-use --browser real --profile "Default" open <url>
browser-use --browser remote open <url>
- chromium: 快速、隔离、默认无头模式
- real: 使用真实 Chrome 二进制文件。不带
--profile 时,使用持久但空的 CLI profile(位于 ~/.config/browseruse/profiles/cli/)。带 --profile "ProfileName" 时,复制你实际的 Chrome profile(Cookie、登录信息、扩展)
- remote: 云端托管浏览器,支持代理
基本命令
browser-use open <url>
browser-use back
browser-use scroll down
browser-use state
browser-use screenshot
browser-use screenshot path.png
browser-use click <index>
browser-use type "text"
browser-use input <index> "text"
browser-use keys "Enter"
browser-use select <index> "option"
browser-use eval "document.title"
browser-use get text <index>
browser-use get html --selector "h1"
browser-use wait selector "h1"
browser-use wait text "Success"
browser-use sessions
browser-use close
browser-use close --all
browser-use -b remote run "task"
browser-use task status <id>
命令
导航与标签页
browser-use open <url>
browser-use back
browser-use scroll down
browser-use scroll up
browser-use scroll down --amount 1000
browser-use switch <tab>
browser-use close-tab
browser-use close-tab <tab>
页面状态
browser-use state
browser-use screenshot
browser-use screenshot path.png
browser-use screenshot --full path.png
交互
browser-use click <index>
browser-use type "text"
browser-use input <index> "text"
browser-use keys "Enter"
browser-use keys "Control+a"
browser-use select <index> "option"
browser-use hover <index>
browser-use dblclick <index>
browser-use rightclick <index>
使用 browser-use state 返回的索引。
JavaScript 与数据
browser-use eval "document.title"
browser-use get title
browser-use get html
browser-use get html --selector "h1"
browser-use get text <index>
browser-use get value <index>
browser-use get attributes <index>
browser-use get bbox <index>
Cookie
browser-use cookies get
browser-use cookies get --url <url>
browser-use cookies set <name> <value>
browser-use cookies set name val --domain .example.com --secure --http-only
browser-use cookies set name val --same-site Strict
browser-use cookies set name val --expires 1735689600
browser-use cookies clear
browser-use cookies clear --url <url>
browser-use cookies export <file>
browser-use cookies export <file> --url <url>
browser-use cookies import <file>
等待条件
browser-use wait selector "h1"
browser-use wait selector ".loading" --state hidden
browser-use wait selector "#btn" --state attached
browser-use wait text "Success"
browser-use wait selector "h1" --timeout 5000
Python 执行
browser-use python "x = 42"
browser-use python "print(x)"
browser-use python "print(browser.url)"
browser-use python --vars
browser-use python --reset
browser-use python --file script.py
Python 会话跨命令保持状态。browser 对象提供:
browser.url、browser.title、browser.html — 页面信息
browser.goto(url)、browser.back() — 导航
browser.click(index)、browser.type(text)、browser.input(index, text)、browser.keys(keys) — 交互
browser.screenshot(path)、browser.scroll(direction, amount) — 视觉操作
browser.wait(seconds)、browser.extract(query) — 工具方法
Agent 任务
远程模式选项
使用 --browser remote 时,可使用以下额外选项:
browser-use -b remote run "task" --llm gpt-4o
browser-use -b remote run "task" --llm claude-sonnet-4-20250514
browser-use -b remote run "task" --proxy-country uk
browser-use -b remote run "task 1" --keep-alive
browser-use -b remote run "task 2" --session-id abc-123
browser-use -b remote run "task" --flash
browser-use -b remote run "task" --wait
browser-use -b remote run "task" --thinking
browser-use -b remote run "task" --no-vision
browser-use session create --profile <cloud-profile-id> --keep-alive
browser-use -b remote run "task" --session-id <session-id>
browser-use -b remote run "task" --start-url https://example.com
browser-use -b remote run "task" --allowed-domain example.com
browser-use -b remote run "task" --metadata key=value
browser-use -b remote run "task" --skill-id skill-123
browser-use -b remote run "task" --secret key=value
browser-use -b remote run "task" --structured-output '{"type":"object"}'
browser-use -b remote run "task" --judge
browser-use -b remote run "task" --judge-ground-truth "expected answer"
任务管理
browser-use task list
browser-use task list --limit 20
browser-use task list --status finished
browser-use task list --session <id>
browser-use task list --json
browser-use task status <task-id>
browser-use task status <task-id> -c
browser-use task status <task-id> -v
browser-use task status <task-id> --last 5
browser-use task status <task-id> --step 3
browser-use task status <task-id> --reverse
browser-use task stop <task-id>
browser-use task logs <task-id>
云端会话管理
browser-use session list
browser-use session list --limit 20
browser-use session list --status active
browser-use session list --json
browser-use session get <session-id>
browser-use session get <session-id> --json
browser-use session stop <session-id>
browser-use session stop --all
browser-use session create
browser-use session create --profile <id>
browser-use session create --proxy-country uk
browser-use session create --start-url https://example.com
browser-use session create --screen-size 1920x1080
browser-use session create --keep-alive
browser-use session create --persist-memory
browser-use session share <session-id>
browser-use session share <session-id> --delete
隧道
browser-use tunnel <port>
browser-use tunnel <port>
browser-use tunnel list
browser-use tunnel stop <port>
browser-use tunnel stop --all
会话管理
browser-use sessions
browser-use close
browser-use close --all
Profile 管理
本地 Chrome Profile(--browser real)
browser-use -b real profile list
browser-use -b real profile cookies "Default"
云端 Profile(--browser remote)
browser-use -b remote profile list
browser-use -b remote profile list --page 2 --page-size 50
browser-use -b remote profile get <id>
browser-use -b remote profile create
browser-use -b remote profile create --name "My Profile"
browser-use -b remote profile update <id> --name "New"
browser-use -b remote profile delete <id>
同步
browser-use profile sync --from "Default" --domain github.com
browser-use profile sync --from "Default"
browser-use profile sync --from "Default" --name "Custom Name"
服务器控制
browser-use server logs
常见工作流
暴露本地开发服务器
当你有本地开发服务器且需要云端浏览器访问时使用。
核心工作流: 启动开发服务器 → 创建隧道 → 远程浏览隧道 URL。
npm run dev &
browser-use tunnel 3000
browser-use --browser remote open https://abc.trycloudflare.com
browser-use state
browser-use screenshot
注意: 隧道与会话独立。它们在 browser-use close 后仍然存活,可单独管理。必须先安装 Cloudflared — 运行 browser-use doctor 检查。
使用 Profile 进行认证浏览
当任务需要浏览用户已登录的网站时使用(例如 Gmail、GitHub、内部工具)。
核心工作流: 检查现有 profile → 询问用户使用哪种模式和哪个 profile → 使用该 profile 浏览。仅在不存在合适 profile 时同步 Cookie。
在浏览认证网站之前,Agent 必须:
- 询问用户使用 real(本地 Chrome)还是 remote(云端)浏览器
- 列出该模式下可用的 profile
- 询问使用哪个 profile
- 如果没有 profile 包含正确的 Cookie,提供同步选项(见下文)
步骤 1:检查现有 profile
browser-use -b real profile list
browser-use -b remote profile list
步骤 2:使用选定的 profile 浏览
browser-use --browser real --profile "Default" open https://github.com
browser-use --browser remote --profile abc-123 open https://github.com
用户已经通过认证 — 无需再次登录。
注意: 云端 profile 的 Cookie 可能会过期。如果认证失败,请从本地 Chrome profile 重新同步 Cookie。
步骤 3:同步 Cookie(仅在需要时)
如果用户想使用云端浏览器但没有云端 profile 包含正确的 Cookie,请从本地 Chrome profile 同步。
同步之前,Agent 必须:
- 询问使用哪个本地 Chrome profile
- 询问要同步哪些域名 — 不要默认同步完整 profile
- 确认后再继续
检查本地 profile 有哪些 Cookie:
browser-use -b real profile cookies "Default"
指定域名同步(推荐):
browser-use profile sync --from "Default" --domain github.com
完整 profile 同步(谨慎使用):
browser-use profile sync --from "Default"
仅在用户明确需要完整浏览器状态时使用。
细粒度控制(高级):
browser-use --browser real --profile "Default" cookies export /tmp/cookies.json
browser-use --browser remote --profile <id> cookies import /tmp/cookies.json
使用同步后的 profile:
browser-use --browser remote --profile <id> open https://github.com
运行子 Agent
使用云端会话并行运行自主浏览器 Agent。
核心工作流: 用 run 启动任务 → 用 task status 轮询 → 收集结果 → 清理会话。
- 会话 = Agent:每个云端会话是一个独立的浏览器 Agent,拥有自己的状态
- 任务 = 工作:分配给 Agent 的任务;一个 Agent 可以顺序运行多个任务
- 会话生命周期:一旦停止,会话无法恢复 — 需要启动新会话
启动任务
browser-use -b remote run "搜索 AI 新闻并总结前 3 篇文章"
browser-use -b remote run "研究竞品 A 定价"
browser-use -b remote run "研究竞品 B 定价"
browser-use -b remote run "研究竞品 C 定价"
browser-use -b remote run "登录 example.com" --keep-alive
browser-use task status task-1
browser-use -b remote run "导出设置" --session-id sess-123
管理与停止
browser-use task list --status finished
browser-use task stop task-abc
browser-use session stop sess-123
browser-use session stop --all
监控
任务状态设计为节省令牌。 默认输出最简化 — 仅在需要时展开:
| 模式 | 标志 | 令牌消耗 | 使用时机 |
|---|
| 默认 | (无) | 低 | 轮询进度 |
| 紧凑 | -c | 中 | 需要完整推理 |
| 详细 | -v | 高 | 调试操作 |
browser-use task status <id> -c --last 5
browser-use task status <id> -v --step 10
实时视图:browser-use session get <session-id> 返回实时 URL 以观察 Agent。
检测卡住的任务:如果 task status 中的成本/时长停止增长,说明任务已卡住 — 停止它并启动新 Agent。
日志:browser-use task logs <task-id> — 仅在任务完成后可用。
全局选项
| 选项 | 描述 |
|---|
--session NAME | 使用命名会话(默认:"default") |
--browser MODE | 浏览器模式:chromium、real、remote |
--headed | 显示浏览器窗口(chromium 模式) |
--profile NAME | 浏览器 profile(本地名称或云端 ID)。适用于 open、session create 等 — 不适用于 run(改用 --session-id) |
--json | 以 JSON 格式输出 |
--mcp | 通过 stdin/stdout 作为 MCP 服务器运行 |
会话行为:所有不带 --session 的命令都使用同一个 "default" 会话。浏览器保持打开并在命令间复用。使用 --session NAME 可并行运行多个浏览器。
技巧
- 始终先运行
browser-use state 查看可用元素及其索引
- 调试时使用
--headed 观察浏览器行为
- 会话持久化 — 浏览器在命令之间保持打开
- 使用
--json 进行编程解析
- Python 变量在会话内持久化 跨
browser-use python 命令
- CLI 别名:
bu、browser 和 browseruse 与 browser-use 功能相同
故障排除
首先运行诊断:
browser-use doctor
浏览器无法启动?
browser-use close --all
browser-use --headed open <url>
找不到元素?
browser-use state
browser-use scroll down
browser-use state
会话问题?
browser-use sessions
browser-use close --all
browser-use open <url>
task stop 后会话复用失败:
如果停止任务后尝试复用其会话,新任务可能会卡在 "created" 状态。请创建新会话:
browser-use session create --profile <profile-id> --keep-alive
browser-use -b remote run "new task" --session-id <new-session-id>
任务卡在 "started":用 task status 检查成本 — 如果不增长,说明任务已卡住。用 session get 查看实时 URL,然后停止并启动新 Agent。
任务完成后会话仍然存活:任务完成不会自动停止会话。运行 browser-use session stop --all 进行清理。
清理
完成后务必关闭浏览器:
browser-use close
browser-use session stop --all
browser-use tunnel stop --all