Introduction¶
When performing browser-related tasks in DSH, a common problem arises: the model needs to access a logged-in website, but the browser session is not in the model’s control, or different clients maintain their own login state. dsh-plugin-browser addresses this problem by wrapping Playwright + CDP browser automation into a DSH plugin, allowing the model to operate the same logged-in Chrome through 15 browser_* tools.
What is this¶
q35888/dsh-plugin-browser is a DeepSeek Harness (DSH) plugin. Its positioning is:
- Native browser automation for DeepSeek Harness
- Provide 15
browser_*tools onctx.tools - Use Playwright + CDP
- Share the same logged-in Chrome across DSH / pi / MCP clients
Maintainer is q35888, license is MIT. Repository address:
https://github.com/q35888/dsh-plugin-browser
The dependency version constraints provided in the package are as follows:
{
"peerDependencies": {
"@deepseek-ai/dsh-tools": "^0.1.0-rc.7",
"@deepseek-ai/cordis": "^4.0.1"
},
"dependencies": {
"playwright": "^1.61.1"
}
}
Core Features¶
Below are the capabilities most directly related to daily use.
Session Mode¶
browser_session:Start or switch sessionreal:Use logged-in Chromeisolated:Use independent incognito session- Chrome will automatically launch when not running
- Default directory settings can share the same logged-in Chrome as
agentic-browser-mcp
Page Interaction¶
The following tools are mainly based on ref positioning:
browser_navigate
browser_snapshot
browser_click
browser_type
browser_select_option
browser_hover
First open the page, then use browser_snapshot to obtain manipulatable elements, and then perform clicks, input, selection, or hover.
Tabs, Dialogs, Page State¶
browser_tabs:Manage tabsbrowser_handle_dialog:Handle JS dialogsbrowser_eval:Execute page JSbrowser_storage:Read cookies/localStoragebrowser_console:Read console logsbrowser_screenshot:Screenshot to filebrowser_wait_human:When encountering CAPTCHAs or login, pop up a card in the DSH interface to wait for manual operation, with a 5-minute timeout
Installation¶
Choose one of Installation Method A or Method B; mixing them will cause duplicate plugin entries leading to DSH startup failure. This article is written based on the dsh CLI method.
dsh CLI installation command:
dsh plugin --profile web add github:q35888/dsh-plugin-browser
If you plan to use the isolated mode, also install Chromium:
npx playwright install chromium
isolated mode requires npx playwright install chromium (approx. 95MB); using only real mode can skip this.
After the above steps, the plugin will register browser_* tools in DSH’s ctx.tools.
Typical Usage¶
An example from the documentation:
You: Help me check what notifications are on github today
Model: browser_navigate → browser_snapshot → Read notification list → Report to you
In actual operation, usually follow this order:
- First call
browser_session, choosingrealorisolatedsession. - Call
browser_navigateto open the target page. - Call
browser_snapshotto get page elements andref. - Use tools like
browser_click,browser_type,browser_select_option,browser_hoverto operate the page. - When you need to pin a specific tab, use
switchfrombrowser_tabs.
A few usage points:
refis temporary; after the page changes, re-runbrowser_snapshotbefore operating- When encountering CAPTCHAs or 2FA, call
browser_wait_human, confirm in the DSH interface after finishing the manual operation - Newly opened tabs follow automatically; when you need to pin a specific tab, use
switchfrombrowser_tabs isolatedmode requiresnpx playwright install chromium(approx. 95MB); using onlyrealmode can skip this
Use Cases and Considerations¶
This plugin is suitable for scenarios where you need to access logged-in websites within a DSH session: you have already logged into a site in your browser, so the model can continue to read or operate the page within the browser provided by this plugin.
Before use, please note:
- The plugin runs with the current dsh process permissions;
browser_evalandbrowser_storagecan read cookies and login credentials in the browser, please only use this plugin in sessions you trust - You should check the source code and license before installation; the license is
MIT - Multiple sessions/sub-agents in the same DSH process share the same browser tabs; concurrent use will interfere with each other
- In
isolatedmode, if DSH exits unexpectedly, the independent browser process may remain - It depends on DSH’s rc phase tool API; if it fails after a major DSH version upgrade, deleting the two lines in the machine-level configuration will allow for a complete rollback
- In macOS headless
isolatedmode, settingAGENT_BROWSER_ISOLATED_CHANNEL=chromemight block the daily Chrome
Conclusion¶
The value of dsh-plugin-browser is to integrate browser automation back into DSH’s tool invocation chain: the model can directly navigate, read pages, and operate elements, and hand over the operation back to the user when manual verification is required.
Repository address:
https://github.com/q35888/dsh-plugin-browser
The directory page URL has not been confirmed in the facts of this article, so it is not provided here.