virggle/dsh-shutdown-after-task
DeepSeek Harness 任务完成后关闭 Windows——按钮开启,倒计时可取消。零依赖 DSH 插件。
Project Overview项目介绍
This plugin adds automatic post-task shutdown to DeepSeek Harness on Windows. Core capability: a draggable floating button in the bottom-right corner toggles a shutdown-after-task mode. When all root sessions return to idle, a 60-second cancelable countdown banner appears, then the system runs shutdown. Use it for long-running jobs like batch migrations, model generation, or overnight tasks where no one is present. Config covers countdown seconds (10–600), system margin (0–60), and shutdown-on-success-only. Caveat: shutdown execution is Windows-only, the mode resets on DSH restart, and the button appears only after one page refresh.
本插件为 DeepSeek Harness 的 Windows 自动关机扩展。核心能力:点击右下角浮动按钮开启「任务完成后关机」模式,全部 root 会话空闲后弹出 60 秒可取消倒计时横幅,到时执行 shutdown。适用于批量迁移、模型生成、过夜长任务,结束后无需值守即可关机。配置项支持倒计时秒数(10–600)、系统余量(0–60)、仅成功时关机。已知限制:仅 Windows 可执行关机指令,DSH 重启后模式需重新开启,页面需刷新一次按钮才会出现。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-shutdown-after-task(virggle/dsh-shutdown-after-task)
仓库:https://github.com/virggle/dsh-shutdown-after-task
本站详情页:https://www.yhbd.top/plugins/virggle-dsh-shutdown-after-task/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证 MIT · ⭐ 2 · 最近提交 2026-08-28 · 主语言 JavaScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add dsh-shutdown-after-task
把 virggle/dsh-shutdown-after-task 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-shutdown-after-task
任务完成后自动关机 —— DeepSeek Harness 插件(零依赖,Windows)。
跑长任务(批量迁移、模型生成、过夜任务)时,点一下右下角的「任务完成后关机」按钮, 任务成功完成后电脑自动关机;倒计时期间可一键取消。
功能
- 右下角浮动文本按钮(可拖动):点击切换「任务完成后关机」模式(默认关闭,绝不自动武装);拖到任意位置,位置自动记住
- 自动避让:其他插件的角落弹窗(如价格提示)与按钮重叠时,按钮自动让开,弹窗消失后归位
- 可取消倒计时:任务完成 → 60 秒倒计时横幅(实时剩余秒数)+「取消关机」按钮
(
POST /cancel→shutdown /a)——不依赖系统层那个无法取消的通知;横幅跟随按钮位置 - 新任务打断:倒计时期间任一会话开始新任务 → 自动撤消关机,模式保持开启
- 取消即退出:点「取消关机」= 取消本次关机 + 退出模式(下个任务不再触发)
- 仅成功时关机:本批次有会话出错则不关机,横幅提示原因,模式保持开启
- 多会话判定:全部 root 会话空闲才算任务完成(子代理并入其 root 统计)
安装
npm(推荐,已发布):
dsh plugin --profile web add dsh-shutdown-after-task
或从 GitHub:
dsh plugin --profile web add github:virggle/dsh-shutdown-after-task
重启 DSH 后生效:右下角出现按钮。若按钮未出现,刷新页面(Ctrl+R)。
也支持本地路径 / tarball 安装:
dsh plugin --profile web add ./dsh-shutdown-after-task
使用
- 点右下角「任务完成后关机」→ 按钮变黄(已开启);按钮可拖到任意位置
- 正常跑任务
- 全部会话空闲且无错误 → 按钮上方弹出倒计时横幅
- 倒计时内点「取消关机」→ 本次关机取消、模式退出;不点则到点关机
配置
编辑 profile 的 cordis.patch.yml(或设置 > 插件配置):
- id: dsh-shutdown-after-task
config:
countdownSec: 60 # 倒计时秒数(10–600,默认 60)
marginSec: 5 # 系统 shutdown /t 额外余量(0–60,默认 5)
onlyOnSuccess: true # 仅成功时关机(false = 完成即关,含出错)
行为细节
| 项 | 说明 |
|---|---|
| 触发时机 | 模式开启后,全部 root 会话从 running 回到 idle |
| 成功判定 | 本批次无 agent/error(仅 onlyOnSuccess: true 时) |
| 倒计时 | countdownSec 秒,GUI 横幅实时显示,可点「取消关机」 |
| 系统指令 | 倒计时开始时执行 shutdown /s /t <countdownSec + marginSec> |
| 取消方式 | GUI 取消按钮(退出模式)/ 倒计时内发新消息(保持模式) |
| 状态查询 | GET http://127.0.0.1:<port>/api/dsh-shutdown-after-task/state |
运行日志
$DSH_HOME/dsh-shutdown-after-task.log(挂载、武装、触发、取消全记录)。
工作原理
- 纯配置层 cordis 插件:
webServer.tapIndex把 UI 脚本注入每次 index 响应, 宿主 HTTP 路由提供状态与操作——无需 client bundle、无需构建 - 事件依据
agent/status/agent/error(见@deepseek-ai/dsh-agentruntime-types) - 卸载时自动注销路由与注入(fiber disposer)
已知限制
- 仅 Windows:执行
shutdown.exe;其他平台插件保持惰性并记日志 - 模式状态在内存中:DSH 重启后默认关闭,需重新点按钮
- root 会话 idle 但 inbox 有排队消息时也会触发(按「全部 root 空闲」判定)
- 页面需刷新一次才出现按钮(脚本随 index 响应注入)
卸载
dsh plugin --profile web remove dsh-shutdown-after-task
致谢与参考
- 事件挂接参考 yang040709/dsh-win-toast-notify(MIT)
- 插件结构参考 keyiadiannao/dsh-power-button(MIT)
License
MIT
GanyuanRan/Aegis
wecode-ai/Wegent
shengsheng90/DSH-taskboard
Nwflower/dsh-chat-import
shanliuling/skills-link
pengyue-polaron/deepseek-harness-genui
Jayden-X-L/forkprobe