DSH 网页界面右下角的一键重启按钮:全屏遮罩原地重启 dsh 进程并自动刷新页面;无需启动脚本,跨 Windows/macOS/Linux。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:miisaka19800/dsh-restart-fab
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
A floating one-click restart button for the DeepSeek Harness web GUI.
Pinned to the bottom-right corner of the page: one click arms a confirmation, a second click restarts DeepSeek Harness in place — the page shows a full-screen "restarting" overlay and automatically reloads onto the new host once it is back up. No manual refresh, no second tab, no launcher script.
Features
- Fully self-contained — the restarted host is relaunched with the exact
same command line that started the current one (
node …/bin.js web --port N), preserving workspace, port, profile and flags. No dependency on any launcher script (DSH启动器.exe, shell wrappers, etc.). - Cross-platform — Windows (force kill via
taskkill), macOS/Linux (gracefulSIGTERMthenSIGKILL). - Fast — the old process is killed ~1.6 s after you confirm; the new host starts immediately.
- Clean UX — full-screen overlay with a spinner and elapsed timer while restarting; the page polls the host every second and reloads itself the moment the new host responds. A "refresh now" fallback appears after 60 s.
- Sessions survive — DeepSeek Harness persists sessions, so your conversations resume automatically after the restart.
- Same-origin only — the restart route rejects requests from other origins.
Install
Once published, install into the web profile with one command:
# from npm (once the package is published)
dsh plugin --profile web add dsh-restart-fab
# or straight from GitHub (works even before the npm release)
dsh plugin --profile web add github:miisaka19800/dsh-restart-fab
Then restart DeepSeek Harness once (close the console window / stop the process and start it again) — from then on the button is always there.
Install from a local checkout (development)
dsh plugin --profile web add /path/to/dsh-restart-fab
The profile keeps a link: dependency, so edits to this folder are live after
the next restart.
Uninstall
dsh plugin --profile web remove dsh-restart-fab
How it works
button (2nd click) ──POST /dsh-restart-fab/restart──▶ server route
│ spawns detached helper
│ node restart-helper.mjs <pid> <relaunch-spec-json>
helper: sleep 1.6s ──▶ kill server process ──▶ sleep 400ms ──▶ relaunch
(same argv, same cwd)
Windows: new visible console
(close it to stop; child processes
attach to it — no stray popups)
──▶ poll new host ──▶ exit
page: overlay + poll /dsh-restart-fab/ping every 1s
── boot id changed? ──▶ location.reload() on the new host
GET /dsh-restart-fab/ping— health check; reports the hostbootid (<pid>-<timestamp>). The page reloads when it changes.POST /dsh-restart-fab/restart— same-origin only; schedules the restart throughlib/restart-helper.mjs, spawned as a detached, hidden child so it survives however the server dies. It kills the server process, relaunches the same command line, and exits once the new host answers.
Project layout
| path | purpose |
|---|---|
client/client.js |
hand-authored CJS bundle, injected into the shell.overlay slot (bottom-right button + restart overlay), zh/en locale |
lib/index.js |
server-side cordis plugin: ping + restart routes on the webServer service |
lib/restart-helper.mjs |
detached helper: kill + relaunch (cross-platform) |
cordis.patch.yml |
profile bundle patch that inserts the plugin entry |
No build step — plain ESM server code and a hand-authored client bundle.
Security
The restart route only accepts same-origin POSTs (the page served by the host
itself). Restarting stops the current dsh web process and starts a new one —
anything running inside it (including model sessions) is interrupted, then
resumed from persistence.
License
MIT
链接
同类插件
zhu1090093659/dsh-web-ui#packages/dsh-web-ui-all★ 2622
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
ccch1mneyyy/dsh-TUI★ 1231
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 1198
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
omdsh-dev/dsh-at-file★ 214
Codex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
huiliyi37/dsh-tianshu-tui★ 159
DeepSeek Harness 的终端 UI(TUI)。
Nagi-ovo/dsh-visualize★ 114
对话内生成式 UI:模型把交互式 HTML 卡片直接画进会话流,带流式预览与沙箱渲染。