DeepSeek Harness plugin

dsh-plugin-browser-xu1132

A DeepSeek Harness community plugin that drives a headless Playwright browser: rendered page text, screenshots, and page automation

Jump to install

Source facts

Repository
xu1132/dsh-plugin-browser
Latest update
Aug 14, 2026
Category
Tools & Capabilities
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/xu1132/dsh-plugin-browser
Plugin: dsh-plugin-browser-xu1132
Author: xu1132

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-plugin-browser

A DeepSeek Harness community plugin that drives a headless browser with Playwright. It registers six model-callable tools that let the model read JavaScript-rendered pages, take screenshots, and automate page interactions — the capabilities the built-in web_fetch (plain HTTP) cannot provide.

Tools

ToolWhat it does
browser_navigate(url)Open a URL, wait for load, return rendered title, body text, and links
browser_snapshot()Return the current page's rendered text (use between automation steps)
browser_click(selector)Click an element (any Playwright CSS selector)
browser_type(selector, text)Fill a text input
browser_screenshot(path?)Save a viewport PNG; defaults to browser-<timestamp>.png in screenshotDir
browser_close()Close the current browser session and release resources

Each agent gets its own isolated browser session; calls without an agent share a default session. Sessions start lazily on first use and close when the plugin unloads.

Install

The plugin uses Playwright's bundled chromium by default. First-time setup installs the browser binary:

dsh plugin --profile demo add github:you/dsh-plugin-browser
npx playwright install chromium   # from the profile directory

Then boot and ask the model, for example: "Open https://example.com and tell me what's on the page." The model calls browser_navigate and receives the rendered text.

Configure

Override the row in the profile's cordis.patch.yml:

- id: browser
  name: dsh-plugin-browser
  config:
    timeoutMs: 30000      # navigation/click/type timeout
    maxTextChars: 20000   # cap on extracted body text per snapshot
    maxLinks: 20          # cap on links listed per snapshot
    screenshotDir: .      # default directory for screenshots
    executablePath: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

executablePath points at a system browser instead of Playwright's bundled chromium — useful when you do not want the browser download.

Development

pnpm install
pnpm run typecheck
pnpm run build     # emits lib/index.js and lib/index.d.ts
pnpm run test

The test suite boots a local HTTP server and drives the system Chrome (skipped when Chrome is absent), so it needs no browser download and no real network. With Playwright's bundled chromium instead, install it once: npx playwright install chromium.

Structure

browser/
├── package.json       # bundle manifest (dsh.bundle), scripts, deps
├── cordis.patch.yml   # the configuration layer the bundle inserts
├── src/index.ts       # plugin: name / inject / Config / apply
├── src/session.ts     # headless session + per-agent session manager
├── src/tools.ts       # the six tool definitions
├── tests/browser.spec.ts
├── tsconfig.json
└── vitest.config.ts

License

[MIT](LICENSE)