精选
为什么选中它
待人工精选——以下事实来自源码仓库。
它能做什么
A floating one-click restart button for the DeepSeek Harness web GUI — self-contained, cross-platform.
适合谁
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
风险提示
- 未发现明显风险信号;安装前仍建议查看源码。
A floating one-click restart button for the DeepSeek Harness web GUI — self-contained, cross-platform.
待人工精选——以下事实来自源码仓库。
A floating one-click restart button for the DeepSeek Harness web GUI — self-contained, cross-platform.
想用 DSH 获得这项能力的用户;装前建议先看源码和文档。
dsh plugin --profile web add github:miisaka19800/dsh-restart-fab 作者没有声明支持的平台。
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 (graceful SIGTERM then SIGKILL). - 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: sh # 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) sh 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 sh 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 host boot id (<pid>-<timestamp>). The page reloads when it changes. - POST /dsh-restart-fab/restart — same-origin only; schedules the restart through lib/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不看 Star,人工一条条挑的。
把 DSH 的 settings.yaml 做成可视化看板:所有已注册的 settings namespace——包括官方界面从未覆盖的第三方插件配置——都渲染成可编辑表单。项目还早,但方向很对:告别手改 YAML。
给 DSH 的 DIY 轨迹可视化:把 agent 的计划与执行画成图,不用翻原始日志也能看清它在干嘛。项目还早,但补上了「一眼看懂 agent 在做什么」这个真实缺口。
从 Claude Code / Codex 把活派给 DSH:在宿主内拉起带分级预设的 DSH agent 会话,看原生子代理进度,还能借它的多模态桥给纯文本的 DSH 补上视觉和生图。编排型插件,把 DSH 变成其他编码 agent 的后端。