Skip to content

anweat/dsh-browser

32Last commit Aug 14, 2026

dsh-browser DSH plugin

dsh-browser bundles Playwright (Chromium) and OpenCLI as plugin-local npm dependencies, providing a `browser` service and nine interactive browser tools. It prioritizes local dependencies over global fallbacks, eliminating reliance on global CLI. Other plugins can inject `['browser']` to consume this service.

How to install the dsh-browser DSH plugin

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

Copying does not run this command. Review the repository and version before installing the dsh-browser DSH plugin.

dsh-browser DSH plugin data source

dsh-browser DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-browser DSH plugin can do

  • Provides nine browser tools: browser_open, browser_click, browser_type, browser_scroll, browser_read, browser_screenshot, browser_close, browser_status, browser_install
  • Exposes a `browser` service via `ctx.provide('browser', service)`, consumable by plugins declaring `inject: ['browser']`
  • Supports login state reuse via `storageStatePath` (Playwright storageState JSON)
  • Configurable: channel (chromium/msedge), headless mode, opencliEnabled, autoInstall, verbose logging

Where the dsh-browser DSH plugin fits

  • Automate web page navigation, clicking, typing, and scrolling in DSH workflows
  • Capture full-page screenshots and extract readable text for content monitoring
  • Use login state to access restricted pages that require authentication
  • Combine with opencli for social media platform search (e.g., Xiaohongshu, Twitter, Reddit)

Who the dsh-browser DSH plugin is for

  • DSH plugin developers who need browser automation capabilities
  • Users building web search, scraping, or testing workflows within DeepSeek Harness

dsh-browser DSH plugin limitations

  • Depends on Playwright's Chromium kernel (~400MB shared cache); missing kernel must be installed via `browser_install` tool
  • OpenCLI social platform backends still require browser extensions and online login state, even with OpenCLI bundled as a dependency
  • Requires matching `@deepseek-ai/*` package versions; local checkout may need manual version alignment

dsh-browser DSH plugin: from the repository README

Quoted from the anweat/dsh-browser README, the upstream source of the dsh-browser DSH plugin. Copyright remains with the original authors.

自包含的浏览器运行时插件 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

Read the full READMERepository license: MIT

dsh-browser DSH plugin questions

How do I install dsh-browser?

Run `dsh plugin --profile web add @anweat/dsh-browser` in your terminal. If you have a local copy, use `dsh plugin --profile web add ./dsh-browser`. After installation, restart DSH with `dsh --profile web` (the web profile disables HMR).

How do I configure the browser channel or headless mode?

You can configure via cordis.yml or patch config. For example, set `channel: msedge` to use system Microsoft Edge, or `headless: false` to show the browser window. All config options are listed in the README under the `config` section.

How do I reuse login state for restricted pages?

Create a Playwright storageState JSON by running `npx playwright codegen --save-storage=storageState.json` and logging in. Then set `storageStatePath` in the plugin config to the path of that JSON file. The plugin will use that state to access authenticated pages.

What if Chromium is missing?

Run the `browser_install` tool (available as one of the nine tools) to install the Chromium kernel. Alternatively, set `autoInstall: true` in the config to automatically install when missing. The kernel is stored in the shared Playwright cache (`%LOCALAPPDATA%\ms-playwright` on Windows).

Can I use dsh-browser without dsh-web-search-pro?

Yes, dsh-browser can be installed independently. However, dsh-web-search-pro injects the `browser` service from dsh-browser to power its browser-based tools (web_snapshot, web_fetch_pro, web_platform_search). If you don't need those, you can use dsh-browser alone for general browser automation.