Preface¶
Below is an introduction to a browser automation plugin for DeepSeek Harness (DSH): dsh-browseruse.
It solves the problem of enabling models in DSH to perform web operations: opening pages, reading pages, clicking, typing, scrolling, switching tabs, and deciding the next step based on page state during multi-step tasks. Unlike directly manipulating a daily-use browser, it drives a dedicated Google Chrome instance via playwright-core, using a separate profile directory and cookie persistence, with the goal of completing browser tasks without affecting the Chrome used in daily life.
What This Is¶
dsh-browseruse is a DSH plugin, licensed under MIT, implemented purely in JavaScript with no build steps.
It requires Google Chrome to be installed locally and connects to the installed Chrome via CDP without downloading browser binaries. The repository address is:
https://github.com/yzd6552-commits/dsh-browseruse#readme
In verified facts, the repository owner is yzd6552-commits; the contributors in the profile are listed as DeepSeek Harness Agent (deepseek-v4-pro), but their maintainer status is not explicitly indicated.
Installation and Enablement¶
Prerequisites¶
Before installation, the following conditions must be met:
- Google Chrome is installed locally.
- The Node.js version embedded in the harness satisfies
Node >= 20.
Both this plugin and playwright-core require Node >= 20. The plugin runs on the harness’s embedded Node; if the embedded Node is below 20, the documentation recommends upgrading DSH first rather than forcibly installing.
Installation Command¶
The verified installation command is:
dsh plugin --profile web add github:yzd6552/dsh-browseruse
It should be noted that the installation command in the verified materials uses github:yzd6552/dsh-browseruse, while the GitHub repository address is yzd6552-commits/dsh-browseruse; the owners differ between the two, and the actual effective installation address cannot currently be confirmed. Before installation, you should verify whether this command is still valid.
Pre-Installation Checks¶
There have been reports that around 2026-08-08, some users experienced browser tools returning empty results and session crashes due to runtime version conflicts, ultimately requiring a reinstallation of the harness. Whether this issue still exists is currently undetermined.
The documentation recommends: back up ~/.dsh and the DSH deployment directory before installation, and check the Node.js version embedded in the harness.
If problems arise, you can first suspect runtime version conflicts: verify the Node version and roll back using pre-installation backups, which is faster than hard-fixing on the spot.
Validation status: This plugin was developed and tested successfully under DSH 0.1.0-rc.6 + embedded Node v24.19.0, with 13 tools mounting and invoking normally.
Core Features¶
Fine-Grained Browser Tools¶
The plugin provides a set of browser_* tools covering common web operations:
browser_open
browser_snapshot
browser_click
browser_type
browser_scroll
browser_navigate
browser_tabs
browser_fill_form
browser_download
browser_status
browser_close
Among them:
browser_open: Opens a page and automatically pops up a dedicated Chrome window.browser_snapshot: Reads page text + element indices + screenshot.browser_click: Clicks by index or text.browser_type: Types text.browser_scroll: Scrolls the page.browser_navigate: Goes back, forward, and refreshes.browser_tabs: Lists tabs, switches, closes, and creates new ones.browser_fill_form: Fills forms in bulk by field.browser_download: Triggers and saves downloads to~/Downloads.browser_status: Views runtime status, tabs, config directory, and pending schedules.browser_close: Closes the dedicated Chrome while preserving login state.
Autonomous Tasks¶
browser_task supports natural language goals. The plugin internally loops through “view page → call current model to decide → act”, with a default cap of 30 steps.
When running in the background, job_output can be used to track task output.
Scheduled Tasks¶
browser_schedule supports automatic execution at specific times using:
HH:MM- ISO time
- Seconds
Scheduled tasks are valid within the current session; after DSH restarts, they need to be rescheduled.
Confirmation for Dangerous Operations¶
Sensitive actions such as payments, placing orders, deletions, and logouts will prompt a popup to seek user consent before proceeding.
Manual CAPTCHA Takeover¶
When a CAPTCHA is detected, the plugin pauses and takes a screenshot to ask the user. The user can handle it directly in the dedicated Chrome window and then continue.
Screenshot Feedback¶
Screenshots from each step are included in the conversation, provided the model supports image input.
Persistent Login State¶
The plugin uses a separate profile with a default path of:
$DSH_HOME/.browseruse/chrome-profile
If DSH_HOME is not set, the path is:
~/.dsh/.browseruse/chrome-profile
Login is remembered long-term, and passwords are not stored on disk.
Typical Usage¶
The following examples are from verified materials.
First, open a page:
browser_open "https://www.baidu.com"
This step automatically pops up a dedicated Chrome window.
Then, read the page snapshot:
browser_snapshot
This step returns page text, element indices, and a screenshot.
Type a search term:
browser_type {"text": "苹果发布会"}
Alternatively, you can trigger an autonomous task directly with a single sentence:
browser_task "搜索苹果发布会并总结前三条结果"
If you need scheduled execution:
browser_schedule {"goal": "抢购...", "at": "20:00:00"}
Applicable Scenarios and Considerations¶
Suitable for completing the following tasks within a DSH session:
- Opening web pages and reading page content.
- Clicking, typing, and scrolling by element index.
- Filling out forms and triggering downloads.
- Using
browser_taskfor multi-step web operations. - Using
browser_scheduleto run at scheduled times within the current session. - Preserving login state to reduce repeated logins.
Points to note:
- The plugin runs in the DSH main process with the permissions of the current dsh process.
- It only consumes host services:
tools/llm/userQuestions/attachments/jobs, and does not publish services. - Source code and license should be checked before installation.
- Confirmation for dangerous operations and CAPTCHA pauses rely on the session’s
ask_user_questionchannel. - When user questions cannot be asked in a sub-agent context, a conservative strategy is adopted to block dangerous operations.
- The default download directory is:
~/Downloads
Conclusion¶
dsh-browseruse integrates browser operations into the DSH plugin system: fine-grained tools, autonomous tasks, scheduled tasks, login state persistence, confirmation for dangerous operations, and manual CAPTCHA takeover all revolve around a single dedicated Google Chrome instance.
Before installation, you should still carefully check the Node.js version embedded in the harness and keep backups of ~/.dsh and the DSH deployment directory.
GitHub address:
https://github.com/yzd6552-commits/dsh-browseruse#readme