xu1132/dsh-plugin-browser ↗★ 1
dsh-plugin-browser
A DeepSeek Harness community plugin that drives a headless Playwright browser: rendered page text, screenshots, and page automation
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xu1132/dsh-plugin-browser说明文档
阅读完整 README ↗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
| Tool | What 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-.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.