Automation & Ops browser-automationchrome-extensiondeepseekdsh-pluginfirefox-mv3text-only-page-interfaceside-panel-ui

dsh Browser Control

Connects DeepSeek Harness to the Chrome/Firefox tabs you already use — text-only page control with no vision required, preserving your logins and sessions.

FollowAgents review · FARS-2.1
Not recommended
55/ 100 5-point scale 2.8 / 5
1 2 3 4 5 6
1Trust13 / 29 · 2.2/5

Tests show security awareness: sensitive value masking (password echoed as ••••), refusal to echo page-authored injection text, content budgets (maxItems/maxChars) limiting data exposure. However the manifest/permissions are not in evidence, so least privilege is only inferable; user confirmation is limited to an includePageDelta flag with no visible confirmation flow for sensitive actions; data-flow documentation relies on a README not shown; external effects (clicks, navigation, new tabs) exist without shown guardrails; rollback mechanisms are absent; attribution is supported by LICENSE and author fields. Deductions: no manifest, no confirmation/rollback evidence.

2Reliability9 / 14 · 3.2/5

CI (clean install, frozen lockfile, typecheck, test, build, smoke) supports dependency availability and self-consistency; tests show precise error messages and well-defined navigation-wait semantics. Deduction: core dsh dependencies are 0.1.2-rc.1 pre-release versions with unaddressed stability risk.

3Adaptability10 / 18 · 2.8/5

Package description targets Chrome/Firefox and a dsh bridge; tests cover edge cases (new-tab links, noreferrer/ping), indicating careful capability boundaries. Deduction: audience/scenario documentation is not in evidence; only the title-level description supports it.

4Convention10 / 18 · 2.8/5

Clear information architecture (monorepo, extensions/ layout, bilingual README consistency record); stable naming (dsh-browser, @yuxianglin scope); complete MIT license. Deductions: no CHANGELOG, install notes and FAQ not evidenced, no documented known limitations, version 0.1.3 lacks change-record support.

5Effectiveness9 / 13 · 3.5/5

Snapshot + action + delta output design with budgets is LLM-friendly; tests prove predictable output structure; marginal value over vision-based approaches is asserted. Deduction: actual output shape is inferred from test assertions only, with no executed verification.

6Verifiability4 / 8 · 2.5/5

Tests map tightly to claims (masking, trust boundary, settle policy each have targeted tests); facts and inferences are separable; the bilingual consistency record provides a cross-check mechanism. Deduction: README body not shown, so most product-level claims cannot be corroborated.

