腾讯开源的浏览器自动化工具,AI Agent可借用你已登录的标签页完成任务后交还,支持Cursor/Claude Code等主流Agent,无需单独维护测试账号。

让 AI Agent 使用你的浏览器,而不会打扰你的工作。
BrowserSkill 将 Cursor、Claude Code、Codex、OpenClaw、CodeBuddy、WorkBuddy、Pi、Hermes Agent、DeepSeek Harness 等 AI Agent 与你已经登录的浏览器连接起来。
需要 Agent 接触你已经在打开的标签页?它必须显式地借用那个标签页,任务完成后归还,其余的浏览器操作保持独立。
复用真实登录状态:Agent 可以在你已经登录的网站上工作,无需单独的测试账号。
保持工作不被打断:浏览器任务运行在独立的、可见的 Agent Window 中,你可以继续使用自己的浏览器。
支持任意 Agent:任何能调用 shell 的 Agent 都可以通过 bsk CLI 使用 BrowserSkill,不绑定特定的模型、Agent 框架或 harness。
内置人工介入机制:当任务遇到验证码、登录、确认对话框或其他需要人工操作的步骤时,Agent 可以请求你接管,然后在之后继续执行。
在 Quick actions 中捕获长图 → 全页面截图,或者让 Agent 使用 bsk screenshot --session <id> --full-page --out page.png。详见全页面截图指南,了解页面支持情况、取消和导出。
BrowserSkill 有两个本地运行时组件:bsk CLI/daemon 和浏览器扩展。
如果你的 Agent 沙箱在每个命令后回收后台进程,请按照沙箱化 Agent 配置进行操作,将 daemon 保持在持久的主机环境中,并通过共享的 BSK_HOME 和 BSK_AUTO_START=0 进行连接。普通本地使用默认保持自动启动。
已经在使用 Cursor、Claude Code、Codex 或其他支持 shell 的 Agent?只需复制这一行并发送给 Agent——它会帮你安装 CLI 和 skill,然后引导你加载扩展:
Set up browser-skill on this machine by following https://raw.githubusercontent.com/Tencent/BrowserSkill/main/AGENT_INSTALL.md
安装 CLI,然后从 Chrome Web Store 或 Edge Add-ons 安装扩展。
macOS / Linux(推荐——安装到 ~/.local/bin):
curl -fsSL https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.sh | sh
export PATH="${BSK_INSTALL_DIR:-$HOME/.local/bin}:$PATH"
Windows(PowerShell——安装到 ~/.local/bin):
irm https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1 | iex
export 让 CLI 在当前 Unix shell 中可用。正在运行的 Agent 可能需要在每次 shell 调用中设置相同的 PATH,或者使用已安装二进制文件的绝对路径。如果 Agent 在安装后保留了旧的 PATH,请重启 Agent。
在将使用该二进制文件的终端或 Agent 环境中验证:
bsk --version
从浏览器的商店安装 BrowserSkill 扩展:
在其他基于 Chromium 的浏览器上,安装 Chrome Web Store 版本。
BrowserSkill 提供了一个 skill,用于教你的 Agent harness 如何使用 bsk。对于这些 harness,可以一键安装:
bsk install-skill
使用 Space 选择你要安装到的 Agent harness,然后按 Enter 安装 skill。运行 bsk install-skill --list 查看内部变体和安装路径。
对于非交互式安装,请指定目标 harness,例如 bsk install-skill --harness cursor --json。当未检测到 harness 时,显式选择也能正常工作。单独使用 --yes 会安装到每个检测到的 harness,如果没有检测到则失败。
要安装你自己的指令,请使用 bsk install-skill --harness cursor --source ./SKILL.md。明确的 --source 即使其内容与捆绑的 skill 匹配,也会保持自定义。已存在的安装会被跳过,除非你添加 --force。
Daemon 启动、session 启动和 doctor 命令仅在内容仍与上次安装版本匹配时自动更新已管理的 skill。本地编辑会被保留,自动更新会暂停。没有内容基准的旧版本安装仅在完全匹配当前捆绑 skill 时才会自动注册;这会写入源标记而不会重写 SKILL.md。明确的自定义安装即使内容匹配也会保持自定义。
对于不同的历史文件、本地编辑或无法识别的源标记,doctor 会显示 WARN 并附带原因和恢复选项。这些警告不会导致健康检查失败(--json 报告 status: "warn" 和 ok: true)。并发的安装或同步会被报告为推迟,并在后续重试。
要将你当前的指令保留为明确的自定义项,请运行 bsk install-skill --harness cursor --source <existing-SKILL.md> --force,将 <existing-SKILL.md> 替换为你的现有文件路径。要恢复捆绑的 skill 并恢复自动更新,请在不使用 --source 的情况下运行 bsk install-skill --harness cursor --force。第二个命令会覆盖现有指令。
其他支持 shell 的 Agent harness 也受支持。将 skill/SKILL.md 复制到你的 harness 的 skills 目录中作为 browser-skill/SKILL.md 来手动安装 skill。DeepSeek Harness 使用专用插件——请参阅 DeepSeek Harness 插件。
运行 bsk doctor 并按照提示操作。打开扩展弹窗并确认已连接。解释任何警告并解决失败问题,然后再测试浏览器使用。Doctor 可以在没有安装 skill 的情况下通过(N/A);单独验证 skill 发现。
启动一个新的 Agent session,确认 browser-skill 在 harness 中可用,并让它打开 https://example.com 总结页面。对于使用斜杠命令调用 skill 的 harness,例如:
/browser-skill open example.com and summarize what is on the page.
首次使用检查成功后,会读取页面并停止其 BrowserSkill session。如果 skill 缺失,请检查目标 harness 和安装路径后再重试。
对于默认的本地设置,在更新前请完成活动的浏览器任务:
bsk update --yes
如果 Windows 报告已暂存更新,请等待替换完成后再检查 bsk --version。
当安装更新时,此命令会用默认启动设置重启正在运行的 daemon。如果你使用安装程序替换了二进制文件,请在任务完成后用 bsk daemon restart 重启现有 daemon。
对于自定义端口、主机管理的沙箱 daemon 或远程服务器,请在其所属主机或 supervisor 中停止 daemon,运行 bsk update --yes --no-restart-daemon,然后用原始标志和 BSK_HOME 在那里启动。在 Agent 命令中设置 BSK_AUTO_START=0 来管理它;请参阅沙箱和远程设置指南。
通过浏览器商店更新扩展;对于解压的开发版本,请重新构建并重新加载。商店可用性可能滞后于 CLI 发布。使用 bsk --version 和 bsk status 检查 CLI、daemon 和扩展版本,然后运行 bsk doctor。新功能(如全页面截图)需要匹配的版本。单独更新 DSH 插件并重启其 profile。托管的 CLI skill 会在 daemon 启动、session 启动或 doctor 时同步;本地编辑和自定义 skill 会被保留。启动一个新的 agent session 以加载更新后的指令。
升级到 0.3.0:--unattended、tab borrow --no-confirm 和 BSK_REQUEST_HELP=off 不再绕过确认或禁用帮助。请选择下面描述的相应扩展设置。查看具体变更。
扩展弹窗有两个独立的自动化设置,均默认启用。用户的已保存浏览器设置对每个 session 都是权威的:
设置会自动保存到浏览器 profile 中,并应用于现有和新 session。关闭确认会释放待处理的借用确认;关闭帮助会完成待处理的帮助请求并将其设为禁用。将任一项重新开启会恢复其后续操作的行为,包括使用旧版 --unattended 标志创建的 session。已完成的借用不会被撤销,已完成的帮助请求不会被重新打开。允许帮助会使 request-help 可用;它不要求每个浏览器操作都请求许可。任务授权和主机审批仍然适用。
使用 bsk session start 启动任务;添加 --no-focus 以避免聚焦 Agent Window。对于无人值守操作,请在扩展中关闭相应设置。--unattended、tab borrow --no-confirm 和 BSK_REQUEST_HELP=off 仍被接受以保持兼容性,但已被弃用,无法覆盖这些开关。当使用这些输入时,CLI 会记录通知;daemon 也会为其继承的环境设置记录通知。依赖这些输入 alone 来避免等待的脚本现在必须使用浏览器设置。session start --json 和 session list --json 报告会显示浏览器有效的交互策略。
当帮助被禁用时,request-help 返回 disabled 而不确认任何人工操作。skill 指导 Agent 重新观察,并尽合理努力使用现有的登录状态、授权输入和可用工具完成授权的步骤。在任务授权和主机规则允许的范围内,具有图像理解能力的模型可以尝试图形验证。仅手机扫描的二维码、人脸验证、不可用的短信验证码以及纯文本模型无法处理的仅图像 CAPTCHA 可能仍然被阻止。禁用结果既不会完成任务,也不会授予额外权限。
如果偏好加载失败,运行时保留已知值,或者在没有有效值时默认为两者都启用。它不会写入回退默认值或阻止 session 创建。后续读取和存储事件可以恢复设置。弹窗会报告读取失败并阻止保存;失败的写入不会被视为成功。断开的浏览器会产生错误,而不是基于命令行标志或环境变量的本地禁用结果。
tab borrow --timeout 60s 控制确认等待时间,而不是确认是否必需。协议 1.3 保持与协议 1.0-1.2 的连接兼容性。普通 session 和默认标签页借用在交错升级期间仍然可用。弹窗会识别较旧的 daemon,而 bsk status 会报告协议差异。定制借用等待需要 daemon 和扩展协议 1.2 或更高版本;只有该操作在不支持时返回升级错误。较旧的 daemon 可能仍有更短的默认借用等待时间。
当前的 CLI 需要 daemon 协议 1.3 用于 request-help,因为较旧的 daemon 可以在不咨询浏览器的情况下本地回答。此限制不会断开浏览器或停止其他操作。请更新 CLI、正在运行的 daemon 和扩展以完全执行上述设置。新的扩展始终在其收到的请求上强制执行其保存的设置。较旧的 CLI 可能会在为 BSK_REQUEST_HELP=off 退出前本地退出;混合版本安装会保留这种遗留行为,仅更新扩展无法改变这种行为。
在服务器上运行 Agent,并使用内置认证服务或兼容的网关将其与本地浏览器配对。参见远程浏览器连接。
使用 DeepSeek Harness(dsh)?BrowserSkill 在 npm 上提供了一流的 dsh 插件,名为 @wxg-prc-cpg/browser-skill-dsh-plugin。它为 Agent 提供原生的 browser_* 工具,并在 Web UI 中显示其浏览器 session 的实时视图。该插件代表 Agent 运行 bsk。
首先安装 bsk CLI 并连接浏览器扩展。然后将插件添加到 dsh profile 并启动它(将 web 替换为你的 profile 名称):
dsh plugin --profile web add @wxg-prc-cpg/browser-skill-dsh-plugin
dsh --profile web
该插件包含 browser-skill skill,因此 dsh 不需要 bsk install-skill。已安装的插件不会自动更新。要升级此插件:
dsh plugin --profile web update @wxg-prc-cpg/browser-skill-dsh-plugin --latest
升级后重启 profile。参见插件 README 了解使用和配置。
BrowserSkill 是你的 Agent harness 与浏览器之间的本地桥梁。
flowchart TB
subgraph Harness["Agent Harness"]
Agent["Cursor / Claude Code / Codex / OpenClaw"]
end
subgraph Local["Your Machine"]
CLI["bsk CLI"]
Daemon["bsk daemon"]
Extension["BrowserSkill extension"]
end
subgraph Browser["Browser Profile"]
AgentWindow["Agent Window"]
UserWindows["Your normal browser windows"]
end
Agent -->|"shell: bsk ..."| CLI
CLI -->|"local IPC"| Daemon
Daemon -->|"WebSocket on 127.0.0.1"| Extension
Extension -->|"automates"| AgentWindow
Extension -.->|"borrow tab only when asked"| UserWindows
style AgentWindow fill:#fff4e6,stroke:#f59e0b,stroke-width:2px,color:#111827
style UserWindows fill:#f8fafc,stroke:#cbd5e1,color:#334155
Agent 从不直接与浏览器通信。它请求 bsk CLI 执行浏览器任务;本地 daemon 将该请求路由到扩展;扩展在 Agent Window 中运行它。DeepSeek Harness 通过插件走相同的路径:Agent 调用注入的 browser_* 工具,插件代表它调用 bsk。
滚动到原始 primitive 参考涵盖了 CLI、协议和插件入口点、可见边界和中断行为。
该仓库是一个 Cargo + pnpm 工作空间:
crates/bsk-cli — bsk CLI 和本地 daemon
crates/bsk-protocol — 共享的有线类型和 JSON schema
apps/extension — 浏览器扩展
packages/ui 和 packages/i18n — 共享扩展 UI 支持,包括英语、简体中文和韩语本地化
packages/dsh-plugin-browserskill — DeepSeek Harness 插件 (@wxg-prc-cpg/browser-skill-dsh-plugin)
evals/browser — 确定性本地页面和 Agent 中立的浏览器能力评估