Shared real browser for DSH: a native Electron window the human can watch and take over, driven by the agent over CDP with 20 browser_* tools (open/snapshot/execute/fill/screenshot/download/auth), per-task session isolation, cookie persistence, CAPTCHA detection; self-hosts on plain dsh web without a desktop shell.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-builtin-browser
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:wqty123/dsh-browser
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Browser plugin for DeepSeek Harness
Use DSH to open pages, read content, fill forms, and download files in the bundled browser, the desktop sidebar, or a local installation of Chrome or Edge. Each task has its own tabs and action history. In a visible window or the desktop sidebar, you can take over the page the agent is using.
This feature list matches 0.5.8 (compatible with DSH 0.2.2-alpha.3: plugin routes go through the host session auth). Changelog
Quick start
First, which side are you on — these are two separate installs; updating one does not update the other, and they host the browser differently.
Updating an installed plugin takes two steps (since DSH 0.2.1-alpha.2, installing over an installed package fails outright with
already-installed): rundsh plugin --profile <profile> remove dsh-builtin-browserfirst, thenaddthe target version. See the user guide (Chinese).
DSH Desktop
dsh plugin --profile desktop add dsh-builtin-browser
When the desktop shell provides a controllable <webview> and the bridge is installed, the plugin drives the official side panel: the agent operates the very page you see. Otherwise it falls back to the plugin's own Electron window.
The sidebar bridge is installed into the desktop app's own install directory. On Windows Desktop, open Settings → Browser and select Install and restart. The action exits Desktop normally, installs the bridge, reopens Desktop, and verifies the new bridge connection. DSH retains its own confirmation for running tasks.
For terminal installation, save your task and exit DSH Desktop completely, including its tray process, then run this from the plugin directory:
node desktop-bridge/install.mjs "<DSH Desktop install directory>"
Start DSH Desktop after installation. On Windows, desktop-bridge/install-and-start.cmd installs and starts the app after Desktop has exited. The settings action uses an independent maintenance process; the installer verifies the closed target, its identity, and backups before writing files.
The bridge is optional: without it, the plugin uses a standalone window. Reinstall the bridge with the new script after plugin or desktop shell upgrades — a desktop update restores
app.asar, the bridge goes stale, andbridge-statusreportsstale. The state is visible at the top of the panel. See carrier limitations (Chinese).
Web (dsh web)
dsh plugin --profile web add dsh-builtin-browser
There is no side panel and no bridge on the web side: the shared browser is self-hosted in a standalone window (titled dsh-browser) with a full toolbar (address bar, back/forward/reload, tab strip) you can use like any browser.
Since 0.5.3 nothing is downloaded at install time and there is no
postinstall: the runtime is prepared in the background on first need. Progress and retry live in Settings → Browser (use Prepare the bundled browser after a failure). To prepare it ahead of time (offline images, CI), runnpx --no dsh-browser-install-electronfrom that profile directory (network required). See the setup guide (Chinese).
Both sides
Once installation is complete, ask the agent:
Open https://example.com and summarise the main content for me.
The browser window appears with the first call, and you can operate in it yourself at any point. Either side can be pointed at your own installed Chrome / Edge in settings — that option behaves identically on both.
Choose a browser
| Option | How it works |
|---|---|
| Bundled browser | Opens pages in a separate window with an address bar, navigation controls, and tabs. |
| DSH sidebar | With the bridge installed on a Desktop build that exposes Electron webview, opening a URL expands the target conversation's sidebar browser. Lost connections reconnect to the selected sidebar. |
| Local Chrome / Edge | Launches the installed browser with a dedicated plugin profile. |
| Automatic | Chooses based on the available local browsers and desktop sidebar. |
Windows Desktop Settings → Browser provides installation, repair, and reinstallation with automatic restart. Diagnostics includes uninstall and restart, plus an external-terminal command. Progress and results survive the restart, and successful installation requires a verified connection to the new process. For terminal maintenance, exit Desktop normally and run this from the plugin directory:
node desktop-bridge/install.mjs "<DSH Desktop install directory>"
Preparation feedback appears immediately. While Desktop is closed, a separate progress window shows installation, startup, connection checks, and elapsed time, then closes after completion. The window stays in the background; closing it leaves maintenance running.
Browser settings
- Environment check reports detected Chrome / Edge, the bundled runtime, and sidebar bridge availability. Automatic mode identifies the selected carrier; Diagnostics includes the executable path.
- Quiet mode preserves the operating system's foreground window and pointer position. New browser windows appear in the background, and minimized bundled browser windows stay minimized. With DSH sidebar selected, opening a URL reveals the target conversation's sidebar page; explicit tab switching selects the corresponding native tab.
- Presentation controls sidebar expansion, closing the browser with the session, the agent cursor, and remote viewing.
- Agent permissions controls page scripts, downloads, and reading or writing sign-in state.
- Advanced settings covers browsing history, permission for coordinate clicks and drags, and sign-in persistence and window mode for Chrome, Edge, and Automatic mode. The delivery form validates and saves the tool name, argument template, failure policy, and per-site rules together.
On the local machine or in an isolated test environment, turn on Allow remote viewing and open the DSH viewer for a read-only view of the browser session. The viewer refreshes JPEG frames up to twice per second.
Download delivery
In Advanced settings → Delivery, enter an upload tool registered in DSH and configure its destination arguments. Automatic delivery uses the DSH native tool executor and retains the current task's tool permissions. The result includes the local download path and the upload tool's complete return value.
DSH sidebar downloads use the target page's authenticated browser session, stream to a temporary file, and commit the completed file while preserving existing destinations.
The official Baidu Netdisk stdio MCP upload tool accepts this argument template:
{
"local_file_path": "{path}",
"remote_path": "/来自:mcp_server/DSH下载"
}
{path} becomes the downloaded file's absolute path. remote_path names the destination folder. Use the tool name actually registered in DSH, following mcp__<serverName>__upload_file. Baidu Netdisk MCP parameters
For Feishu, configure an MCP tool that provides file uploads and use the argument fields it declares.
Browser tools
The current source registers 48 tools. The table lists their names after the dsh_browser_ prefix.
| Purpose | Tools |
|---|---|
| Open and navigate | open back forward refresh list_tabs switch_tab close_tab |
| Read pages | snapshot a11y content scrape screenshot challenge |
| Click and type | click click_sequence type key scroll drag hover execute |
| Fill forms | fill set_value clear check select get_value |
| Select and save files | upload download |
| Run and verify steps | do assert wait wait_for_response |
| Inspect page activity | state find console network dialog |
| Manage sessions | session reset reset_session restrict auth |
| Review records | history visited replay |
| Diagnose issues and find help | doctor help |
Documentation
- User guide
- Tool parameters and examples
- Choosing tools, locating elements, and running steps
- Architecture
- Compatibility and operating conditions
- Build and test
A community plugin built on DeepSeek Harness and Cordis. Thanks to everyone who contributed issue reports, reproduction steps, and patches.
Author on WeChat hui13866591135 · MIT License
Links
More in this category
Tencent/BrowserSkill#dsh-plugin-browserskill★ 10384
BrowserSkill bridge for controlling visible Chrome and Edge Agent Windows from DeepSeek Harness, with native browser tools, accessibility and VOM observations, screenshots, owned multi-session control, and a live Web UI overlay.
DDDMUC/dsh-free-search★ 1128
Free, keyless web search for DSH: 7 engines (DuckDuckGo/Bing/SearXNG free + Exa/Perplexity/DeepSeek paid), auto-failover, settings-page UI with API key inputs and official links, web_fetch, and an engine test tool.
omdsh-dev/dsh-browser#packages/browser/bridge-browser★ 1060
Chrome sidebar extension that lets DSH operate your browser directly, no vision capabilities required.
liustack/modsearch★ 981
Web search bridge for text-only agents: ask the web or X, get structured JSON evidence (search, fetch, citations).
Fisfzy/dsh-ego-browser★ 502
Drive a real Chrome/Chromium browser from DeepSeek Harness with 35 structured tools for navigation, snapshots, clicks, forms, JavaScript/CDP, screenshots, downloads and tabs; a live sidebar mirrors the page and accepts mouse and keyboard input. It ships a managed CDP runtime, keeps login state across calls, and can import cookies from your everyday Chrome through a companion extension.
Tabbit-Browser/dsh-tabbit★ 126
Gives DeepSeek Harness control of the Tabbit Browser: auto-loads the tabbit-browser skill on install, detects official Tabbit and Tabbit Browser releases (>= 1.9.0), checks the tabbit-cli persistent runtime, diagnoses the per-platform DSH sandbox mode needed to call the CLI, and downloads the region-matched official installer via a background job when no qualifying version is present.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.