任务运行期间按住防休眠,空闲后再让系统睡
29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add hunan36/dsh-lock-run该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 37 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-jobs@deepseek-ai/dsh-session@deepseek-ai/dsh-subprocess@deepseek-ai/dsh-workspace@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 任务运行期间防休眠
- 空闲后恢复系统休眠
- 持有系统电源断言
锁屏防休眠,专为 DeepSeek Harness 打造:只在智能体或后台任务运行时才持有系统电源断言
README
由 DeepSeek 最新模型翻译生成dsh-lock-run
DeepSeek Harness 的「允许锁屏运行」插件:只在 Agent 任务或后台任务真正在跑的时候按住系统防休眠断言,全部空闲并过了宽限期后再让机器休眠。
设置 → 通用:
允许锁屏运行 [锁屏后保持唤醒 ▾] ← 点击
├ 关闭 ├ 熄屏后保持唤醒 ├ 锁屏后保持唤醒 ✓ └ 始终保持唤醒
它做什么
一行四档:
| 档位 | 含义 | macOS | Linux | Windows |
| 关闭 | 不干预,系统按自己的计划休眠 | — | — | — |
| 熄屏后保持唤醒 | 允许熄屏,阻止系统休眠 | caffeinate -i -s | systemd-inhibit --what=idle | ES_CONTINUOUS|ES_SYSTEM_REQUIRED |
| 锁屏后保持唤醒 | 同时阻止熄屏与系统休眠 | caffeinate -d -i -s | systemd-inhibit --what=idle:sleep | 追加 ES_DISPLAY_REQUIRED |
| 始终保持唤醒 | 不看任务状态,一直保持 | caffeinate -d -i -s | systemd-inhibit --what=idle:sleep | 追加 ES_DISPLAY_REQUIRED |
展开完整文档(README 剩余 1 节)
dsh-lock-run
DeepSeek Harness 的「允许锁屏运行」插件:只在 Agent 任务或后台任务真正在跑的时候按住系统防休眠断言,全部空闲并过了宽限期后再让机器休眠。
设置 → 通用:
允许锁屏运行 [锁屏后保持唤醒 ▾] ← 点击
├ 关闭 ├ 熄屏后保持唤醒 ├ 锁屏后保持唤醒 ✓ └ 始终保持唤醒
它做什么
一行四档:
| 档位 | 含义 | macOS | Linux | Windows |
| 关闭 | 不干预,系统按自己的计划休眠 | — | — | — |
| 熄屏后保持唤醒 | 允许熄屏,阻止系统休眠 | caffeinate -i -s | systemd-inhibit --what=idle | ES_CONTINUOUS|ES_SYSTEM_REQUIRED |
| 锁屏后保持唤醒 | 同时阻止熄屏与系统休眠 | caffeinate -d -i -s | systemd-inhibit --what=idle:sleep | 追加 ES_DISPLAY_REQUIRED |
| 始终保持唤醒 | 不看任务状态,一直保持 | caffeinate -d -i -s | systemd-inhibit --what=idle:sleep | 追加 ES_DISPLAY_REQUIRED |
always 与 keep-display 的底层调用相同,区别只在是否先读任务状态。
为什么锁屏会中断任务
锁屏本身不中断任务——本地进程照跑。真正杀掉任务的是锁屏之后系统进入 sleep:进程被挂起,与模型 API 的长连接超时断开,醒来后重试耗尽。
所以这个插件防的是 idle sleep,不是 lock。
安装
两种方式,任选其一。
方式一:插件页(GUI)
界面左侧「插件」→「添加插件」→「包名或地址」填:
https://github.com/hunan36/dsh-lock-run
点「安装」,装好后在「已安装」里启用(立即启用)。插件页会在它自己所在的 profile(通常是 web)里执行 pnpm add 并把本包写进 dsh.profile.bundles,两条都不用你手动做。带不带 .git 后缀都认。
装完刷新页面(⌘⇧R),浏览器才会取到新的 client bundle;如果该 profile 没有 patchReload: live,再重启一次 dsh web 让 host 半生效。
方式二:命令行(推荐用独立 profile)
1. 建一个独立 profile(不动现有 web profile)
dsh --profile lockrun-web --from-default-profile web
2. 加插件——git 地址,或本地检出的绝对路径
dsh plugin --profile lockrun-web add https://github.com/hunan36/dsh-lock-run
dsh plugin --profile lockrun-web add "$PWD"
3. 在插件页点「启用」,或直接改 bundle 列表: dsh.profile.bundles += "dsh-lock-run" 本包声明了 dsh.bundle.patch,启用后会从包自带的 cordis.patch.yml 挂载 LockRun 服务。
4. 启动
dsh --profile lockrun-web
本地检出也可以不用插件管理器,手动链接:
cd ~/.dsh/profiles/web
pnpm add link:/path/to/dsh-lock-run
然后把插件 cordis.patch.yml 里的 insert: 段追加到 profile 的 cordis.patch.yml。DSH 热监视该文件,追加后立即生效;浏览器半无需额外配置——dsh.client 声明在 package.json 里,模块加载器按包名加载。
没有 pnpm 的机器
dsh 的插件管理——插件页的「安装」和 dsh plugin …——底层调用 pnpm,机器上没有就直接失败:
dsh: pnpm was not found; install pnpm and make it available on PATH.
装一个(Node 自带 npm):
npm install -g pnpm # 最新的 10.x
或:corepack enable && corepack prepare pnpm@10 --activate
别让 Corepack 用它自己的默认值:裸跑 corepack enable 得到的是 pnpm 8.15.7,会一头撞进下面的 ERR_PNPM_ADDING_TO_ROOT。
完全不想装 pnpm 也可以——本插件自身不依赖它(没有运行时 dependencies):
- 用 Node 的 npm:cd ~/.dsh/profiles/ && npm install https://github.com/hunan36/dsh-lock-run
- 整个目录拷进去:把 dsh-lock-run 文件夹(含 lib/)直接放进 /node_modules/,适合离线或纯手工场景
两种方式都差一步:把 dsh-lock-run 写进该 profile package.json 的 dsh.profile.bundles,然后重启 dsh web。插件页和 dsh plugin add 会替你做这件事,手工安装不会——包躺在 node_modules 里也不会被加载。
安装报 ERR_PNPM_ADDING_TO_ROOT
dsh 的 profile 目录本身就是一个 pnpm workspace(pnpm-workspace.yaml 里 packages: [.]),pnpm 8 把那里的 pnpm add 当成「往 workspace 根目录加依赖」,直接拒绝。profile 没有 packageManager 字段时,Node 的 Corepack 会替它填一个(通常是 pnpm@8.15.7),于是安装在还没解析到本插件之前就死在这条检查上——这个失败与本包无关。
任选其一即可通过:
1. 走插件页(GUI):这条路执行的 pnpm add 传不了 -w,先往 profile 的 .npmrc 写一行,再在对话框里点「重试」,同一条命令就能在 pnpm 8 下成功:
echo 'ignore-workspace-root-check=true' >> ~/.dsh/profiles/lockrun-web/.npmrc
2. 命令行里把 -w 透传进去(dsh 会把额外参数转给 pnpm):
dsh plugin --profile lockrun-web add -w https://github.com/hunan36/dsh-lock-run.git
3. 把 profile 升到 pnpm 10(本插件实测所用的版本):在 profile 里跑 corepack use pnpm@10,或把 Corepack 写入的 packageManager 字段改成 pnpm@10.34.5。
注意第一次失败后 Corepack 已经把 packageManager: pnpm@8.15.7+sha512… 写进了该 profile 的 package.json,此后那里所有插件操作都用 pnpm 8——第 3 条才是治本的。
需要 Node ^22.19.0 || >=24.0.0 与 pnpm 10;本仓库用 packageManager: pnpm@10.34.5 锁定。
配置
写在 cordis.patch.yml 里:
| 字段 | 默认 | 说明 |
| mode | allow-display-sleep | 上面四档之一,设置行写入的就是它 |
| pollMs | 5000 | 活动轮询间隔 |
| graceMs | 60000 | 最后一个任务结束后继续持有的时长 |
设置行写的是 mode。写入落在 profile 的 patch 文件里,DSH 重新 apply 该 entry,host 半拿到新值——所以配置文件里的值始终是唯一事实来源。
机制
用子进程持有断言,不用 API 调用。 断言的生命周期等于辅助进程的生命周期:进程活着就按住,进程退出系统自动释放。这样 DSH 崩溃、被 kill、或断电重启,都不会留下一个「永不休眠」的机器。三个平台的实现都遵守这条规则:
- macOS:caffeinate 常驻
- Linux:systemd-inhibit ... sleep infinity 常驻
- Windows:PowerShell 调 SetThreadExecutionState(该 API 是线程级的),while ($true) { Start-Sleep 60 } 维持线程存活
任务判定走两条独立的路(src/activity.ts):
- ctx.jobs.list() 里 status 为 running / stopping 的后台任务
- workspace/session-activity waterfall 报告有活跃项的会话(Agent 正在 turn 中)
第二条是必须的:模型调用在飞、但没有任何 job 的场景,恰恰是最容易被休眠打断的。
轮询而非事件订阅。 每 pollMs 问一次「现在该不该按住」,然后让辅助进程朝答案靠拢。中断一次轮询不会让机器卡在没人要求的状态里——下一次轮询自然纠正。
宽限期。 全部空闲后不立刻释放,默认再等 graceMs。避免两个任务之间的空隙造成反复 spawn/terminate。
目录
src/
├── index.ts host 入口(默认导出 LockRun 服务) ├── service.ts LockRun:断言的持有者——轮询、起停、宽限期 ├── activity.ts 有没有活在跑:ctx.jobs + session-activity waterfall ├── power.ts 各平台辅助进程的 argv(caffeinate / systemd-inhibit / PowerShell) ├── contract.ts 两半共用的类型与常量 └── client/ ├── index.ts slots.inject('settings.general.item') + 词典注册 ├── LockRunRow.tsx 设置行:标题、描述、档位选择、写回 ├── locales.ts 中英文案(en 按 zh 的键生成类型,缺键就是编译错误) └── styles.ts 设置行需要的少量 CSS
src/.ts 是 host 半(Node),src/client/ 是浏览器半(React 18)。
构建
pnpm install
pnpm build # tsc -> lib/types/**,tsdown -> lib/index.js + lib/client.js
pnpm typecheck # 只跑 tsc --noEmit
lib/ 提交进了仓库(不在 .gitignore 里),且本包没有 prepare 脚本,所以从 git 地址安装不需要构建、不需要 devDependencies,也不需要往 pnpm 的 onlyBuiltDependencies 白名单里加条目:
- pnpm 10.34+ 会拦截 git 依赖的 prepare(ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED),而它要求的白名单条目是 dsh-lock-run@#——上游每提交一次这个字符串就过期;
- 直接带上构建产物,则 dsh plugin add 原样拿到 lib/。
改过 src/ 之后,跑 pnpm build 并把 lib/ 一起提交,否则所有从 git 安装的人拿到的都是上一次的构建。
产物契约:
- lib/index.js:Node ESM,cordis loader 直接 import。
- lib/client.js:CJS 工厂,外层是 window.__ModuleLoader__.load({ id: "dsh-lock-run", factory: (require) => … });react、react/jsx-runtime、@deepseek-ai/dsh-client-ui-primitives 保持 external,由页面的静态模块表提供。
兼容性
按 @deepseek-ai/dsh@0.1.7-rc.2 开发,devDependencies 锁在该版本线上。dsh 仍处于 developer preview,settings.general.item、ctx.locale.register、ctx.configForms 这类契约可能随版本漂移。升级 dsh 后重新构建,并确认 lib/client.js 第一行仍是 window.__ModuleLoader__.load({ id: "dsh-lock-run"。
局限
- 管不住合盖。macOS 合盖休眠需要外接显示器加电源,或改 pmset 配置。跑通宵任务别合盖。
- Linux 依赖 systemd-inhibit,精简镜像里可能没有;辅助进程起不来时错误写进 DSH 日志,不会静默。
- always 档是真·常开,选了就忘掉它的话机器不会自己休眠。
- DSH 处于 developer preview,官方包版本变动可能导致编译或加载失败。本项目按 0.1.7-rc.2 的接口编写。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hunan36/dsh-lock-run
任务运行期间按住防休眠,空闲后再让系统睡
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,826已汉化DSH
72.2
花束设计alchaincyf/huashu-design
一句话生成网页、原型、PPT 与信息图等可交付设计
★ 28,638已汉化DSH
71.7
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
这是你的仓库?认领条目