dsh-browser-panel
A browser that lives in the DSH host: every session gets its own tab, the AI drives it, and you watch or take over that same tab inside the DSH Web UI — logins, 2FA, QR codes and CAPTCHAs included. 适合需要 AI 与用户共用同一页面处理验证或表单的场景,需按配置重启生效
Install
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:imroc/dsh-browser-panelREADME
Read the full README ↗Configuration
Override any field from your own patch layer (~/.dsh/cordis.patch.yml, or the profile's cordis.patch.yml). The whole config key is replaced, so restate what you need:
- id: browser-panel
config:
mode: headless # auto | headed | headless
viewport: 1280x800
idleShutdownMinutes: 30
| Key | Default | Meaning |
|---|---|---|
browserPath | '' | Explicit Chrome/Chromium path; empty = auto-detect. |
profileDir | '' | Persistent profile; empty = $DSH_HOME/browser-panel/profile. Shared by every session. |
mode | auto | auto = headed on a private Xvfb when available, else headless. |
screen | 1440x900x24 | Geometry of the private Xvfb. |
windowSize | 1440x900 | Chrome window size in headed mode. |
viewport | 1440x900 | Emulated page viewport — the same for every session tab, and the panel canvas coordinate space. |
xvfbDisplay | :99 | Preferred X display; the next free one is used if taken. |
port | 0 | Fixed DevTools port; 0 picks a free one. |
startUrl | about:blank | First URL of each session's fresh tab. |
extraArgs | [] | Extra Chrome switches. |
snapshotMaxChars | 4000 | Page text budget per snapshot. |
maxElements | 80 | Interactive elements listed per snapshot. |
screencastQuality | 60 | JPEG quality of the stream (and of the polled stills). |
screencastMaxWidth | 1440 | Maximum streamed frame width. |
pollFrameMs | 140 | Poll interval for panels that cannot own the foreground screencast (~7 fps). Values below 60 are clamped. |
askHumanTimeoutSeconds | 600 | Default budget of browser_panel_ask_human. |
idleShutdownMinutes | 0 | Stop the browser — and with it every session's tab — after this much idle time; 0 never stops it. |
autoStart | false | Start the browser with the host instead of on first use. |
startTimeoutMs | 20000 | How long to wait for the DevTools endpoint after launch. |