Codingendless/dsh-prevent-scd ↗★ 1
dsh-prevent-scd
DSH 防猝死小卫士 — a playful rest-reminder pet plugin for DeepSeek Harness: detects late-night or prolonged continuous human operation and blocks the UI with a cute nurse-cat until you agree to rest. 检测深夜或连续数小时有人工操作的 DSH 会话,放出宠物捣乱并提醒休息。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Codingendless/dsh-prevent-scd说明文档
阅读完整 README ↗dsh-prevent-scd — DSH 防猝死小卫士 🐱
English · 中文
dsh-prevent-scd is a playful rest-reminder pet plugin for the DeepSeek Harness (DSH) web UI — like ChatGPT's pet, it comes out and causes trouble to make you take a break.
It watches for traces of human operation in DSH sessions and nags you when:
- you have been working continuously for hours (default 3 h, any configurable), or
- it is late night (default 23:00–06:00, configurable) and you are still operating.
A cute hand-drawn nurse-cat (inline SVG, zero external assets) lives in the composer strip, turns worried when you approach the limit, then blocks the whole screen with a bouncing 「⛔ 休息!」 sign — intercepting Enter — until you choose “I'll rest now” (quiet for 2 h) or “just 15 more minutes” (snooze).
Highlights
- Host half (Node): listens to
session/eventrealuser/messages (plugin-injected / replay events do not count), maintains continuous-work timing. - Browser half (Web): persistent status line + full-screen mischief overlay, four SVG poses (napping / worried / blocking / relieved farewell), CSS animations (breathing, tail wag, shake, floating Zzz).
- Every threshold is configurable:
maxWorkMinutes,idleBreakMinutes(a no-op gap longer than this resets the clock, default 30 min), late-night window, cooldown, snooze. - State persists to
$DSH_HOME/prevent-scd/state.json, survivingdshrestarts. - No external assets, no network calls, works offline. 18 unit/integration/smoke tests.
Quick install
dsh plugin --profile web add -w "path/to/dsh-prevent-scd"
# restart the dsh web service to activate
Override config in the profile's cordis.patch.yml (hot-reloaded, no restart needed):
- id: prevent-scd
config:
maxWorkMinutes: 120
idleBreakMinutes: 20
lateNightStart: '23:00'
lateNightEnd: '06:00'