dsh-power-switch

DSH PLUGIN会话与消息

仓库 hongdougao111/dsh-power-switch

会话与消息 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

右上角一枚电源开关:一键真的重启 / 关掉 DSH 进程,不是刷新页面那种假动作。

一句话选型结论

按资料字段整理

dsh-power-switch 是会话与消息类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 2 复刻 0 · 未关闭 issue 0
最近更新 2026-10-26 创建于 2026-10-26
README 12.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:hongdougao111/dsh-power-switch#v0.1.4
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注

上游标签

deepseek-harnessdshdsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在会话与消息场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-power-switch当前 L5 · 运行验证通过 低风险 2 未标注 有
dsh-desktop L3 · 安装规范通过 低风险 3.0 万 未标注 无
openpets L4 · 沙盒安装通过 低风险 1,274 未标注 有
deeptide L4 · 沙盒安装通过 低风险 1,104 0.1.1-rc.2 有
jingyun-dsh L3 · 安装规范通过 低风险 1,004 未标注 有
study-mate 未做沙盒验证 未标注 856 未标注 无

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方hongdougao111仓库 dsh-power-switch · 默认分支 master
分类会话与消息session
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue2 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-26 · 2026-10-26最后推送 2026-10-26
本站收录2026-10-30首次进入本站目录的时间

README 全文

12.0 KB
作者原文,中文版优先;只做安全转义,不改内容

⚡ dsh-power-switch · 一键电源开关 🐋

> 你是不是也受够了? 😤
> 装个插件——重启。卸个插件——重启。改行配置——还是重启。
> 一晚上下来插件没装几个,任务管理器倒是熟得像自己家 🏠
>
> 本鲸鱼小姐也是受害者 🐋💢 每次都要在一堆 node.exe 里大海捞针,
> 捞错了把别的东西干掉,捞对了又忘了当初那行命令是啥……
> 于是气不过,自己写了一个 🔨
>
> 右上角多一枚电源键 🔘
> 点一下,DSH 进程真的没了 💀;再点一下,它真的又爬起来了 🧟
>
> 不是 location.reload() 🙅 不是 router.refresh() 🙅 更不是「转两圈假装重启好了」那种糊弄学 🎭
> 是这个进程真的从任务管理器里消失,然后一个新的它站起来 💪
>
> 而且不弹那个吓人的「宿主停止」框了 🎉 —— 这版专门把这个坑填了,下面有交代。


😩 这玩意儿到底救你于什么水火

装插件 🧩、改配置 ⚙️、调 patch 🩹 之后,DSH 十次有八次来一句:「重启一下才生效哦~」

然后你就开始了这套祖传行为艺术 🎪:

  1. 🔍 翻到任务管理器
  2. 🎲 在一堆 node.exe 里猜哪个是 DSH(纯玄学)
  3. 💥 猜错一次,把别的东西干掉了
  4. 😌 猜对一次,关掉
  5. 🧠 忘了刚才的命令行是什么,凭记忆重敲
  6. 🚫 端口被占,报错
  7. 🌐 重开一个终端,dsh web,端口又变了,浏览器地址失效

一套下来十五分钟没了,插件还没生效 🙃

最气的是什么? 你只是想卸载一个插件而已 😑
结果为了「让卸载生效」,你得先把自己这个正在用的 DSH 干掉。
……等一下,那我卸载完拿什么重新打开它?🤡

dsh-power-switch 就是为这一刻写的 ✍️
把这一整套压缩成两次点击 👆👆(第二次是防误触,它有点礼貌,不是啰嗦)


👀 长什么样

会话头部右侧多一枚小电源图标 ⚡,不抢位置、不遮最小化 ➖ / 隐藏 👻 / 关闭 ❌ 那组窗口按钮(这点我盯得很死,谁也别想挤到它们)

点开是个小菜单,里面只有两个按钮,干干净净:

按钮 干了什么
⚡ 重启 结束整个 DSH(含桌面主进程),随后自动拉起一个全新的 🔁
⏻ 关闭 结束整个 DSH,不自动拉起,安静地走 🌙

两个按钮都要点两次 👆👆:
第一次是「你真的想好了吗 🤨」,第二次才是「好,动手 🔨」


🎉 关于那个崩溃弹窗:这版把它干掉了

老版本会弹这个:

Error: dsh desktop host stopped: ...

新版本不会了 ✅ 因为这次杀的是桌面主进程,不是宿主子进程。

道理很直白 🧾:

  • 那个弹窗是桌面外壳(主进程)弹的 —— 它盯着自己的宿主子进程,发现没了就报一次 📢
  • 那就别让它有机会报啊 —— 把主进程一起送走 🔪
  • 主进程都没了,谁来弹框?🤷‍♀️

