跳到正文

anweat/dsh-browser

32最近提交 2026年8月14日

dsh-browser DSH 插件

dsh-browser 将 Playwright(Chromium 内核)和 OpenCLI 作为插件自身的 npm 依赖打包,对外提供 `browser` 服务及九个交互式浏览器工具。它优先使用插件本地依赖,缺省时回退到全局复用,不再依赖全局 CLI。其他插件可通过 `inject: ['browser']` 注入该服务。

如何安装 dsh-browser DSH 插件

dsh plugin --profile web add @anweat/dsh-browser

复制不会执行命令。安装 dsh-browser DSH 插件前请核对仓库和版本。

dsh-browser DSH 插件数据来源

dsh-browser DSH 插件快照日期:2026年8月16日

discovered

dsh-browser DSH 插件能做什么

  • 提供九个浏览器工具:browser_open、browser_click、browser_type、browser_scroll、browser_read、browser_screenshot、browser_close、browser_status、browser_install
  • 通过 `ctx.provide('browser', service)` 暴露 browser 服务,被其他插件 via `inject: ['browser']` 消费
  • 支持通过 `storageStatePath` 配置登录态复用(Playwright storageState JSON)
  • 可配置 channel(chromium/msedge)、headless 模式、opencliEnabled、autoInstall、verbose 日志

dsh-browser DSH 插件适合哪些场景

  • 在 DSH 工作流中自动化浏览器操作:打开 URL、点击、输入、滚动
  • 捕获全页截图并提取可读文本,用于内容监控或存档
  • 利用已登录的 storageState 访问受限页面,免除重复登录
  • 结合 opencli 进行社交平台搜索(如小红书、推特、Reddit)

dsh-browser DSH 插件适合谁

  • 需要浏览器自动化能力的 DSH 插件开发者
  • 在 DeepSeek Harness 中构建网页搜索、抓取或测试流程的用户

dsh-browser DSH 插件的限制

  • 依赖 Playwright 的 Chromium 内核(约 400MB 共享缓存);缺失时需通过 `browser_install` 工具安装
  • OpenCLI 的社交平台后端仍需浏览器扩展和在线登录态,即使打包了 OpenCLI 依赖也无法绕过
  • 需要匹配 `@deepseek-ai/*` 包的版本;本地源码 checkout 可能需手动对齐版本

dsh-browser DSH 插件的仓库 README 摘录

以下文字摘自 dsh-browser DSH 插件的上游仓库 anweat/dsh-browser 的 README,版权归原作者,仅作引用。

自包含的浏览器运行时插件 for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(DSH)。 把 **Playwright(chromium 内核)** 与 **OpenCLI** 作为插件自身的 npm 依赖打包(优先插件本地,缺省回退全局复用),对外提供一个 `browser` 服务 + 一组交互式浏览器工具。`dsh-web-search-pro` 通过 `inject: ['browser']` 注入该服务,驱动它的 playwright / opencli 后端——**不再依赖全局 CLI**。 ## 安装 ```bash dsh plugin --profile web add @anweat/dsh-browser # 或本地目录 / tarball: dsh plugin --profile web add ./dsh-browser # 重启(web profile 关闭了 HMR): dsh --profile web ``` > 依赖 `@deepseek-ai/*` 已发布到 npm(`^0.1.0-rc.6`)。 > 若你的 harness 是本地源码 checkout(如 `0.1.0-rc.5`),版本号可能有出入——用 > `dsh plugin --profile web add ./<path>` 并在 profile 的 `pnpm-workspace.yaml` > 里对齐版本后重装即可。 ## 内核与依赖的"打包 vs 复用" | 层 | 实际是什么 | 打包还是复用 | |---|---|---| | **chromium 内核** | 共享缓存 `%LOCALAPPDATA%\ms-playwright`(约 400MB) | **永远复用共享缓存**,不塞进插件、不重复下载;缺失时 `browser_install` 一键补 | | **playwright 驱动**(JS 包) | `playwright` npm 依赖 | 插件本地 node_modules 优先,缺省回退全局 npm | | **opencli**(纯 Node CLI) | `@jackwener/opencli` npm 依赖 | 同上,本地优先 / 全局复用 | ## 服务:`browser` `dsh-browser` 在 `apply()` 里 `ctx.provide('browser', service)`。任何插件声明 `inject: ['browser']` 即可消费: ```ts export const inject = ['tools', 'browser'] export function apply(ct

阅读完整 README仓库许可: MIT

dsh-browser DSH 插件常见问题

如何安装 dsh-browser?

在终端运行 `dsh plugin --profile web add @anweat/dsh-browser`。如果你有本地副本,可以用 `dsh plugin --profile web add ./dsh-browser` 安装。安装后重启 DSH:`dsh --profile web`(web profile 关闭了 HMR)。

如何配置浏览器频道或无头模式?

通过 cordis.yml 或 patch config 配置。例如设置 `channel: msedge` 使用系统 Microsoft Edge,或 `headless: false` 显示浏览器窗口。所有配置项详见 README 的 config 章节。

如何复用登录态访问受限页面?

先运行 `npx playwright codegen --save-storage=storageState.json` 并登录,生成 storageState JSON 文件。然后在插件配置中设置 `storageStatePath` 指向该文件路径。插件将使用该状态访问需要认证的页面。

如果缺少 Chromium 内核怎么办?

使用 `browser_install` 工具(九个工具之一)安装 Chromium 内核。或者设置 `autoInstall: true` 在缺失时自动安装。内核存储在 Playwright 共享缓存中(Windows 下为 `%LOCALAPPDATA%\ms-playwright`)。

能否不使用 dsh-web-search-pro 而单独使用 dsh-browser?

可以,dsh-browser 可以独立安装。但 dsh-web-search-pro 通过注入 dsh-browser 的 `browser` 服务来实现其浏览器工具(web_snapshot、web_fetch_pro、web_platform_search)。如果你不需要这些,可以单独使用 dsh-browser 进行通用浏览器自动化。