Introduction¶
DeepSeek Harness (DSH) is a plugin-based agent development environment. When building agents that need to browse the web, handling login state, session persistence, and human intervention control is a common pain point. The DeepSeek Harness Browser Use plugin provides persistent Playwright browser tools and an interactive panel, helping developers or agents operate browsers reliably in the DSH environment.
Plugin Positioning¶
This plugin is maintained by syncended and is based on Playwright. It provides DeepSeek Harness with persistent browser configuration, login state sharing across tabs, stable page snapshot references, and a real-time visual browser panel.
Core Features¶
- Persistence and State Sharing: Maintains a Chromium profile and shares login state across multi-turn conversations.
- Interactive Panel: Provides a live browser view and supports passive monitoring and manual takeover.
- Stable Snapshot References: Obtain element references from the page via
browser_snapshot, then interact with them usingbrowser_clickorbrowser_type. - Agent Toolset: Provides tools such as
browser_status,browser_tabs,browser_navigate,browser_snapshot,browser_click,browser_type,browser_press,browser_scroll, andbrowser_screenshot.
Installation and Enablement¶
The plugin depends on DeepSeek Harness 0.1.6-alpha.2, Node.js 22 or later, and pnpm. The host machine must already have the Chromium or Chrome executable installed.
dsh plugin --profile web add @syncended/dsh-browser-use@0.1.6-alpha.1
Typical Usage¶
- Open or create a DSH session, go to the conversation details sidebar, and open the Browser tab.
- Keep the panel open to passively observe the agent’s browsing process.
- When manual interaction is needed, select Take control at the bottom of the panel, enter a URL or interact with the page, then select Return control to agent when finished.
- When having the agent perform actions, use
browser_snapshotto obtain interactive element references on the current page, then usebrowser_clickorbrowser_typeto act on them. Note that snapshot references are one-time; they must be re-fetched after an operation.
Configuration Options¶
The plugin injects default configuration through cordis.patch.yml. Options such as profile (persistent profile name), headless (whether to use headless mode), executablePath (browser path), viewportWidth/Height, screenshotQuality (screenshot quality), operationTimeoutMs (timeout duration), and humanLeaseTtlMs (manual takeover lease duration) can be overridden.
Applicable Scenarios and Notes¶
- Environment Dependencies: The Chromium or Chrome executable must be installed on the host machine, and the model must support image input to use screenshot functionality.
- Security Notes: The browser profile contains credentials, so protect DSH’s home directory; remote Web control follows the
trustedHostspolicy; keep the Chromium sandbox enabled; sensitive operations (passwords, payments, CAPTCHAs) require human intervention, and the plugin does not auto-fill them. - Snapshot Mechanism: References returned by
browser_snapshotare single-use only; after any page change, the snapshot must be called again. - Anti-Crawler Limitations: The plugin does not provide anti-anti-crawler mechanisms.
Conclusion¶
By providing a stable browser operation interface and a visual interactive panel, the plugin lowers the barrier for developing Web task agents in the DSH environment. For more details and source code, visit the GitHub repository.