Introduction

DeepSeek Harness (DSH) uses a plugin-based architecture. When developing or debugging agents, a browser environment is usually required. The dsh-browser plugin creates an isolated browser instance for each conversation session and mirrors the view to the right sidebar, making it easier to observe and take over.

Plugin Overview

Name: dsh-browser
Maintainer: CJYLZS
Category: Web tools
License: MIT
Core value: Provides each DSH session with a real local browser, mirrors it to the sidebar, and is driven by agents through 9 tools. It can be attached via a CDP port. The plugin works on both the Web and Desktop interfaces.

Core Features

  • Isolated browser instance: Each session corresponds to a separate browser process with its own profile and CDP port.
  • Sidebar mirroring: Browser content is displayed in real time in the right sidebar and can be toggled.
  • Tool-driven control: Agents control the browser through 9 tool calls, including page snapshots, element searching, coordinate retrieval, and code execution.
  • Real browser environment: It is not an embedded WebView, but a real Chrome or Edge process, supporting DevTools attachment.
  • Realistic input: It uses real mouse and text events instead of synthetic events, ensuring accurate page interactions.
  • CDP attachment: Each browser listens on a separate CDP port and supports attachment via chrome://inspect, Playwright, or built-in scripts.

Installation and Activation

Before installing, confirm the host DSH version (≥ 0.1.7-rc.1 is recommended to match the latest plugin version).

Run the following command in the Web interface:

dsh plugin add --profile web github:CJYLZS/dsh-browser#v0.2.3

After installation, restart DSH. The plugin depends on playwright-core and requires Chrome or Edge to be installed on the system.

Typical Usage

The usage flow usually does not require additional configuration. Follow these steps:

  1. Startup: It usually does not need to be started manually. When the agent’s first tool call requires a browser, the plugin automatically creates an instance, and a tab named “Browser” appears in the right sidebar.
  2. Operation: Give instructions to the agent, for example, “Open the documentation and tell me the installation section.” The agent calls tools to perform actions in the same browser instance, and the sidebar displays page changes synchronously.
  3. Takeover: While the agent is running, external tools can attach through the CDP port. For example, use curl http://127.0.0.1:9333/json/version to check the connection status, or use Playwright’s chromium.connectOverCDP for debugging.

Design and Tools

The plugin controls the browser through a set of 9 tools. Key tools include:

  • browser_snapshot: Reads the page accessibility tree and provides the agent with page structure information without requiring prior knowledge of CSS selectors.
  • find: Narrows down searches within the page.
  • boxes: Retrieves element position information without taking screenshots.
  • browser_evaluate: A general-purpose code execution tool.
  • browser_input: Sends real mouse and text events, handling native dropdowns, checkboxes, and keyboard shortcuts (such as Ctrl+A).

Notes

  • Version compatibility: Plugin v0.2.x requires DSH ≥ 0.1.7-rc.1.
  • Dependency environment: A Chrome or Edge browser must be installed.
  • Session isolation: Each session has its own browser profile, without interfering with others.
  • Non-WebView: Pages run in a separate process, and closing DSH does not leave browser processes behind.

Summary

dsh-browser provides an isolated and transparent way to use a browser, making it suitable for scenarios that require in-depth debugging of an agent’s web interaction behavior.