剩下的收尾由宿主自己完成:
主进程一死,宿主那边的 IPC 通道就断了,宿主监听着 disconnect,
于是它自己走一遍正常关闭流程(会话日志好好落盘 📝),然后安静退出 😴

> 🔑 一句话记住:以前杀的是「儿子」,爸爸在旁边看着当然要哭;
> 现在直接把「爸爸」请走,全家一起安静退场 🤐

🐛 试错记录(免得你也踩一遍)

方案 结果
只杀宿主子进程(老版本) ⚠️ 功能没问题,但主进程必然报一次「宿主停止」
退出码设 0 想骗过它 ❌ fail() 的两个分支都触发,文案从「exited」变「stopped」而已
想设 stopping 标志 ❌ 那是主进程私有状态,插件够不到
找 IPC 白名单走正门 ❌ 只认 ready / shutdown-complete / platform-session / fatal,没有重启入口
杀主进程(不带 /T) ✅ 本次方案:没人能弹窗,宿主自己优雅退出
杀主进程带 /T ❌ 会连宿主一起强杀,宿主来不及落盘,等于拔电源 🔌

那个 /T(连同子进程)看着更彻底,其实是坑 —— 不带它才是对的 🙅


🛠️ 它是怎么工作的(技术党进)

⚡ 重启

四段接力,没有任何魔法:

  1. 自省 🪞:从 process.pid / process.ppid / process.execPath 现场问出
    「我是谁、我爸是谁、我是被哪个 exe 启动的」,不猜 profile 🙅 不写死 路径 🙅
  2. 接力 🏃:拉起一个 detached 的 helper。它不在任何进程树里,所以父进程死光它也活着
  3. 送走 🔪:helper 等一小会儿(先把 HTTP 响应吐完),然后 taskkill /PID <主进程> /F
    —— 注意没有 /T,只杀主进程本身
  4. 重生 🧟:主进程没了 → 宿主因 IPC 断开自行优雅退出 → helper 等旧实例彻底走干净、端口空出来
    → 用原 exe 拉起新实例 → 确认它真的画出了窗口 → 收拾上一轮残留 → helper 自己退出

> 为什么必须等干净?因为 Electron 有单实例锁(requestSingleInstanceLock)🔒
> 旧主进程没退利索就 spawn 新的,新实例会发现自己不是「老大」,直接 quit() 自杀 ——
> 我实测过,369 毫秒就没了 💀 快到你以为它起来了,其实连窗口都没开。
> 所以 helper 会重试最多 5 次,每次间隔 3 秒 —— 手慢不要紧,起来就行 😌

环境变量要清干净 🧹:拉起前会把 ELECTRON_RUN_AS_NODE 和 DSH_DESKTOP_NODE_EXECUTABLE 删掉。
不删的话新实例会以 node 模式启动 —— 进程是起来了,但没有窗口,等于白起 🙃

👀 「进程还在」不等于「起来了」

这是这一版最较真的地方。

老版本判活:spawn 完等 5 秒,进程还在就算成功。
问题是 —— 进程在、窗口没画出来,这种半死不活的状态它照样报「重启完成」🙃
你对着一个没有窗口的任务管理器发呆,那才叫真尴尬 😑

现在查 MainWindowHandle,真的见到窗口才算数,最多等 30 秒,等不到就杀掉重来。

还有个细节 🧐:MainWindowHandle 有时查不到 —— PowerShell 没跟上、查询超时、权限抖动。
这种状态我记为 unknown,它不等于失败:
unknown 就继续等,超时了只要进程还活着,就当它起来了。

> 宁可少杀一次,也别因为探测不到就把好好的实例打掉 🔪

🧹 顺带收拾残留进程

新实例窗口出来之后,会清掉上一轮剩下的进程(GPU / 渲染器 / 插件后台)。

这里我自己先踩了一脚 😵
一开始按「孤儿」定义清理 —— 结果 helper 本身也是用 DeepSeek Harness.exe 跑起来的,
启动时间还更早,第一刀就把自己砍了 🔪
日志里 restart complete 后面干干净净,reap: 一行都没有,我才反应过来。
(所以你现在在老日志里看不到那行,是这么没的,不是我偷懒 😤)

现在判据是启动时间:新实例整棵树都晚于新主进程,按时间切绝对安全;
并且显式排除 process.pid(自己)。

> 这也算 best effort 🤷‍♀️ 渲染器偶尔粘着不走,不保证 100% 清空,但正常情况下够用了。

⏻ 关闭

同一条路,只是最后不 spawn。主进程走人 → 宿主优雅退出 → 结束 🌙

🖥️ 前端为什么不用刷新

旧页面跟着旧进程一起消失了,刷新它没有意义 🙅
点完按钮就显示「正在关闭 / 正在重启」,然后等页面自己断线。
新实例起来是个新的地址、新的页面,从桌面应用或启动器进去就行。