Evidence confidence: Low Reviewed Sep 07, 2026 Reviewed revision d5c3069ba6cf
Before you use it
  • Core dependencies are 0.1.2-rc.1 pre-release versions; evaluate stability and churn risk before production use.
  • The extension manifest/permissions are outside the reviewed evidence; verify least-privilege yourself before installing.
  • Publisher is unverified/unknown; given the dependency-injection style @deepseek-ai/* group, verify via lockfile integrity hashes.
  • No documented mechanism to roll back or undo executed browser actions (navigation, clicks, form input).
Review evidence [1][2][3][4][5][6][7]
See the full review method →

What does this agent do, and when should you use it?

dsh Browser Control is a standalone pnpm workspace containing a dsh bridge plugin and a Chrome/Firefox MV3 browser extension that connects DeepSeek Harness (dsh) to real browser tabs the user already has open. The workspace pins dsh 0.1.2-rc.1 as the minimum supported runtime and does not support older DSH releases. Its page channel is entirely text-only: pages become structured text with a numbered inventory of interactive elements, the model addresses elements by number, and browser tools never capture screenshots; the side panel conversation UI separately accepts PNG/JPEG/WebP/GIF attachments when the host advertises image support. The model can read page content, click controls, fill forms, press keys, scroll, navigate, and manage tabs while retaining login state, sessions, and cookies. Security includes bearer-token handshakes, loopback-only privileged gateway methods, passwords and payment-card values rendered as •••• and never leaving the page, and fail-closed approval for all click/type/navigation actions. A paired 60-run benchmark on August 18, 2026 showed 5.32 s mean end-to-end latency versus 6.67 s for a matched Playwright baseline, with 3.4 versus 4.7 mean browser tool calls.

The one-line installer builds and registers the bridge plugin (packages/browser/bridge-browser/), builds the Chrome extension into ~/.dsh/browser-extension, and opens chrome://extensions; dsh web then runs locally (default http://127.0.0.1:3080). The extension auto-probes ports 3080/3081/3090/14389 and connects over the WebSocket bridge at /ext/bridge. Tools the model can call include: browser_snapshot (structured text snapshot with delta support), browser_click (click by inventory number), browser_type (React/Vue-compatible input), browser_press, browser_scroll, browser_navigate/browser_open_tab/browser_back/browser_forward/browser_reload, browser_list_tabs, browser_follow_tab, browser_close_tab, browser_get_text, browser_wait, and session.prompt/session.attachment for image attachments. Text the user highlights in the page appears as an attributed quote in the side panel composer and is sent with the next message. Operations bind to a single user-controlled tab; manual tab switching pauses tools and asks whether to continue or follow.

  1. Developers already running DeepSeek Harness who want the model to research, fill forms, and navigate inside their logged-in real browser
  2. Privacy-conscious users who want the model to operate web pages without screenshots (passwords and card numbers never leave the page)
  3. Users working across many tabs who want the assistant to list and follow specific tabs (browser_list_tabs / browser_follow_tab) without activating them
  4. Users who want to highlight a passage and ask the model to 'explain this' without describing where it is on the page
  5. Technical users on Firefox willing to build and load a temporary extension and paste a bridge token
  6. Automation practitioners comparing against Playwright who want lower latency and fewer tool round trips

What are this agent's strengths and limitations?

Pros
  • Operates in your real browser rather than a headless copy, preserving logins, sessions, and cookies
  • Text-first page interface: numbered controls, stable IDs across snapshots, delta updates, and masked sensitive values — pages are operable without screenshots
  • Benchmarked ~20% faster than a matched Playwright baseline (5.32 s vs 6.67 s mean latency) with fewer tool round trips (3.4 vs 4.7)
  • Explicit security boundary: bearer-token handshakes, loopback-only privileged methods, fail-closed approval for click/type/navigation, passwords and card values never leave the page
Limitations
  • Tightly coupled to the DeepSeek Harness ecosystem: pins dsh 0.1.2-rc.1 and does not support older DSH releases
  • The standard dsh plugin command alone cannot install this project — you must run the one-line installer or build from source
  • Browser tools never capture screenshots, so tasks requiring visual understanding of a page are out of scope (images are limited to the separate chat attachment path)
  • Firefox requires manually loading a temporary extension and copying a bridge token, since the moz-extension UUID does not authenticate the add-on
  • Not published as an npm package; updates require re-running the installer and reloading the extension

How do you install or deploy this agent?

Requires Node.js ^22.19 or >=24, Corepack/pnpm, and Chrome 116+ or Firefox 140+ (Windows needs PowerShell 5.1 or 7+).

macOS / Linux one-line install:

curl -fsSL https://raw.githubusercontent.com/Lum1104/dsh-browser/refs/heads/main/scripts/install.sh | bash

Windows (PowerShell):

$s="$env:TEMP\dsh-install.ps1"; irm https://raw.githubusercontent.com/Lum1104/dsh-browser/refs/heads/main/scripts/install.ps1 -OutFile $s; powershell -NoProfile -ExecutionPolicy Bypass -File $s

The installer downloads main, builds and registers the bridge plugin, builds the Chrome extension into ~/.dsh/browser-extension, and opens chrome://extensions — load that directory as an unpacked extension on first install, click Reload on updates. Restart dsh if it is already running.

Firefox: from a source checkout run pnpm install && pnpm --filter dsh-browser-extension run build:firefox, then load extensions/dsh-browser/dist-firefox/manifest. via about:debugging#/runtime/this-firefox and copy the token from ~/.dsh/ext-bridge-token into extension settings.

Note: the unscoped dsh-browser package on npm belongs to a different project; this repository is not published on npm.

How do you use this agent?

Start a managed installation with:

cd ~/.dsh/dsh-browser && pnpm start

From a source checkout, run pnpm start at the repository root.

Once published, the supported public runtime is:

npx @deepseek-ai/[email protected] web

Chrome local use requires no configuration; Firefox requires the token from ~/.dsh/ext-bridge-token. Open a page, click the DeepSeek whale icon, and wait for Connected. Existing HTTP(S) tabs are instrumented on the first action. You can then chat in the side panel and ask the model to read pages, click, fill forms, navigate, or manage tabs; highlighting page text inserts an attributed quote in the composer. On browser-protected pages and extension stores, the model can only read tab metadata and use browser-level navigation — it cannot inspect or operate the protected DOM. If the panel stays Not connected, verify dsh web is running and that http://127.0.0.1:3080/ext/bridge-config returns JSON like {"wsUrl":"ws://127.0.0.1:3080/ext/bridge"}.

How does this agent compare with similar options?

The README provides a paired benchmark against a matched Playwright baseline: Playwright averaged 6.67 s end-to-end latency and 4.7 browser tool calls, while dsh Browser Control averaged 5.32 s and 3.4 calls; Playwright took about 24% longer. The difference stems from operating the real browser via a text interface rather than standalone headless automation.

FAQ

Does it need vision (screenshot) capabilities?
No. The page channel is entirely text-only: pages become structured text with a numbered element inventory and the model addresses elements by number; browser tools never capture screenshots. The side panel accepts PNG/JPEG/WebP/GIF chat attachments only when the host advertises image support, via dsh's separate multimodal path.
Are my passwords and payment details sent to the model?
No. Password and payment-card values are always rendered as •••• and never leave the page; highlighted quotes are never captured from password or payment-card fields.
Could the model switch or act on other tabs without my knowledge?
The assistant binds to the active tab. If you manually switch tabs, later browser actions pause and the panel asks whether to continue on the original tab or follow the new one. The extension never silently retargets or changes your visible tab.
Do I have to approve every action?
In the default auto mode, reads of the controlled tab need no extra confirmation, but click, type, keypress, and navigation calls fail closed until approved; per-origin trust can be session-scoped or permanent in Settings. 'Allow unrestricted browser control' is an explicit global opt-in, and disabling it takes effect immediately.
The side panel stays 'Not connected' — what do I do?
Make sure dsh web runs locally (default http://127.0.0.1:3080); /ext/bridge-config should return JSON, not a web page, otherwise restart dsh. The extension probes ports 3080, 3081, 3090, and 14389 automatically; for other ports or remote deployments, set the address and bridge token in panel settings. Firefox always requires the token.

Related agents