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 statusbrowser_list_tabs: Lists all tabsbrowser_activate_tab: Activates a specified tabbrowser_navigate: Navigates to a specified URL
-
Page Reading and Snapshots
browser_snapshot: Gets a page snapshot (HTML)browser_read_page: Reads page contentbrowser_screenshot: Captures a page screenshot
-
Interactive Operations
browser_click: Clicks an elementbrowser_type: Enters textbrowser_press: Presses a keybrowser_scroll: Scrolls the pagebrowser_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:
- Open
about:debugging#/runtime/this-firefox. - Click “Load Temporary Add-on…”.
- Select the
extension/manifest.jsonfile 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.1by default, has no authentication, and is recommended for local use only. - Permission risk: The
browser_evaltool 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.