dshbase

插件目录 / Developer / dsh-webui-launcher

dsh-webui-launcher

未验证 YV3507

✓ 持续维护 基于 8 个官方 DSH 包

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
语言
2026-08-20最近推送
跨平台平台

功能简介

Developer 类别的 DeepSeek Harness 插件。

我们的评价
未验证 — 尚未实测

Developer 类别的 DeepSeek Harness 插件。 尚未验证——请自行安装测试。

「未验证」表示我们的自动化 CI 尚未安装过该插件。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

你是插件作者? 想拿到「已验证」标签——提交你自己的验证证据(截图、日志或短视频),我们审核通过后即改为「已验证」。

提交验证证据 ↗

README

dsh-webui-launcher — cross-platform Web UI launcher for DeepSeek Harness

Awesome DSH Plugin

English | 中文

Start, stop, check and open the DeepSeek Harness Web UI from inside the harness — cross-platform (Windows / macOS / Linux), no desktop scripts needed.

Install

dsh plugin --profile web add github:YV3507/dsh-webui-launcher

or from a checkout:

cd dsh-webui-launcher
npm install && npm run build
dsh plugin --profile web add .

What it adds

  • Model toolswebui_start, webui_stop, webui_status, webui_open: start the Web UI (spawning dsh --profile web in the background), wait until it answers HTTP 200, report or stop it, open the default browser.
  • Slash command/webui start|stop|status|open.
  • Settings card — a "Web UI Launcher" card on the Settings page of the web GUI (browser half, exports["./client"]), driving the same /webui/* JSON endpoints.
  • Desktop shortcut — on the first plugin start, a launcher shortcut is created on the desktop (.lnk on Windows, .desktop on Linux, .command on macOS) that starts the Web UI and opens the browser once ready. Headless hosts (no Desktop, no DISPLAY) skip creation silently; disable with desktopShortcut: false.
  • dsh default icon — the shortcut uses the official dsh icon by default (the web-app favicon rasterized and bundled in assets/; .ico on Windows, .png on Linux), copied into the persistent state directory so a reinstall never orphans it.
  • Custom shortcut icon — upload any image (PNG/JPEG/BMP/GIF/TIFF) from the Settings card; it is converted automatically (multi-size .ico on Windows, .png on Linux) and the existing shortcut's icon is updated immediately. An explicit shortcutIconPath overrides the default.

Configuration

Option Default Meaning
port 3080 Web UI port.
host 127.0.0.1 Loopback host dsh web binds.
cliBin "" Explicit dsh CLI script; empty reuses the running CLI.
startupTimeoutMs 120000 How long start waits for the surface to answer HTTP 200.
openBrowserOnStart true Open the default browser once the Web UI is ready.
desktopShortcut true Create the desktop launcher shortcut on the first plugin start.
shortcutName "DeepSeek Harness Web UI" Display name of the desktop shortcut.
shortcutIconPath "" Explicit icon image; empty uses the bundled dsh icon.

Behavior and robustness

  • Adopt-or-start — a server already listening on the port is adopted: never restarted, never stopped. webui_stop kills the tree this plugin spawned, and also an adopted server whose PID the launcher (or an earlier instance) recorded — only when that PID is the one currently listening, and only for the process hosting this plugin, with the same node.exe identity guard before killing. A foreign server without a PID record is never touched.
  • Explicit state machineidle → starting → running → stopping, single-flight serialized: concurrent start/stop calls never interleave.
  • Orphan cleanup — when the plugin unloads or hot-reloads, any server it spawned is stopped (ctx.effect dispose).
  • PID identity guard — before killing, the process is re-checked (alive, still our child, still node.exe via tasklist on Windows) so a recycled PID is never touched.
  • Abort/timeout hygiene — an aborted or timed-out start kills the child it spawned and surfaces the output tail in the error.
  • CLI location fallback — the running CLI (process.argv[1]) → the @deepseek-ai/dsh package → explicit cliBin; resolution failure throws an actionable error.

Development

npm run build    # esbuild → lib/index.js (host) + lib/client.js (browser)
npm test         # node --test, zero-dependency (mocks the two external packages)

The state-machine failure paths (child death, timeout, abort, sibling adoption, concurrency, dispose) are unit-tested against the built bundle with scripted fake dependencies — no real processes or timers.

Security

Loopback-only by default, no elevation, no external network. The plugin kills only the process tree it spawned — or a PID-recorded launcher server it hosts — after verifying the PID still belongs to that process.

License

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-webui-launcher」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:YV3507/dsh-webui-launcher

Headless(CLI)profile:

dsh plugin --profile headless add github:YV3507/dsh-webui-launcher

实测报告

尚未 L3 验证——若已跑过,见下方失败备注。

状态:pending · 最近测试 2026-08-26 · 标记 webonly
备注:验证: web-only;待 L4 web CDP;L4 web CDP runtime-fail on dsh 0.1.0-rc.8. 浏览全部待验证失败 →
安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7795 个插件 →