Introduction

DeepSeek Harness (DSH) adopts a plugin-based architecture. When an agent needs to operate a real browser directly (such as reading pages or interacting with clicks), writing HTTP requests or JavaScript code is usually not flexible enough. The dsh-browser-bridge plugin establishes a channel through a local WebSocket, allowing the DSH Agent to invoke browser extension features via a standard browser tool interface.

Plugin Purpose

This is a DeepSeek Harness (DSH) plugin that works with a browser extension. It allows the DSH Agent to read from, write to, and control a real browser via ws://127.0.0.1:3080/. The maintainer is liyongzheng666, and the license is MIT.

Core Features

The server provides 13 model-side tools, grouped as follows:

  • Status and Navigation

    • browser_status: Checks the connection status
    • browser_list_tabs: Lists all tabs
    • browser_activate_tab: Activates a specified tab
    • browser_navigate: Navigates to a specified URL
  • Page Reading and Snapshots

    • browser_snapshot: Gets a page snapshot (HTML)
    • browser_read_page: Reads page content
    • browser_screenshot: Captures a page screenshot
  • Interactive Operations

    • browser_click: Clicks an element
    • browser_type: Enters text
    • browser_press: Presses a key
    • browser_scroll: Scrolls the page
    • browser_wait: Waits
  • Code Execution

    • browser_eval: Executes JavaScript in the page context

Installation and Activation

Installation has two parts: the server-side plugin and the browser extension.

1. Install the Server-Side Plugin

Use the official installation command:

dsh plugin --profile web add dsh-browser-bridge

2. Install the Browser Extension

Using Firefox as an example:

  1. Open about:debugging#/runtime/this-firefox.
  2. Click “Load Temporary Add-on…”.
  3. Select the extension/manifest.json file from the repository.

Configuration Options

The default configuration is as follows (the exact path depends on the DSH configuration file):

  • path: /bridge (WebSocket path)
  • commandTimeoutMs: 60000 (command timeout)
  • screenshotDir: ~/.dsh/browser-bridge (screenshot storage directory)
  • maxMessageBytes: 8 MiB (maximum WebSocket message size)

Typical Usage

Enter the following in a DSH conversation:

browser_status

You should see a connection success indicator in the output:

Browser bridge: connected

Notes

  • Security scope: The plugin is bound to 127.0.0.1 by default, has no authentication, and is recommended for local use only.
  • Permission risk: The browser_eval tool can execute JavaScript in the page and is powerful; only grant it to trusted Agents.
  • Extension permissions: The browser extension requires <all_urls> permission to read tabs and operate arbitrary web pages.

Summary

This plugin enables seamless interaction between an Agent and a real browser through a lightweight local bridge solution. Visit the following link for source code and detailed information: GitHub.