How to use dsh-browser
Mount a token-authenticated WebSocket bridge in dsh web configuration, enabling the Chrome extension to read and manipulate pages within the user's real browser while preserving login state.
This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.
This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.
Quick start
dsh-browser (bridge)
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add github:Lum1104/dsh-browser#path:packages/browser/bridge-browser
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- Your real browser, not a headless copy: the model works in the page you already have open, retaining logins, sessions, and cookies.
- A text-first model interface: numbered controls, stable IDs across snapshots, delta updates, and masked sensitive values make pages operable without vision.
- A narrow privacy boundary: passwords and payment-card values are always rendered as
••••and never leave the page. - A guarded bridge: authenticated handshakes protect remote connections, privileged gateway methods reject non-loopback callers, and the extension binds tools to one user-controlled tab.
- Make sure dsh web is running locally (default
http://127.0.0.1:3080).
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
Why does the sidebar always show "Not Connected" after installation?
The dsh plugin command only registers the bridge bundle to the local web profile; dsh processes that were already running before installation won't automatically load the new plugin. Stop the current dsh, then re-run pnpm start or npx @deepseek-ai/dsh web, and the extension will automatically reconnect without needing reconfiguration.
Do I need to manually copy and paste the Token?
No. Local (127.0.0.1) loopback connections don't require a Token. The extension automatically detects local dsh via /ext/bridge-config and establishes a WebSocket. Only when deploying remotely with --host 0.0.0.0 do you need to fill in the address and Token in the sidebar settings. When not explicitly configured, the Token is automatically generated and written to ~/.dsh/ext-bridge-token (permissions 0600).
Which webpages cannot be read or operated?
Protected browser internal pages (such as chrome://, chrome-extension://, Chrome Web Store) cannot have content scripts injected, so they are not supported; only regular http:// or https:// pages are usable. Already open pages don't need to be refreshed—the extension will automatically inject the script on first operation.
Will passwords or bank card numbers be sent to the model?
No. When rendering snapshots, sensitive fields (type=password and payment card numbers) are all displayed as ••••, and values don't leave the page; form filling also only returns desensitized plain text.
Will switching tabs cause the model to follow along?
No. When the assistant starts working, it binds to the current active tab; after the user manually switches tabs, subsequent browser operations will pause, and the sidebar will ask whether to "Continue on original page" or "Follow new page". Choosing the original page allows background operations, but will never change the tab you're currently viewing.
Is this solution the same as the official dsh browser capability?
Yes, this is the bridge implementation for dsh web profile's built-in browser capability: the plugin registers the browser_* toolset and WebSocket channel, the model addresses elements by number, all actions are completed in the user's own Chrome, and login state is preserved.
How to uninstall?
On the dsh side, use dsh plugin --profile web remove @yuxianglin/dsh-bridge-browser to remove the bridge plugin; on the Chrome side, go to chrome://extensions, find "dsh Browser Assistant" and click "Remove".
— source: plugin_wiki.faq_json
Compatibility
- DSH: 0.1.0-rc.6+
- Node: ^22.19 或 >=24
— source: plugin_wiki.compatibility_json
Pitfalls
Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.
— source: general rule