dsh-browser
DSH 自包含浏览器运行时:内置 Playwright 内核,提供 browser 服务与 9 个交互工具
安装
dsh plugin --profile web add @anweat/dsh-browser dsh-browser
把真实浏览器塞进 DSH:Playwright 内核开箱即用,一句
inject: ['browser']就能给任何插件接上浏览器能力。
解决什么问题
让 DSH 的 agent 操作真实网页,传统做法是全局安装 Playwright 等工具——环境、版本、内核下载都要手工维护,换个机器就崩。本插件把 Playwright(chromium 内核)与 OpenCLI 作为插件自身的 npm 依赖打包(优先用插件本地,缺省回退全局复用),对外提供一个 browser 服务 + 9 个交互式浏览器工具,把这条链路收敛成一个可注入的依赖。
chromium 内核永远复用共享缓存(约 400MB 的 %LOCALAPPDATA%\ms-playwright),不塞进插件、不重复下载,缺失时用 browser_install 一键补齐;配置 storageStatePath 指向登录态 JSON 后,还能以已登录身份抓取需要登录的受限页面。
核心功能
- 9 个浏览器工具:
browser_open(打开 URL)、browser_click(按 CSS 选择器点击)、browser_type(输入)、browser_scroll(纵向滚动触发懒加载)、browser_read(读文本)、browser_screenshot(全页截图)、browser_close、browser_status(运行时状态)、browser_install(补齐内核) - 可注入的
browser服务:其他插件声明inject: ['browser']即可消费,无需共享类型包,接口见src/browser-service.ts - chromium 内核复用:共享缓存避免重复下载;缺失时
browser_install一键补齐 - 登录态复用:
storageStatePath指向 Playwright storageState JSON,复用已登录会话 - 可配置:
channel(chromium / 系统 Edge)、headless、opencliEnabled、autoInstall等均可在 cordis.yml 中调整 - 为组合插件供底座:
dsh-web-search-pro通过inject: ['browser']驱动其 playwright / opencli 后端,不再依赖全局 CLI
快速上手
安装后重启 dsh web(web profile 关闭了 HMR):
dsh plugin --profile web add @anweat/dsh-browser
dsh --profile web
之后在对话里直接让 agent 打开网页、点击、截图即可;若 browser_status 报告缺内核,先执行一次 browser_install。需要抓登录页面时,用 npx playwright codegen --save-storage=storageState.json 生成登录态,把产物路径填进配置里的 storageStatePath。
适合谁
- 需要 agent 完成网页操作、信息抓取与自动化巡检的用户
- 开发组合插件的作者(如 dsh-web-search-pro 依赖它提供浏览器后端)
- 不想手工维护全局 Playwright 环境、希望插件自包含的 DSH 用户
内容根据项目 README 整理 · 版权归原作者所有
报告问题 / 申请下架