Introduction

In DSH / Agent development, agents often need to know the current page, read page requests, and execute simple browser operations. Existing approaches usually involve manually copying page text to the agent or writing separate scripts to call the browser. Here we introduce dsh-chrome: a plugin that embeds the full dsh web UI into the Chrome side panel, allowing the local dsh agent to read the current page, capture HTTP traffic on demand, and drive the browser.

What is it

stuarthu/dsh-chrome is the browser companion for DeepSeek Harness (DSH), licensed under MIT, with package.json version 0.1.3.

It targets a local trusted environment and requires:

  • Local dsh web running, default address http://127.0.0.1:3080
  • Chrome 118+
  • Node >=18
  • Optional peerDependencies: @deepseek-ai/dsh-tools, @deepseek-ai/dsh-llm

The plugin consists of two parts:

  • Host plugins added to the dsh web profile
  • Chrome extension files

The host plugins include:

  • bridge.js: WS bridge
  • browser-tools.js: agent tools + redaction
  • page-injector.js

Core Features

The Chrome side panel embeds the full dsh web UI, including sessions, settings, approvals, tasks, goals, and workspaces.

The top bar of the side panel provides:

  • Bridge status
  • Manual Stop capture
  • Modify dsh address via Settings

Auto-awareness of current page

After switching tabs or navigating, the plugin injects the URL, title, and body text of http(s) pages into the most recently active session. SPA route changes also trigger this.

Page change detection includes:

  • Tab switching
  • Main frame navigation
  • SPA route changes

Detection is debounced (~2 seconds); scrolling does not trigger it; only the active tab is counted; current page is resent on bridge reconnection.

The upper limit for automatically injected page body text is 1,000,000 characters.

On-demand HTTP traffic capture

Capture is opt-in and only applies to the active tab.

To start capture:

browser_start_capture

To read capture results:

browser_capture_requests

Capture records method, URL, status, request body, and response body for the active tab’s requests. HTTP headers are not captured, so Cookie, Set-Cookie, and Authorization headers do not reach the model.

Capture retains the last 500 entries; the limit for each request/response body and automatically injected page body is 1,000,000 characters.

Stopping capture stops recording but retains recorded content until the tab is closed. Reading capture results does not perform an intent-gate; other dsh sessions in the same browser can read it.

Browser control

Provides the following browser tools:

browser_navigate
browser_click
browser_open_tab

Browser tools that read or manipulate page state (including capture) only apply to the active tab; browser_list_tabs and browser_open_tab are natural exceptions.

The on-demand read limit for browser_get_page is approximately 40,000 visible text characters and up to 400 links.

browser_click does not retry; if the result of a click is lost, the tool reports that it cannot confirm whether the click was effective.

Tool-level intent unlock

dsh-chrome is approval-free, but state-changing operations are limited by tool-level intent unlock: only allowed when the current turn’s real message contains specified browsing intent words.

The injected current page message is labeled as untrusted data, and the intent-unlock gate prevents page content from triggering state-changing operations. These are best-effort protections, not hard guarantees.

Installation and Enabling

First install the host plugins, then install the Chrome extension.

Add host plugins

To add dsh-chrome host plugins to the dsh web profile:

dsh plugin --profile web add dsh-chrome

This step registers bridge, browser tools, and page injector to the dsh web profile. Refresh the browser afterwards.

Load Chrome extension

Run the extension installation command, which prints the extension directory:

npx dsh-chrome install

Then load the extension in Chrome:

  1. Open chrome://extensions
  2. Turn on Developer mode
  3. Click Load unpacked and select the printed directory
  4. Click the dsh-chrome toolbar icon to open the side panel

After the above steps, you can view the bridge status in the side panel and use the full dsh web UI.

Upgrade

After upgrading the package, run:

npx dsh-chrome install

And reload the extension in chrome://extensions.

If you need to confirm the extension directory, you can run:

npx dsh-chrome path

Uninstall

Delete the extension directory:

npx dsh-chrome uninstall

Then remove the extension in chrome://extensions.

Remove dsh host plugins:

dsh plugin --profile web remove dsh-chrome

Typical Usage

After opening a session in the side panel, you can directly issue instructions to the agent, such as:

  • open the xx page
  • click the login button
  • capture this page's requests

The top bar of the side panel is used for viewing status and manual control:

  • Bridge status: Check dsh connection status
  • Stop capture: Manually stop capture
  • Settings: Modify dsh address

Security and Use Cases

dsh-chrome is restricted to trusted local use. The bridge and browser tools grant the local dsh agent the ability to read pages, capture traffic, and drive the browser. The plugin runs with the current dsh process permissions; you should inspect the source code and license before installing.

By default, tokens in secret-shaped URL query parameters, request bodies, and response bodies are masked. To capture unmasked raw traffic, set:

redactCredentials: false

Redaction is best-effort and does not guarantee coverage of all cases. Captured traffic should be treated as sensitive content and only enabled on trusted sites.

Injected pages are labeled as untrusted data, and the intent-unlock gate also restricts page content from triggering state-changing operations. However, these are still best-effort protections within an approval-free mode and not absolute guarantees.

Conclusion

dsh-chrome puts dsh web UI, current page awareness, HTTP traffic capture, and basic browser control into the same Chrome side panel, making it suitable for adding browser context to dsh agents in a trusted local environment.

Community directory page: https://www.skillhub.cn/plugins/stuarthu/dsh-chrome
GitHub: https://github.com/stuarthu/dsh-chrome