如果十几秒后页面还活着 —— 说明那一下没生效,它会老实告诉你「没反应,再点一次?」🤔

🔒 安全边界

  • 只接受同源 POST,跨站一律 403
  • 端口只在本机 loopback 监听
  • 除重启 / 关闭外没有任何其他动作

📦 安装

插件市场里搜 电源 🔌 / power ⚡,或者:

dsh plugin add dsh-power-switch

装完重启一次 DSH(对,就用它自己 😏 第一次得手动,之后就不用受这罪了)


🛡️ 安全边界

  • ✅ 只接受同源 POST,跨站请求一律 403 🚫
  • ✅ 端口只在本机 loopback 监听,没往外暴露一丁点
  • ✅ 不做「顺便帮你跑个命令」这种扩展 —— 它就两个动作:重启 🔁、关闭 🌙
  • ✅ 关闭按钮不会删你的会话、配置或插件,只是让进程退出(数据都在,放心)
  • ✅ 双击确认,防手滑 🙌

🧩 兼容

  • 🖥️ DSH Web 与 Desktop 双端
  • 🪟 Desktop 下:杀主进程 → 宿主优雅退出 → 用 DeepSeek Harness.exe 拉起新实例
  • 🐧 普通 dsh web / node bin.js 启动的宿主:没有 Electron 主进程,
    就直接结束宿主自身(这种形态本来也不会弹框)
  • 📊 两种形态都由 GET /dsh-power-switch/api 的 facts / restartable 字段如实自报(它不会撒谎)

❓ 常见问题

Q:重启后还弹「宿主停止」吗? 😰

不弹了 🎉 这版把弹框的源头(主进程)一起请走了,详见上面那节。
如果你还看到弹框,八成是装的是老版本 —— 升级一下就好。

Q:那我现在怎么知道重启成功了? 🤔

页面会自己断掉,然后你从桌面应用重新进 —— 看到界面就是成功了 ✅
没成功的话 helper 会弹一个原生提示框告诉你「应用没起来,请手动启动」,不会闷声装死 🤐

Q:为什么要杀主进程,不能温和一点吗? 🥺

试过了,温和不了 🙇 主进程对「宿主消失」这件事的反应是写死的:
不管退出码是 0 还是非 0,都会报一次。插件跑在子进程里,碰不到它的私有状态。
所以换个思路 —— 既然它一定要报,那就让它没机会报 😤

Q:那我为什么还要用这个插件? 🤔

因为它就在会话头部,两下点击,不用翻菜单;
而且它同时提供「关闭」 —— 现有同类插件几乎都只做重启。

Q:重启后端口变了,我原来的浏览器地址打不开了? 🤔

正常 🙂 DSH 会自己挑端口。重新从桌面应用或启动器进入即可。

Q:能批量重启多个 DSH 吗? 🤖

不能,它只管当前这一个进程。想开多个请用多 profile,别指望它变集群管理器 😅

Q:关闭之后数据会丢吗? 💾

不会 🙅 会话、配置、插件全都在磁盘上躺着。关闭只是让进程退出,不是删库跑路 🔥
而且宿主走的是自己的优雅关闭流程,日志会好好落盘 📝


📣 更新公告

每次改了什么、修了哪个坑,都记在 CHANGELOG.md 里 🗒️


🔬 自检

curl http://127.0.0.1:/dsh-power-switch/api

返回里能看到当前 pid 🆔、port 🔌、platform 🖥️、restartable ✅

它不会撒谎 —— 如果 restartable: false,说明它没找到 Electron 主进程(比如跑在纯 Web 形态下),
这时候它会拒绝重启而不是瞎猜 🙅‍♂️(宁可不动,也不乱动,这点很讲究)


📄 License

MIT。真的杀了,别怪它 🔪😌


> 🐋 鲸鱼小姐的补充说明
>
> 这插件是我自己写的,因为我自己也烦透了每次都要去任务管理器里玩「猜猜哪个 node 是 DSH」🎲
> 现在它只要两下点击 👆👆 剩下的时间可以拿去干饭 🍚
>
> 那个崩溃弹窗我盯了好几轮才搞定 😤 一开始只杀宿主,弹框照旧;
> 后来发现弹框是主进程弹的 —— 那就把主进程也送走呗,简单粗暴但有效 💥
>
> 中间那几版试错(包括那个差点把宿主强杀的 /T)我都记在上面了,省得你也踩一遍 🩹
>
> 主人的机器,主人说了算 🔘 按吧,坏了算我的(啊不,坏了算它自己的 😤)

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-power-switch 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:hongdougao111/dsh-power-switch#v0.1.4` 即可。

dsh-power-switch 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-power-switch 安全吗?

低风险。

dsh-power-switch 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-power-switch 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

hongdougao111 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。