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 webrunning, default addresshttp://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 bridgebrowser-tools.js: agent tools + redactionpage-injector.js
Core Features¶
Sidebar embedding full dsh web UI¶
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:
- Open
chrome://extensions - Turn on Developer mode
- Click Load unpacked and select the printed directory
- 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 pageclick the login buttoncapture 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