跳过主要内容
W

DeepSeek-chan-sleep-shutdown

weiplwei/deepseek-chan-sleep-shutdown

仅 Windows:右下角一枚深夜月亮主题的悬浮按钮(会打瞌睡的 DeepSeek-chan 鲸鱼娘形象,清醒/睡觉两套图),点一下即开启——当所有 root 会话全部空闲后自动关机,再点一下关闭。按钮可拖动(位置记在 localStorage),会自动避让其他插件的角落弹窗,前端重渲染把它冲掉也会自动挂回。批次结束后进入 60 秒可取消倒计时(可设 10–600 秒),按钮上显示剩余秒数并弹出同款横幅:点「取消关机」执行 shutdown /a 并退出模式,倒计时期间任何新会话启动也会中止。按钮右键可在「仅成功时关机」与「无论成败都关机」之间切换,选择持久化在 $DSH_HOME/deepseek-chan-sleep-shutdown.json,DSH 重启后保持。零运行时依赖。

安装

dsh plugin --profile web add github:weiplwei/deepseek-chan-sleep-shutdown

README

deepseek-chan-sleep-shutdown

任务完成后自动关机 —— 深夜月亮主题的 DeepSeek Harness 插件(零依赖,Windows)。

跑长任务(批量迁移、模型生成、过夜任务)时,点一下右下角的鲸鱼娘按钮, 让 DeepSeek-chan 陪你等到任务结束、再安静睡去:任务成功完成后电脑自动关机, 倒计时期间可一键取消。

English

形象与设计

  • 鲸鱼娘按钮:圆角胶囊按钮内嵌吉祥物图片(assets/mascot-awake.webp 清醒 / assets/mascot-sleep.webp 睡觉)
    • 空闲:清醒鲸鱼娘 + 文本「任务完成后关机」
    • 开启:睡觉鲸鱼娘 + 「已开启·任务完成后关机」
  • 深夜月亮配色:底色 #1a1c2e、辅色 #8b8ff5、月牙点缀 #ffd166;玻璃拟态 + 柔光晕
  • 开启动效:呼吸光晕 CSS 动画 + 月牙微光 + 「Zzz」上浮微动效
  • 倒计时:进度环画在按钮外圈(conic-gradient),剩余秒数实时显示在按钮上
  • 图片缺失优雅降级:assets 图片加载失败(onerror)时按钮自动退化为纯文本胶囊,功能不受影响

功能

  • 可拖动:拖到任意位置,位置自动记住(localStorage 持久化,视口内钳制)
  • 自动避让:其他插件的角落弹窗与按钮重叠时,按钮自动让开,弹窗消失后归位
  • 可取消倒计时:任务完成 → 60 秒倒计时横幅(深夜配色卡片,实时剩余秒数) +「取消关机」按钮(POST /cancel → shutdown /a);横幅跟随按钮位置
  • 新任务打断:倒计时期间任一会话开始新任务 → 自动撤消关机,模式保持开启
  • 取消即退出:点「取消关机」= 取消本次关机 + 退出模式
  • 仅成功时关机:本批次有会话出错则不关机,横幅提示原因,模式保持开启
  • 右键设置:关机条件:按钮右键弹出「关机条件」设置(深夜配色卡片)——「仅成功时关机」 /「无论成败都关机」二选一,点击即生效并持久化到 $DSH_HOME/deepseek-chan-sleep-shutdown.json,DSH 重启后保持
  • 多会话判定:全部 root 会话空闲才算任务完成(子代理并入其 root 统计)
  • SPA 自愈:每 500ms 检查按钮/横幅是否被前端重渲染移除并自动挂回

安装

npm(发布后):

dsh plugin --profile web add deepseek-chan-sleep-shutdown

或从 GitHub:

dsh plugin --profile web add github:weiplwei/DeepSeek-chan-sleep-shutdown

重启 DSH 后生效:右下角出现鲸鱼娘按钮。若按钮未出现,刷新页面(Ctrl+R)。

也支持本地路径 / tarball 安装:dsh plugin --profile web add ./deepseek-chan-sleep-shutdown

使用

  1. 点右下角「任务完成后关机」→ 鲸鱼娘入睡、按钮呼吸发光(已开启);按钮可拖到任意位置
  2. 正常跑任务
  3. 全部会话空闲且无错误 → 按钮外圈出现进度环,按钮上显示剩余秒数,上方弹出倒计时横幅
  4. 倒计时内点「取消关机」→ 本次关机取消、模式退出;不点则到点关机

配置

编辑 profile 的 cordis.patch.yml(或设置 > 插件配置):

- id: deepseek-chan-sleep-shutdown
  config:
    countdownSec: 60      # 倒计时秒数(10–600,默认 60)
    marginSec: 5          # 系统 shutdown /t 额外余量(0–60,默认 5)
    onlyOnSuccess: true   # 仅成功时关机(false = 完成即关,含出错)

行为细节

项说明
触发时机模式开启后,全部 root 会话从 running 回到 idle
成功判定本批次无 agent/error(仅 onlyOnSuccess: true 时)
倒计时countdownSec 秒,按钮外圈进度环 + 横幅实时显示,可点「取消关机」
系统指令倒计时开始时执行 shutdown /s /t <countdownSec + marginSec>
取消方式GUI 取消按钮(退出模式)/ 倒计时内发新消息(保持模式)
状态查询GET http://127.0.0.1:<port>/api/deepseek-chan-sleep-shutdown/state
图片路由GET /api/deepseek-chan-sleep-shutdown/img/sleep.webp 与 /img/awake.webp(长缓存,缺失时 404)

运行日志

$DSH_HOME/deepseek-chan-sleep-shutdown.log(挂载、武装、触发、取消全记录)。

本地验证(test/harness,无需真实 DSH)

node test/harness/server.js
# 输出监听地址后用浏览器打开,即可看到鲸鱼娘按钮的完整 UI(mock 状态)

详见 test/harness/README.md。

已知限制

  • 仅 Windows:执行 shutdown.exe;其他平台插件保持惰性并记日志
  • 模式状态在内存中:DSH 重启后默认关闭,需重新点按钮
  • 页面需刷新一次才出现按钮(脚本随 index 响应注入)
  • 鲸鱼娘图片缺失时按钮退化为纯文本(不报错、不影响功能)

卸载

dsh plugin --profile web remove deepseek-chan-sleep-shutdown

致谢与参考

License

MIT

相关插件