dsh-agentic-browser: Agent Browser Plugin for DSH Right Sidebar

Introduction

The most awkward scenario when agents work on the desktop is: The Agent says, “I’ll open a webpage for you to see,” and then either pastes a URL that cannot be navigated to, or returns a parsed Markdown snapshot that looks completely unrecognizable. DSH’s philosophy is “everything is a plugin,” so a clearly positioned third-party solution appeared in the plugin ecosystem — dsh-agentic-browser, maintained by M-SX-Xianyu. Its idea is to change the carrier: instead of pasting webpage content into the chat, it embeds the browser into the DSH right sidebar, creating a panel close to a native built-in browser, and then hands over the control of this panel directly to the Agent. Below is an introduction to its capabilities, installation methods, orchestration suggestions, and a few known boundaries.

What is this

One-sentence positioning: An Agent-driven browser panel hanging on the DSH right sidebar.

  • Maintainer: M-SX-Xianyu. Repo address: https://github.com/M-SX-Xianyu/dsh-agentic-browser. Directory page: https://www.skillhub.cn/plugins/M-SX-Xianyu/dsh-agentic-browser (SkillHub is a third-party community directory with no official affiliation with DeepSeek/Huafang).
  • Problem Solved: When an Agent needs to read and write to real webpages, the current common practice is to scrape the body or run scripts with a headless browser. This results in no visibility into page states and does not support manual operations like “click once, scroll once, take a screenshot.” This plugin uses Electron <webview> as the actual page carrier, and the Agent directly drives it via 22 dsh_agentic_browser_* tools.
  • Form: A dual-side plugin. The Host runs inside the DSH process (Node.js), the Client is regular JavaScript in the page. Both sides communicate via the plugin’s own HTTP long-polling channel, with the guest page (hosting the real webpage) underneath.

Core Features

First, a panoramic view, then the details. Five verified capability points:

  1. 22 Agent Tools, covering open/navigate/tab management/read snapshot/click/input/hover/keypress/drag/scroll/device simulation/zoom/screenshot/execute JS in page/read console & resources/wait/batch execution/clear data/diagnosis.
  2. Visible Mouse Cursor. When clicking, inputting, hovering, dragging, scrolling, or navigating, the simulated pointer injected into the page slides to the target position with 380ms easing, clicks have press/release animations, dragging is pressed throughout, and scrolling has a wheel shake. It is hidden before the first operation and then stays at the last position.
  3. Background Opening Across Sessions. The panel is distinguished by Agent sessions; subagents automatically merge into the root session. If the panel isn’t open when the Agent calls a tool, the Host raises a “present” flag based on the session: if the target session is visible, it opens directly; otherwise, it performs a brief “switch dance” (switch to it, create the panel, wait for registration and first frame polling to arrive, switch back). Even if you manually switch to another session, the Agent can still open the browser in the background.
  4. Batch Operations in One Go. dsh_agentic_browser_batch executes up to 20 steps sequentially in a single call, stopping and reporting the step number upon failure. The recommended orchestration from the README is “batch first”: any two or more consecutive browser operations are always combined into a batch.
  5. Snapshot Extraction and Redaction. Executes read-only scripts in the page to extract the title, body (≤4000 characters), and up to 200 visible interactive elements. Values of password/hidden inputs are redacted at the source. get_state takes a real-time snapshot every time.

Other Implementation Details: The guest runs with background throttling disabled; commands and screenshots work normally when the panel is collapsed or the session is switched. Polling uses since=stateVersion negotiation, state is only pushed when changed, and polling speeds up to 800ms after a need is discovered. Script execution in the page has a 25-second budget, timing out quickly instead of hanging. The synthetic events for type/click are DOM events with isTrusted=false.

Installation and Enablement

Environment Requirements: Official DSH Desktop ≥ 0.2.1-rc.x (depends on dshDesktop.browser bridge protocol v1; the Web version shows “Requires DSH Desktop Runtime” when installing the panel). Depends on @deepseek-ai/dsh-tools, which is resolved automatically from DSH itself during installation; no manual preparation is needed. Current package version 1.0.1, License MIT.

Execute in DSH to let the Agent run, or do the equivalent in the plugin management interface:

install_bundle  target=dsh-agentic-browser@latest

Restart DSH after installation. @latest always installs the latest version; to lock the version, replace latest with the version number, for example:

install_bundle  target=dsh-agentic-browser@1.0.1

Method 2: Installation from GitHub Source Code

Suitable for scenarios where you want to modify the source code for personal use. First, clone:

