BrowserSkill 完全指南:让 AI Agent 复用真实登录态操作浏览器,不打断你的工作
【免费下载链接】BrowserSkillLet AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.项目地址: https://gitcode.com/GitHub_Trending/br/BrowserSkill
让 AI Agent 打开一个你没登录的网站,它大概率会卡在登录页上。BrowserSkill 就是为这个问题设计的:它是 AI Agent 与你真实浏览器之间的本地桥接层,Agent 通过 shell 里的bsk命令驱动浏览器,任务在独立的 Agent Window(扩展自动打开的一个专用窗口)中执行,复用你真实登录态,你的日常浏览不受任何影响,而且它承诺绝不提取凭据、Cookie、Token 等敏感信息——这条约束直接写在 skill 文件 skill/SKILL.md 的开头。
几个值得先知道的特性:
- 任何能调用 Shell 的 Agent 都能用(Cursor、Claude Code、Codex、OpenClaw、CodeBuddy、WorkBuddy、Pi、Hermes Agent 等),不绑定特定模型或框架。
- 内置 human-in-loop(人机协同):遇到验证码、登录、支付确认这类必须人出面的步骤,Agent 可以主动请求你接管,完成后继续任务。
- Agent 想碰你已打开的标签页,必须显式借用(borrow),用完归还,其余窗口一律不碰。
链路原理:从 shell 命令到浏览器要经过哪些环节
Agent 从不直接触碰浏览器。一次bsk click的完整路径是:
这里有三个概念值得解释一下。IPC(进程间通信)指 CLI 和 daemon 两个本地进程之间的消息通道,BrowserSkill 用的是 JSON 行格式。daemon 相当于一个常驻的"调度器",持有浏览器连接的细节;扩展则负责真正的页面自动化。标签借用规则贯穿所有操作:用户窗口里的标签页只有在 Agent 显式tab borrow后才成为合法操作目标,tab return后立即交还。
从源码看这条链路是严格分层的。session start会先自动拉起 daemon(crates/bsk-cli/src/cli/ensure_daemon.rs),再发出类型化 RPC;daemon 侧会把session.start这个请求挂起,一直等到扩展(重)连上来才应答(crates/bsk-cli/src/cli/session.rs)。所有线上的参数与结果契约集中在 crates/bsk-protocol,它的schema/目录为每个工具提供tool_*_params.json/tool_*_result.json契约文件;扩展端在 apps/extension/src 实现自动化、录制、长截图、审计等模块。DeepSeek Harness 走的是同一条链路,只是由插件代调bsk(见下文 DSH 章节)。
一个工程细节:CLI 的工具调用 IPC 超时被特意设为 35 秒,略大于 daemon 的 30 秒工具超时——这样调用方拿到的是 daemon 返回的结构化超时错误,而不是 IPC 连接先断(crates/bsk-cli/src/cli/mod.rs)。全局标志包括--json(机器可读输出)、--quiet(抑制信息输出)、-v(debug)与-vv(trace)。
安装前先确认环境
| 运行项 | 支持情况 |
|---|---|
| 操作系统 | macOS(Apple Silicon 和 Intel)、Linux(x64 和 ARM64)、Windows x64 |
| 浏览器 | 已支持 Chrome 与 Microsoft Edge;其他可加载 Chromium 扩展的浏览器通常可用;Firefox 计划中 |
BrowserSkill 由两个本地组件组成:bskCLI/daemon(Rust 编写)和浏览器扩展(TypeScript/WXT 编写)。两者缺一不可。
三步装好 bsk CLI 与浏览器扩展
让 Agent 替你装(最省事)
如果你已经在用 Cursor、Claude Code 或任何支持 Shell 的 Agent,直接把这句发给它:
按照仓库中 AGENT_INSTALL.md 的说明,在本机安装并配置 browser-skill它会完成 CLI 与 skill 的安装,并引导你加载扩展。完整说明见仓库根目录的 AGENT_INSTALL.md。
手动安装 CLI
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):
irm https://raw.githubusercontent.com/Tencent/BrowserSkill/main/install.ps1 | iex那条export让当前 Unix shell 能找到二进制。注意:正在运行的 Agent 可能在每次 Shell 调用里都看不到这条 PATH,需要用绝对路径或在 Agent 侧做同样设置;装完仍报旧路径问题的 Agent,重启一次。然后验证:
bsk --version手动安装扩展
从 Chrome Web Store 或 Edge 加载项商店安装 BrowserSkill 扩展;其他 Chromium 系浏览器装 Chrome 商店版即可。
Agent 跑在沙盒里?先看这条
如果 Agent 沙盒会在每条命令结束后回收后台进程(例如 Linux 的 bubblewrap 沙盒、Windows 的任务级 Job 终止),daemon 会被一起杀掉的。正确做法是把 daemon 放在宿主的持久执行环境中,沙盒内通过共享的BSK_HOME目录(含 IPC 套接字)和BSK_AUTO_START=0连接已有 daemon。普通本地环境无需任何配置,daemon 默认自动启动。细节见 docs/sandboxed-agents.md。
给 Agent 注入操作手册:bsk install-skill
光有 CLI,Agent 不知道该怎么用它。BrowserSkill 自带一份 skill(操作手册,即crates/bsk-cli/skill/SKILL.md),安装命令:
bsk install-skill用空格键勾选目标 harness(Cursor、Claude Code、Codex、OpenClaw、CodeBuddy、WorkBuddy、Pi、Hermes Agent 八选一或全选),回车完成。bsk install-skill --list可以查看 internal 变体与各安装路径。
非交互场景显式指定 harness,例如bsk install-skill --harness cursor --json——即使本机没检测到该 harness 也能显式装入。单独加--yes会装进所有被检测到的 harness,一个都没检测到时直接报错。
想装自己改过的指令:
bsk install-skill --harness cursor --source ./SKILL.md显式带--source的安装一律视为自定义(即使内容和内置完全一样);已有安装默认跳过,--force才覆盖。其他能调 Shell 但不在清单里的 harness,手动把 SKILL.md 复制进对应 skills 目录的browser-skill/SKILL.md即可。
受管 skill 的自动更新:daemon 启动、session start和doctor时都会检查已安装的 skill——只有文件内容与上次安装/同步时一致,才继续自动更新;检测到本地编辑就保留文件、暂停更新。没有内容基线的历史安装,只有与当前内置 skill 字节级一致才会被纳入管理(此时只补来源标记,不重写文件);明确的自定义安装即使内容相同也不纳入。内容不同、被本地编辑或来源标记无法识别的历史文件,doctor会给出WARN并说明暂停原因与恢复方法,但不会让健康检查失败(--json里是status: "warn"、ok: true)。同步进行中时本次同步推迟到下一次。
把现有文件保留为明确自定义安装:
bsk install-skill --harness cursor --source <existing-SKILL.md> --force恢复内置 skill 并重新启用自动更新(会覆盖现有指令):
bsk install-skill --harness cursor --force用 bsk doctor 和真实页面验证链路
装完后先跑:
bsk doctor按提示处理各项,然后打开扩展弹窗确认已连接。注意两点:skill 一项可能显示N/A且 doctor 依然通过——skill 是否真的被 Agent 发现要单独验证;测试浏览器操作之前,把 doctor 里的警告说明清楚、失败项解决掉。
接着做一次真实验证:开一个新的Agent 会话,确认 harness 里能看到browser-skill,让它打开https://example.com并总结页面内容。支持斜杠命令调 skill 的 harness 可以这样写:
/browser-skill open example.com and summarize what is on the page.期望结果:成功读取页面,并停止本次 BrowserSkill session。找不到 skill 时,先核对目标 harness 和安装路径,再重试。
一次会话的完整生命周期
推荐的任务工作流(与 skill/SKILL.md 一致)分四步:
- 从用户请求里定义成功标准,运行
bsk session start --json,保留返回的session_id(多浏览器时用--browser <id-or-label>指定;需要后台打开 Agent Window 时加--no-focus)。 - 新页面直接导航,已有用户标签走借用流程。动手前先读页面:
bsk navigate https://example.com --session <id> bsk observe --session <id>- 用本次 observe 返回的新鲜
@eNrefs(元素引用编号)选择动作;导航或大 DOM 变化后重新 observe。模糊结果最多复查一次,成功可见就立刻收手。 - 无论成败都运行
bsk session stop <id>(除非用户明确要求保持会话打开)。这也同时归还借用的标签。不要指望空闲清理来结束任务,更不要为结束任务去重启共享 daemon。
三个子命令:start(新会话)、stop(停单个,或--all全停)、list(列出活动会话)。除stop直接吃位置参数外,每个 session-scoped 命令都要带--session <id>。
最常用交互命令(其余见 skill/SKILL.md):
bsk click @e3 --session <id> bsk fill @e3 --value "text" --session <id> bsk select @e3 --value "option-value" --session <id> bsk press Enter --ref @e3 --session <id> bsk hover @e3 --session <id> bsk scroll-to @e3 --session <id>几条容易踩坑的语义:
select认选项的value属性值,不是可见标签。- 悬停触发器带有标记(如
[hover first: Shoes | Bags]、[has-submenu]、[expanded])。先 hover 触发器,再 observe,然后使用新出现条目的 ref;预期控件缺失且没有标记时,可以试一次observe --probe-hover。 scroll-to返回按祖先裁剪后的可见边界,坐标是顶层 viewport CSS 像素;部分可见算成功,完全隐藏/被裁剪的目标会失败。完整契约见 docs/scroll-to.md。wheel --delta-y 600发带符号增量(至少一个非零值),不保证精确滚动距离;focus/blur用于聚焦与失焦。- 观察结果太大时用
observe --max-tokens <n>,配合返回的next_cursor/@more,用bsk observe --cursor <token> --session <id>续读。每页会替换 ref 映射,续读针对同一份捕获,不刷新页面也不触发悬停。
借用与归还用户标签页
先列出,相关步骤一结束立刻归还:
bsk tab list --scope user --session <id> bsk tab borrow <tab-id> --session <id> bsk tab return <tab-id> --session <id>要点:
- 借用会在 Agent Window 里选中该标签作为后续命令的默认目标(不额外抢焦点)。后台创建的标签(
tab create --no-active)要保存返回的tab_id,并在观察/导航/输入命令里显式传--tab-id。 - 控制中的网页移到后台仍继续运行,普通视口截图对后台标签可用;全页截图仍要求活动标签。
- 不要编造 tab ID,不要让用户的标签跨无关任务滞留。
tab borrow --timeout 120s只改变确认等待时间(默认 60 秒),自定义等待需要 daemon 和扩展都支持协议 1.2 及以上。
需要人手时:bsk request-help 与结果处理
启用了人工协助后,登录、CAPTCHA、OTP、支付确认、同意弹窗,或者两次尝试仍无进展时,Agent 可以主动把方向盘交给你:
bsk request-help --session <id> --prompt "Please complete sign-in" --target @e3不同结果对应不同下一步:
- continued / completed:重新 observe,用新 refs 继续。
- cancelled / timed_out:尊重拒绝或阻塞,不要反复请求。
- disabled:没有确认过任何人的操作;重新 observe 并按"协助禁用"规则继续。
- stale ref:observe 后重试一次目标动作。
- 未知标签/会话:列出当前标签与会话,绝不猜 ID、更不借别的任务的会话。
- 超时或效果未知:先检查当前状态再重试——动作可能已经发生了。
- fill_value_mismatch:先读字段。格式可能已经满足要求,只修正剩余差异。
"允许人工协助"只表示request-help可用,不代表每个操作都要先问许可,任务授权与宿主审批照常生效。协助被关闭时:不要请求协助、也不要试图重新启用;用现有登录态、已授权输入和可行替代方案完成已授权步骤。仅手机扫码、人脸验证、拿不到的短信码、纯文本模型认不出的图形验证码,可以如实报告受阻——但协助关闭不增加授权,也不能因为求助不可用就把任务判成完成或受阻;不可恢复失败时报告阻塞并停止所属会话。
截图与 Canvas 上的像素级点击
bsk screenshot --session <id> --out viewport.png bsk screenshot --session <id> --ref @e3 --out element.png --json bsk screenshot --session <id> --full-page --out page.png bsk screenshot --session <id> --full-page --scope current --out loaded.png截图返回本地 PNG 路径;--out会覆盖已有文件,省略时用临时路径;--json带尺寸与字节数;--ref与--full-page互斥。
Canvas 类内容在观察结果里以@eN canvas [visual:screenshot]标记。要点击图中某一点,保留这张截图的capture_id,用原始 PNG 坐标:
bsk click @e3 --capture <capture-id> --image-x <x> --image-y <y> --session <id>captures 单次使用、2 分钟过期,会被该 ref 的替换或更新截图提前失效。
文件与其他工具:
bsk upload @e3 --file ./report.pdf --session <id>会把文件披露给站点;bsk download @e3 --out ./report.pdf --session <id>接受站点控制的字节流。用 Agent 本地路径,别用浏览器内部暂存路径;下载默认拒绝覆盖,需要时加--overwrite。console/network适合有界的只读诊断;emulate --device iphone-14只影响一个标签页,--off恢复。evaluate是最后手段:必须检查 JSON 的.ok字段,因为脚本异常时 CLI 退出码仍可能是 0;绝不 evaluate 敏感信息。record start能把用户操作录成语义化的trace.json;录之前先读帮助,且绝不录银行、SSO 或密码管理器页面。
长截图:10 万像素的页面为什么不爆内存
入口有两个:插件快捷功能 → 长截图,或让 Agent 调 CLI:
bsk screenshot --session <id> --full-page --out page.png默认采集与编码超时两分钟,超长页面可加--timeout 5m;支持 Ctrl-C 取消,结束后恢复原始滚动位置。CLI 与扩展版本必须匹配,详见 docs/long-screenshot.md。
插件端提供三种模式:
- Full page · Automatic(整页 · 自动):从顶部开始增量滚动,跟随追加内容。
- Long image · I scroll(长图 · 我滚动):从当前位置开始,你手动往下滚;屏与屏之间保留重叠内容,完成后在弹窗点Finish and keep。
- Visible area(可见区域):当前视口截一次。
自动模式用测量到的文档坐标加重叠视口拼接:到达底部后等待至少 1.5 秒高度稳定、且 600ms 内无附近内容变化;没有加载指示器时安静等待上限 5 秒,避免跳动时钟类控件造成无限挂起。若追加内容把旧底部推开了,捕获会回退到临时尾部重拍,替换磁盘上对应的瓦片。快捷功能在 CLI 连接关闭时也能用,不依赖 daemon 或 Agent 会话。
CLI/Agent 侧的语义:
--scope follow(默认)跟随追加内容;--scope current只捕获开始时测量的文档区域(CSS 像素),仍会滚动该区域露出懒加载图片,但后续高度增长不扩展范围。JSON 结果包含确认的scope;旧扩展不确认current时 CLI 拒绝保存。- 内部浏览器页面、Web Store、嵌套滚动面板和虚拟化列表不支持。保持捕获标签可见:
page_hidden是环境中断,user_cancelled是用户输入停止。 - Agent 的
follow模式下,底部 30 秒加载指示器无高度增长会产生loading_stalled,而不是干等到总截止;失败不保存部分图片。
存储与编码是这套设计最精彩的部分。新捕获是一组 512 像素高的 PNG 瓦片,存在扩展的 OPFS(Origin Private File System,浏览器给扩展的本地私有文件系统)里,配一个小型持久化 manifest。捕获期间只解码当前截图和小型工作 canvas,追加内容不分配全页 canvas。导出由专用 worker 顺序读瓦片、应用 PNG Up filter,再用原生流式 zlib 压缩写出——不构建全图像素缓冲,也不产生 base64。完整页截图走独立的tool.screenshot_full_pageRPC,随后是内部tool.screenshot_read与tool.screenshot_release:读取按 256 KiB 分块,扩展流式写 PNG 到 OPFS,CLI 校验完整字节数后原子替换输出文件。基准数据:3,170 × 100,062 像素的结果,canvas 最高只用 512 像素高,RGBA 缓冲峰值约 41.7 MiB,而完整 RGBA 图需要约 1.27 GB(该测量不含编解码器内部、堆与 GPU 拷贝,不是浏览器总内存)。
远程连接:Agent 跑服务器,浏览器在你电脑上
扩展发起出站连接,用户电脑无需开放任何入站端口;任务仍走独立 Agent Window,包括借用-归还流程。bsk内置设备配对、连接鉴权、凭据轮换与吊销,不需要账号系统或鉴权网关。
本地模式(默认):
bsk daemon start # 等价:bsk daemon start --mode local监听回环地址;扩展弹窗选Local connection即可退出远程(会结束当前任务)。
独立服务器模式:
bsk daemon start --mode server \ --listen 0.0.0.0 --port 52800 \ --public-url wss://browser.example.com:52800/extension \ --tls-cert /etc/bsk/fullchain.pem \ --tls-key /etc/bsk/privkey.pem证书必须是浏览器信任的,主机名要与公网 URL 匹配;bsk不签发证书、不改浏览器信任设置。服务器模式保持前台运行、空闲不退出,可由进程管理器托管;证书变更需以相同参数重启;会话空闲限制仍然适用。在 Agent 环境设置BSK_AUTO_START=0,让已停止的受管服务器被如实报告为不可用。BSK_HOME这个私有目录存放设备授权与本地 IPC 元数据,必须跨服务重启与容器替换持久化,不要在不同独立服务器或不受信任的 OS 用户之间共享。
服务器相关 flag 的默认值:
--pairing-ttl默认5m(一次性配对有效期,上限 1 小时)。--device-ttl默认90d(设备自配对或成功续期起的寿命,上限 366 天)。--renew-after默认30d(扩展应续期的时间点,必须小于设备寿命)。--max-connections默认64(在线浏览器容量,1–1000;容量满时已有设备可替换连接)。--authorize-rate-limit默认60(每对端 IP 每分钟配对/续期请求数,1–60000)。
TLS 反向代理
不想自己实现鉴权时,可用传统 TLS 反向代理终结 HTTPS/WSS:
bsk daemon start --mode server --listen 127.0.0.1 --port 52800 \ --public-url wss://browser.example.com/extension把/extension与/extension/authorize转发到127.0.0.1:52800,保留路径与 WebSocket 升级头;保留Origin、Authorization和Sec-WebSocket-Protocol,绝不记录鉴权头、WebSocket 子协议值或请求体,也不在查询串里传凭据。代理后服务器看到的是代理 IP,每客户端限流要在代理侧配置,服务器不信任X-Forwarded-For。没有原生 TLS 时监听必须落在回环地址;非回环的浏览器连接要求 WSS。
配对与验证的四个检查点
- 服务器操作者生成配对链接:
BSK_AUTO_START=0 bsk daemon pair。 - 浏览器用户在扩展弹窗选择Remote connection,粘贴完整链接并保存。链接是机密、单次使用、默认 5 分钟过期;保存后扩展把配对密钥替换为设备凭据。
- 服务器上的 Agent用
BSK_AUTO_START=0 bsk status --json确认目标浏览器出现。生成链接或保存配对本身都不是活跃连接的证明。 - 首次使用验证:用
status里的浏览器instance_id作为<browser-id>建会话并读页:
BSK_AUTO_START=0 bsk session start --browser <browser-id> --no-focus --json BSK_AUTO_START=0 bsk navigate https://example.com --session <id> BSK_AUTO_START=0 bsk observe --session <id> BSK_AUTO_START=0 bsk session stop <id>按证据推进:生成链接 → 服务器列出已连接浏览器 → 页面读取成功且测试会话成功停止。
授权管理:
bsk daemon devices bsk daemon revoke DEVICE_ID bsk daemon revoke --alldevices输出设备与浏览器 ID、标签和过期时间,绝不输出凭据;revoke --all同时让未使用的配对链接失效;吊销既关闭现有连接也拒绝新连接。
边界约束:只与你能信任其操作已登录网站的服务器配对——配对是设备授权,不是受限账号或网站沙箱。远程内容读取、截图、录制和页面操作都要求标签被显式创建或借用;target="_blank"、window.open、OAuth 打开的标签不会自动获得控制权,已在 Agent Window 内的无主标签需要你先移到普通窗口再借用。断开连接会取消任务工作、归还借用标签、关闭任务创建的标签;用户创建的标签在清理中存活。远程上传/下载当前版本不支持(返回unsupported),截图等既有 RPC 内容结果仍支持。设备凭据存放在扩展源 IndexedDB,普通扩展设置只有连接模式与非机密修订号;独立服务器以私有文件权限和原子写入持久化哈希凭据。更多细节见 docs/remote-extension-connection.md。
无人值守设置:扩展开关矩阵与协议兼容性
插件弹窗有两个默认开启的独立开关,用户在插件里保存的设置对所有会话具有最终决定权:
| 借用标签页前确认 | 允许请求人工协助 | 实际行为 |
|---|---|---|
| 开 | 开 | 借用需要确认;求助正常弹窗 |
| 开 | 关 | 借用需要确认;求助返回disabled |
| 关 | 开 | 借用免确认;求助正常弹窗 |
| 关 | 关 | 借用免确认;求助返回disabled |
生效语义:
- 设置自动保存到当前浏览器配置,对已有和新建会话都生效。关闭借用确认会放行待确认请求;关闭人工协助会把等待中的求助结束为
disabled。 - 重新打开开关后,后续操作恢复对应行为——包括当年用
--unattended创建的会话。已完成的借用不会撤销,已结束的求助不会重新弹出。 - 偏好读取失败时,后台保留已有有效值;尚无有效值时按两项开启处理,不写回默认值,也不阻止新建会话;后续请求会重试读取,存储变更也能恢复策略。
- 弹窗保留读取错误提示并禁止保存;写入失败不会被当成功。浏览器未连接时返回连接错误,不会依据命令行参数或环境变量在本地伪造
disabled。 session start --json与session list --json返回浏览器实际的interaction策略。
弃用与兼容:--unattended、tab borrow --no-confirm、BSK_REQUEST_HELP=off保留兼容识别但已弃用,不能覆盖插件开关。CLI 使用这些输入时会输出说明,daemon 也会为自己继承到的旧环境记录说明;原先只靠它们避免等待的脚本,现在必须遵循浏览器设置。
协议层面:
- 协议 1.3 保持与 1.0–1.2 的连接兼容,分步升级时仍可建普通会话、用默认等待借用标签;插件会提示旧 daemon 的兼容限制,
bsk status也显示协议差异。 - 自定义借用等待时间要求 daemon 和扩展都 ≥ 协议 1.2,否则只限制这一次操作并提示升级;旧 daemon 的默认借用等待预算可能仍较短。
- 新版 CLI 的
request-help要求 daemon 协议 1.3——旧 daemon 可能在本地返回而不询问浏览器。该限制不会断开浏览器连接,也不影响其他操作。 - 旧 CLI 可能在连接 daemon 前就因
BSK_REQUEST_HELP=off本地返回;混用版本时保留这类历史行为,只升级扩展无法改变旧可执行文件的动作。CLI、daemon、扩展全部更新后,上述设置优先级才完整生效。
升级 bsk 与 0.3.0 弃用项
默认本地配置下,先结束正在执行的浏览器任务,再更新:
bsk update --yes- 它会以默认启动配置重启正在运行的 daemon。
- 若通过安装脚本替换了二进制,任务结束后运行
bsk daemon restart。 - Windows 提示"更新已暂存(staged)"时,等替换完成再查
bsk --version。 - 自定义端口、宿主管理的沙盒 daemon 或远程服务器:先在所属宿主环境停止 daemon,运行
bsk update --yes --no-restart-daemon,再以原参数和BSK_HOME启动;维护期间在 Agent 命令中设BSK_AUTO_START=0。 - 扩展通过浏览器商店更新;开发时加载的解压版需重新构建并重新加载,商店版本可能晚于 CLI 上线。
- 用
bsk --version、bsk status核对 CLI/daemon/扩展版本,再跑bsk doctor。长截图等新功能要求版本匹配。 - 受管 CLI skill 会在 daemon 启动、
session start、doctor时同步,本地编辑与自定义 skill 保留;升级后开新 Agent 会话加载新指令。DSH 插件需单独更新并重启对应 profile。
升到 0.3.0 的注意点:--unattended、tab borrow --no-confirm和BSK_REQUEST_HELP=off不再跳过确认或关闭人工协助,请改用扩展弹窗里的对应设置。历史变化见 CHANGELOG.md。
DeepSeek Harness 插件:原生 browser_* 工具
用 DeepSeek Harness(dsh)的话,有官方 npm 插件@wxg-prc-cpg/browser-skill-dsh-plugin:它给 Agent 注入原生browser_*工具(由插件代为执行bsk),并在 Web UI 里实时展示浏览器会话。先装好bsk并连上扩展,再把插件装进 profile(web换成你的 profile 名):
dsh plugin --profile web add @wxg-prc-cpg/browser-skill-dsh-plugin dsh --profile web插件自带browser-skillskill,在 dsh 下无需再跑bsk install-skill。已安装插件不会自动更新,升级用:
dsh plugin --profile web update @wxg-prc-cpg/browser-skill-dsh-plugin --latest升级后重启该 profile。插件源码在 packages/dsh-plugin-browserskill,其中 skill.ts 负责 skill 注入,tools.ts 定义browser_*工具,用法与配置见其 README。
仓库地图:代码都在哪里
这是一个 Cargo + pnpm 混合 workspace:
crates/bsk-cli—bskCLI 与本地 daemon。命令树定义在 crates/bsk-cli/src/cli/mod.rs,覆盖 session、tab、window、emulate、screenshot、snapshot、observe、console、network、navigate、click、fill、press、select、upload、download、evaluate、wait、request-help、record 等全部命令。crates/bsk-protocol— 共享协议类型;schema/目录为每个工具提供参数/结果 JSON 契约。apps/extension— 浏览器扩展,src 下分 browser-driver、content、lib、long-screenshot、session-manager、tools、transport 等模块,配 vitest 测试。packages/ui与packages/i18n— 扩展 UI 共享支持,含英文、简体中文、韩语等本地化。packages/dsh-plugin-browserskill— DeepSeek Harness 插件。evals/browser— 确定性本地页面、Agent 无关的浏览器能力测试台。
需要深入时,按主题查这几份文档:docs/sandboxed-agents.md(沙盒 daemon 托管)、docs/long-screenshot.md(捕获模式与--scope)、docs/remote-extension-connection.md(服务器模式与第三方网关协议)、docs/scroll-to.md(scroll-to 契约)、AGENT_INSTALL.md(Agent 自助安装)。
项目采用 MIT 许可证。
【免费下载链接】BrowserSkillLet AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.项目地址: https://gitcode.com/GitHub_Trending/br/BrowserSkill
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考