Controlled browser automation for DeepSeek Harness: the agent_browser tool and BrowserAutomationService drive a real Chromium or Chrome page (or an explicit CDP endpoint) through the agent-browser CLI, with allowedDomains containment and per-call output limits.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:KasenRi/dsh-browser
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This repository is an installable release mirror for @kasenri/dsh-browser 0.1.0. Canonical source: https://github.com/KasenRi/dsh-orbit-browser-plugins/tree/main/packages/browser Do not develop features here; publish changes from the canonical source monorepo. Community plugin for DeepSeek Harness (DSH). Not affiliated with or endorsed by DeepSeek.
让 AI 真正操作浏览器完成任务。 支持打开网页、点击、输入、翻页、读取内容和下载文件等操作,可用于网页测试、信息采集和自动化流程,并提供域名限制等安全控制。
Technical integration:
- a
BrowserAutomationServiceonctx.browserAutomation - a model-facing
agent_browsertool that drives theagent-browserCLI
Harness native infrastructure (agents, tools, sessions)
│
▼
@kasenri/dsh-browser
│ BrowserAutomationService + agent_browser tool
▼
agent-browser CLI → Chromium / Chrome (or an explicit CDP endpoint)
Requirements
| Component | Tested with |
|---|---|
@deepseek-ai/dsh |
0.1.5-rc.2 |
@deepseek-ai/cordis |
4.0.2 |
agent-browser |
0.33.2 (must be on PATH) |
| Node.js | >= 22.19.0 |
| Browser | Chromium / Google Chrome (or an Electron/CDP debug endpoint) |
DSH is in developer preview and evolves quickly; this package is tested with the versions above, not with every future DSH release.
Install
The package is published to the npm Registry; the dedicated Git distribution mirror remains available when a Git source is preferred:
dsh plugin --profile web add @kasenri/dsh-browser
# Git source alternative, tracks the mirror repository HEAD:
# dsh plugin --profile web add github:KasenRi/dsh-browser
The package declares a dsh.bundle patch, so dsh plugin add registers it as a
profile layer automatically. Restart the profile (or start a new session) after
installing.
The canonical source is maintained in the
source monorepo.
The source monorepo's versioned Release tarballs remain available for manual or
offline fallback, but the Market uses this dedicated Git repository so updates
can compare the locked commit with HEAD.
If agent-browser is not on PATH, point the plugin at an executable with the
command config key, the executablePath config key, or the
DSH_BROWSER_EXECUTABLE_PATH environment variable.
Tool input modes
agent_browser accepts exactly one of:
| Mode | Purpose |
|---|---|
args |
Raw agent-browser argv (e.g. ["open", "https://…"], ["snapshot", "-i"]). |
semanticAction |
Stable target: action + locator/role/name/selector. |
job |
Short deterministic multi-step batch (steps, failFast). |
qa |
Page QA preset (url or attached, expected text/selector, diagnostics). |
electron |
Explicit CDP attach: `{ action: "connect", port |
sourceLookup |
Candidate source locations from DOM/React evidence + bounded workspace scan. |
networkSourceLookup |
Failed-request evidence + candidate source/workspace hints. |
Standard workflow: open → snapshot -i → use the current @refs →
click/fill/select → snapshot -i again after the page changes.
Other options: stdin (only for batch, eval --stdin,
auth save --password-stdin), outputPath (atomic 0600 write of the
structured result), timeoutMs, sessionMode (auto | fresh).
What it protects
- Stale refs — refs are page-scoped; mutations against refs that are not in the latest snapshot of the same target are blocked before any browser call.
- Tab drift — an unexpected active-target change (including
about:blank) invalidates refs and triggers exactly one deterministic recovery viatab list+tab <id>; ambiguity fails astab-driftinstead of guessing. - Artifacts — screenshots, downloads, PDFs, HAR/trace/record files are verified on disk (existence, size, type) before success is reported.
- Secrets and protected state —
.agent-browserstate, password stores and cookie databases are blocked; credential-shaped values are redacted from all tool output. - Domain containment — when
allowedDomainsis configured, known URLs are preflighted, the managed context launches with upstream--allowed-domains, and the final URL is verified. CDP attach (electron/connect) is refused while containment is enabled, because it cannot be enforced on an existing browser context. - Human verification — CAPTCHA, OTP, passkey, WebAuthn and 2FA are never bypassed; the tool reports what it saw and stops.
Large outputs are compacted into a bounded preview plus a spill file instead of being pushed into the model context.
Configuration
| Key | Default | Meaning |
|---|---|---|
command |
agent-browser |
Executable to invoke. |
namespace |
— | Optional agent-browser namespace. |
executablePath |
DSH_BROWSER_EXECUTABLE_PATH |
Chromium/Chrome executable for the managed context. |
timeoutMs |
35000 |
Default per-call subprocess timeout. |
maxOutputChars |
8000 |
Inline output budget before spilling. |
maxOutputLines |
120 |
Inline line budget before spilling. |
spillDir |
~/.dsh/browser-artifacts |
Where compacted outputs are written. |
allowedDomains |
[] |
Domain allowlist for strict containment. |
registerTool |
true |
Register the agent_browser tool. |
License
MIT
Links
More in this category
Tencent/BrowserSkill#dsh-plugin-browserskill★ 9785
BrowserSkill bridge for controlling visible Chrome and Edge Agent Windows from DeepSeek Harness, with native browser tools, accessibility and VOM observations, screenshots, owned multi-session control, and a live Web UI overlay.
omdsh-dev/dsh-browser#packages/browser/bridge-browser★ 941
Chrome sidebar extension that lets DSH operate your browser directly, no vision capabilities required.
liustack/modsearch★ 875
Web search bridge for text-only agents: ask the web or X, get structured JSON evidence (search, fetch, citations).
DDDMUC/dsh-free-search★ 742
Free, keyless web search for DSH: 7 engines (DuckDuckGo/Bing/SearXNG free + Exa/Perplexity/DeepSeek paid), auto-failover, settings-page UI with API key inputs and official links, web_fetch, and an engine test tool.
Fisfzy/dsh-ego-browser★ 358
Drive a real Chrome/Chromium browser from DeepSeek Harness with 35 structured tools for navigation, snapshots, clicks, forms, JavaScript/CDP, screenshots, downloads and tabs; a live sidebar mirrors the page and accepts mouse and keyboard input. It ships a managed CDP runtime, keeps login state across calls, and can import cookies from your everyday Chrome through a companion extension.
wqty123/dsh-browser★ 154
Shared real browser for DSH: a native Electron window the human can watch and take over, driven by the agent over CDP with 20 browser_* tools (open/snapshot/execute/fill/screenshot/download/auth), per-task session isolation, cookie persistence, CAPTCHA detection; self-hosts on plain dsh web without a desktop shell.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.