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 using browser_click or browser_type.
  • Agent Toolset: Provides tools such as browser_status, browser_tabs, browser_navigate, browser_snapshot, browser_click, browser_type, browser_press, browser_scroll, and browser_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

  1. Open or create a DSH session, go to the conversation details sidebar, and open the Browser tab.
  2. Keep the panel open to passively observe the agent’s browsing process.
  3. 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.
  4. When having the agent perform actions, use browser_snapshot to obtain interactive element references on the current page, then use browser_click or browser_type to 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 trustedHosts policy; 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_snapshot are 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.