前言¶
在 DeepSeek Harness(DSH)中运行长任务(如批量迁移、模型生成、过夜任务)时,经常会忘记关机。dsh-shutdown-after-task 插件提供了一种通过右下角按钮触发自动关机的方法,解决了这一痛点。该插件由用户 virggle 维护,是 DeepSeek Harness 生态中的一个零依赖、纯配置层插件。
核心功能¶
- 右下角浮动文本按钮(可拖动):点击切换「任务完成后关机」模式(默认关闭)。按钮位置可拖动,位置自动保存。
- 自动避让:当其他插件的角落弹窗(如价格提示)与按钮重叠时,按钮会自动避让,弹窗消失后归位。
- 可取消倒计时:任务成功完成后,弹出 60 秒倒计时横幅(实时显示剩余秒数)和「取消关机」按钮。倒计时期间可通过 GUI 取消。
- 新任务打断:倒计时期间任一会话开始新任务,会自动撤消关机指令,但模式保持开启。
- 取消即退出:点击「取消关机」按钮,不仅取消本次关机,还会退出该模式(下个任务不再触发)。
- 仅成功时关机:配置为仅成功时关机;若本批次有会话出错,则不关机并提示原因。
- 多会话判定:以 root 会话为统计单位,全部 root 会话空闲才算任务完成。
安装与启用¶
通过官方目录安装:
dsh plugin --profile web add dsh-shutdown-after-task
安装后重启 DSH。若右下角未出现按钮,刷新页面(Ctrl+R)即可。
配置¶
编辑 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 会话空闲且无错误时,按钮上方会弹出倒计时横幅。
- 倒计时内点击「取消关机」按钮,本次关机取消,模式退出。
工作原理与细节¶
- 触发时机:模式开启后,全部 root 会话从
running状态回到idle状态。 - 成功判定:本批次无
agent/error(仅在onlyOnSuccess: true时生效)。 - 系统指令:倒计时开始时执行
shutdown /s /t <countdownSec + marginSec>。 - 日志路径:运行日志记录在
$DSH_HOME/dsh-shutdown-after-task.log。 - 状态查询:可通过
GET http://127.0.0.1:<port>/api/dsh-shutdown-after-task/state查询当前状态。
注意事项¶
- 仅支持 Windows:插件执行
shutdown.exe,其他平台插件会保持惰性并记日志。 - 内存状态:模式状态保存在内存中,DSH 重启后默认关闭,需重新点击按钮开启。
- inbox 队列判定:root 会话空闲但 inbox 有排队消息时也会触发关机(按「全部 root 空闲」判定)。
- 页面刷新:脚本随 index 响应注入,安装后需刷新页面才能看到按钮。
总结¶
dsh-shutdown-after-task 适合需要在过夜任务或长时间批量任务结束后自动关闭电脑的场景。它通过 GUI 提供了直观的控制,同时支持配置项以适应不同的关机策略。更多细节可参考:GitHub 仓库。