egnmosk/dsh-browser-bridge

DeepSeek Harness plugin + browser extension bridge: browser_* agent tools (navigate, click, type, screenshot,

A DSH plugin + browser extension pair that lets DSH agents read and control your own browser — the equivalent of Kimi's WebBridge or Claude's browser extension, for a local harness. The DSH side exposes 13 model-facing browser_* tools (status, list/activate tabs, navigate/reload/back/forward, interactive-element snapshot with stable CSS selectors, read page text, click, type with native events, key press, scroll, wait for selectors, screenshot to disk, and in-page JS eval); the extension side executes them over a WebSocket protocol (commands camelCase in the extension, snake_case in the model-facing tools). When the extension is not connected, every tool fails with a clear message explaining how to connect it.

Agent Capabilities ★ 1 updated 2026-08-13 ✅ runtime-tested
View on GitHub ↗

Install

⚠️ Install command not yet confirmed — check the README on GitHub for the exact command.

Compatibility

DSH web profile plus a Chromium browser (Chrome / Edge / Yandex) running the bundled Manifest V3 extension. The bridge binds only to the web server's loopback host (127.0.0.1 by default) and has no authentication — any local process could connect to /bridge and drive the browser, so treat it like shell access. browser_eval executes JavaScript in pages and should be granted only to trusted agents. The extension holds <all_urls> host permissions (needed to read tab URLs and act in any page) and talks only to the configured localhost URL.

Details

Recent updates

README documents the dependency-free implementation and its test story: the WebSocket server is a minimal RFC 6455 implementation with no dependencies, and node test/run-test.mjs boots a real server plus a fake extension client to exercise every tool, timeouts, disconnect and the /bridge/info route (40 assertions, no harness boot required).

FAQ

How do I install dsh-browser-bridge?
There is no one-line command — the README documents a manual mount into the web profile's node_modules plus a browser-bridge row in ~/.dsh/profiles/web/cordis.patch.yml, followed by a dsh web restart and loading the bundled extension from the repo's extension folder via Load unpacked.
How do I confirm the bridge is running?
After the restart the server prints [browser-bridge] bridge ready - point the DSH Browser Bridge extension at ws://127.0.0.1:3080/bridge; dsh --profile web --dump-config | grep -A 3 browser-bridge shows the row and curl http://127.0.0.1:3080/bridge/info returns JSON.
Is the bridge secured?
No — it binds only to the loopback host and has no authentication, so any local process could connect to /bridge and drive the browser; the README says to treat it like shell access. The extension talks only to the configured localhost URL.

More plugins in Agent Capabilities

Browse more in Agent Capabilities

Guides for Agent Capabilities plugins