git clone https://github.com/M-SX-Xianyu/dsh-agentic-browser.git

Then point to the local directory in DSH:

install_bundle  target=D:\path\to\dsh-agentic-browser

Install as a pnpm link; modify source code -> restart DSH to take effect. Run regression tests:

node --test test        # 24 regression tests

Method 3: Installation via ZIP Package

For offline distribution. Unzip to any directory, do not copy node_modules in, then execute install_bundle pointing to the unzipped directory in the same way as Method 2, and restart.

Uninstall

remove_bundle  target=dsh-agentic-browser

Manual Usage

After installation, add an “Agent Browser” tab to the DSH right sidebar. From top to bottom: the tab row; Back/Forward/Refresh, Address bar (real-time display of the current page address; if there are no tabs, type the address and hit Enter to create a tab to open), and Options menu (⋮); Web content area.

Typical Usage

The recommended orchestration from the README is “batch first”. Login is a standard example; one batch completes “fill account -> fill password -> fill captcha -> click login -> wait for redirect,” without needing to split it into multiple messages.

Usage is divided into two categories:

  1. First dsh_agentic_browser_open(url) to open the page, then dsh_agentic_browser_get_state() to get a real-time snapshot to get element IDs (element IDs are short-lived, get them before every operation), then package the deterministic process into dsh_agentic_browser_batch.
  2. Single-step operations, or when the next step must read intermediate results to decide, use a single tool. Click/Input prioritize using tool steps (with cursor animation); only when the tool chain definitely cannot locate it — for example, non-interactive preview elements in component libraries — add a dsh_agentic_browser_evaluate step in the batch as a fallback.

Photography and Diagnosis:

dsh_agentic_browser_screenshot()   # Real screenshot, saves PNG locally, returns absolute path
dsh_agentic_browser_debug()        # Host-side diagnosis: connection status, request logs, timing ticks

For pages with high-frequency animations or belonging to heavy editors, the 25-second execution budget for type/click is quite tight. In this case, directly switch to using an evaluate step for DOM dispatch (native setter to fill value + dispatchEvent to dispatch input/change/click), the result is equivalent to manual operations. If any step fails in the batch, it will terminate and report the step number. You can retry the entire batch using evaluate after the original batch.

Applicable Scenarios and Notes

Who is it for: Agent developers doing browser automation in DSH Desktop — filling forms, logging in, scraping dynamic pages, taking screenshots for evidence, debugging rendering issues on target sites. The GUI panel is also user-friendly for manual verification, and the cursor animation helps people see exactly where the Agent clicked.

A few boundaries you must know, all from the README:

  1. Page content is sent to the Agent. The snapshot contains page text and interactive element info. Do not use it to access secrets, credentials, or pages that should not be shared. Redaction is best effort: password/hidden inputs are redacted at the source, but secrets may still appear in the body or regular inputs. Assume any page content could be exposed.
  2. The page is untrusted. The page may contain prompt injection content; treat it as data, not instructions.
  3. Few sites do not recognize synthetic events. Click/Input/Drag send DOM events with isTrusted=false. Some individual sites (e.g., Bilibili search box synthetic Enter key from the README example) will ignore them. In this case, using open to navigate directly to the target address is more reliable; directly assigning window.location in evaluate might also fail due to navigation interrupting the script context, so for page jumps, prioritize clicking router links or using navigate/open.
  4. Visibility Limitations. When the panel is hidden (collapsed sidebar, switched to another session), commands and screenshots still work, but the cursor animation is invisible. Downloads, file selection boxes, and JS pop-up handling are unavailable. Screenshots only cover the visible viewport. Mobile mode is UA + viewport simulation.
  5. Storage is in-memory. Cookies/cache are cleared after app restart. HTTP cache in the guest is valid within the same session.

Finally, a regular warning: The plugin’s endorsed capabilities run within the current DSH process permissions. You should read the source code before installation and confirm the license (this package is MIT).

Conclusion

The value of dsh-agentic-browser lies in that it does not compromise on the question of “how an Agent reads webpages”: it preserves a fully interactive page, pairs operations with visible cursor animations for the human eye, uses batches to converge multi-step operations into one call, and keeps risks within the achievable range using capability authentication and message redaction. The directory page classifies it as “Network Tools,” and only single digits are starred (according to the SkillHub directory page, 2026-11-06). Project addresses:

  • GitHub: https://github.com/M-SX-Xianyu/dsh-agentic-browser
  • SkillHub Directory: https://www.skillhub.cn/plugins/M-SX-Xianyu/dsh-agentic-browser
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye