dsh-auto-shutdown
Manifest validWindows-only DeepSeek Harness plugin: a switch in Settings that powers off the PC after the conversation finishes, with a native countdown dialog that cancels the shutdown in one click.
dsh-auto-shutdown
中文说明 · Windows only · works with DeepSeek Harness ≥ 0.2.1
A DeepSeek Harness plugin that adds one switch in Settings → General: turn it on, and the computer shuts itself down when the next conversation finishes — with a native Windows dialog that can cancel the pending shutdown with a single click.
Install
dsh plugin add github:873360545/dsh-auto-shutdown
Or install a prebuilt tarball from a GitHub Release:
dsh plugin add https://github.com/873360545/dsh-auto-shutdown/releases/latest/download/dsh-auto-shutdown.tgz
Then restart the Harness (Host restart is enough) and look for the plugin entry
auto-shutdown in the profile.
Use
- Open Settings → General and find “Power off after the conversation finishes”.
- Turn it on.
- Finish a conversation: when that turn ends, the plugin
- resets the switch to off (it is a one-shot trigger, never re-armed by a reboot),
- schedules
shutdown.exe /s /t <delaySeconds>, - opens a desktop countdown dialog.
The dialog offers:
| Button | Result |
|---|---|
| Cancel shutdown | runs shutdown /a; the machine stays up |
| Keep shutdown / close / countdown reaching zero | the planned shutdown happens |
You can also cancel from any terminal with shutdown /a.
Configuration
All three fields are editable live from the Settings page and the Plugins page — no restart.
| Field | Default | Meaning |
|---|---|---|
enabled | false | The switch. It is set back to false right before a shutdown is scheduled, so the trigger fires exactly once. |
delaySeconds | 60 | Shutdown delay in seconds (5–86400). The dialog countdown mirrors it. |
popup | true | Whether to show the cancel dialog at all. |
Safety notes
- No administrator rights are required;
shutdown /s /tis available to the logged-in user. - Only a root conversation can trigger it: turns of subagents/teammates are ignored, and if another agent is still running the trigger waits for the next turn boundary.
DSH_AUTO_SHUTDOWN_DRYRUN=1in the Host environment logs the two commands instead of running them — useful for testing the wiring.DSH_AUTO_SHUTDOWN_POPUP_LOG=<file>makes the dialog append its user actions to a file.- The dialog only ever runs
shutdown /a; it never schedules anything.
How it works
- Host half (
lib/index.js): listens to theagent/turn-stoppingevent, filters to root agents, latches once, writesenabled = falsethrough the Settings service, then spawnsshutdown.exe. It is a validated Cordis plugin (Configwith volatile fields), so the switch is a real Settings document write. - Cancel dialog (
lib/popup.js+assets/notify.ps1): a detached Windows PowerShell 5.1 WinForms window with a countdown (always-on-top when ≤ 120 s). Its copy is passed as argv and the script itself stays ASCII-only, so a non-UTF-8 code page cannot mangle Chinese text. - Client half (
lib/client.js): registers onesettings.general.itemrow that renders the switch fromctx.configForms, i.e. from the Host's own configuration form.
Development
# schemastery is only resolvable through a junction when testing outside the profile
New-Item -ItemType Junction -Path node_modules\@deepseek-ai\schemastery `
-Target "C:\Users\<you>\AppData\Roaming\DSH\data\versions\<version>\node_modules\@deepseek-ai\schemastery"
$env:DSH_AUTO_SHUTDOWN_DRYRUN = '1'
node test-dry-run.mjs # host logic: filtering, disarm, argv, one-shot
node tests/popup-test.mjs # real window: self-close, cancel path, failure path, shutdown /a
Remove-Item -Recurse -Force node_modules
tests/popup-test.mjs uses -SimulateCancel -TestCancelCommand 'cmd /c exit 0' style test
switches, so it never touches a real pending shutdown.
Layout
| File | Role |
|---|---|
lib/index.js | Host plugin: event trigger, disarm, spawn shutdown.exe |
lib/popup.js | Cancel-dialog argv builder + launch (shared with the tests) |
lib/client.js | Settings row with the switch |
assets/notify.ps1 | Windows PowerShell/WinForms countdown dialog |
cordis.patch.yml | Inserts the Host entry auto-shutdown |
locale/*.json | Plugin list title/description |
License
MIT
中文说明
Windows 专用。为 DeepSeek Harness 增加一个设置开关:打开后,下一次对话完成时自动关机, 并在关机前弹出一个原生 Windows 对话框,点一下即可取消本次关机。
安装
dsh plugin add github:873360545/dsh-auto-shutdown
安装后重启 Harness(重启 Host 即可),插件条目为 auto-shutdown。
使用
- 设置 → 通用 → 找到「对话完成后自动关机」,打开开关。
- 正常结束一次对话,此时插件会:
- 把开关自动复位为关闭(只触发一次,重启后不会突然关机);
- 执行
shutdown.exe /s /t <延迟>; - 弹出倒计时对话框。
- 对话框里点「取消关机」→ 执行
shutdown /a,电脑保持开机;点「继续关机」/ 直接关窗 / 倒计时归零 → 按计划关机。也可以在终端随时执行shutdown /a取消。
配置项(均可在设置里实时修改,无需重启)
| 字段 | 默认值 | 说明 |
|---|---|---|
enabled | false | 开关。排定关机前会自动写回 false,保证只触发一次。 |
delaySeconds | 60 | 关机延迟秒数(5–86400),也是弹窗倒计时时长。 |
popup | true | 是否弹出取消窗口。 |
注意事项
- 不需要管理员权限。
- 只有根会话能触发:子 Agent / 团队成员回合会被忽略;若还有其它 Agent 在运行,会推迟到下一次回合边界。
- 设
DSH_AUTO_SHUTDOWN_DRYRUN=1可只打日志、不真的关机;设DSH_AUTO_SHUTDOWN_POPUP_LOG=<文件>可记录弹窗里的用户操作,便于排障。 - 弹窗只会执行
shutdown /a,不会自己排定任何关机。
许可
MIT
Comments
Loading…
Similar plugins
by keyiadiannao
Self-contained power control for DeepSeek Harness: sidebar power button with upward restart/shutdown menu, Windows-shutdown-style overlay, own restart & shutdown engine (no dependency on other plugins
★ 9
↓ 38/wk
MIT
TypeScript
Oct 7, 2026
dsh plugin --profile web add dsh-power-buttonby virggle
Shut down Windows automatically after DeepSeek Harness tasks complete — a floating arm button plus a cancellable countdown banner (shutdown /a), zero runtime dependencies.
★ 2
↓ 46/wk
MIT
JavaScript
Aug 28, 2026
dsh plugin --profile web add dsh-shutdown-after-taskby ChuxueTeam
DeepSeek Harness 插件 · 需要你本人回到电脑前时弹窗并出声喊你,提示音一直响到你亲手关掉。 | DSH plugin: pops a card and rings on loop until you dismiss it.
★ 0
MIT
JavaScript
Oct 5, 2026
dsh plugin --profile web add dsh-callerby SanYe-SanJiu
Windows-only process control for the harness: a sidebar button that shuts DSH down through the host's own graceful exit path, an app-window / normal-tab switch on the Plugins card that rewrites the de
★ 0
MIT
JavaScript
Sep 24, 2026
dsh plugin --profile web add dsh-power-switchby huasheng33991
One-click start/stop button pinned to the window bottom-right corner: restarts DeepSeek Harness in place via a detached helper that relaunches the exact boot invocation (loopback same-origin guarded),
★ 2
↓ 414/wk
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-power-buttonby watericetangcw
A Cordis plugin for DeepSeek Harness that suspends the entire conversation state and resumes it after restart.
★ 3
MIT
JavaScript
Aug 17, 2026
dsh plugin --profile web add dsh-session-pause