dsh-restart-button

DSH PLUGIN会话与消息

仓库 CZY1326/dsh-restart-button

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

dsh-restart-button 是 CZY1326 维护的 会话与消息 类 DSH 可安装插件, 仓库为 CZY1326/dsh-restart-button,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

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

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

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add @czy1326/dsh-restart-button
  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 查看包信息

能做什么

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

上游标签

cordisdeepseek-harnessdesktop-appdshdsh-pluginrestart

验证等级与安全审查

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

选择建议

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

值得选的地方

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

先想清楚的地方

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

更适合

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

不太适合

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

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-restart-button当前 L5 · 运行验证通过 低风险 0 未标注 有
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 未标注 无

仓库档案

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

README 全文

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

@czy1326/dsh-restart-button

给 DeepSeek Harness 桌面端加一个「结束进程 → 立刻拉起」的重启入口:聊天标题栏右上角的圆形箭头,
可选再往前一步,用一个小补丁把「重启」加进托盘菜单。

A restart control for the DeepSeek Harness desktop app: a circular arrow in the conversation
header that stops the process and starts it again, plus an optional patch that also adds a
"restart" entry to the tray menu.

按钮位于聊天标题栏右上角、「打开方式」选择器(文件管理器 / git bash)左边。

它做了什么 / What it does

顶栏那个圆形箭头注册在 conversation.session.header.actions 槽位,渲染在「打开方式」
(文件管理器 / git bash 选择器)左边,尺寸和旁边的小按钮一致(28×28、15px 图标)。

点击后按顺序尝试两条通道:

顺序 通道 前置条件 行为
1 dsh-app://app/__dsh-restart 打了下面的可选补丁 Electron 自己 app.relaunch(),优雅重启
2 POST /dsh-restart-button/restart 无(纯插件即可) 宿主插件派生一个脱离的 shell:等 2 秒 → 按进程映像名结束应用 → 轮询等进程真的消失 → 重新拉起 exe

第 2 条是保险,保证「没打补丁也能用」;它不是优雅退出,正在跑的任务会被直接掐断
(会话与任务记录都已落盘,重开即可续上)。

helper 的三条安全措施:启动前先确认 exe 还在(不在就只记日志、什么都不杀,避免"杀完起不来")、
杀完轮询 tasklist 等映像真正消失再拉起(最多等约 30 秒)、每一步都写日志到
%TEMP%\dsh-restart-button.log。

The header button works out of the box. The patch only upgrades path 2 to a graceful
app.relaunch() and adds the tray entry.

安装 / Install

# 推荐:从 npm 装(发布后免构建,也不用 clone 仓库)
dsh plugin add @czy1326/dsh-restart-button

# 或者直接从 GitHub 装
dsh plugin add git+https://github.com/CZY1326/dsh-restart-button.git

# GitHub 简写(npm/pnpm 语义)
dsh plugin add github:CZY1326/dsh-restart-button

装完重启一次应用(或刷新页面)即可看到按钮。

> 仓库里提交的就是可直接运行的 JS(lib/index.js、lib/client.js),package.json 没有
> prepare/postinstall 脚本,所以安装时不需要构建,也不需要给 pnpm 开 allowBuilds。
> 如果你的网络把 github.com 改写到了镜像/代理而推送拉取失败,把地址写成
> git+https://github.com:443/CZY1326/dsh-restart-button.git 可绕过 URL 重写。

> 桌面端的 profile 由 Electron 应用独占管理,装插件前请完全退出应用,否则 profile 会被占用。

可选:打补丁,把「重启」加进托盘 / Optional tray patch

补丁直接改打包进 app.asar 的 lib/main.js(Electron 主进程),做两件事:

  1. 托盘菜单在「打开」「退出」之间插入「重启 DeepSeek Harness」(与另外两项同样的格式);
  2. dsh-app://app/__dsh-restart 路由 → app.relaunch(); quitWithoutConfirmation();。
# 关闭应用后执行;先加 --dry-run 看它要改什么
node scripts/patch-asar.cjs --dry-run
node scripts/patch-asar.cjs

脚本会自己找到 app.asar(常见安装目录、Programs\*deepseek*,以及正在运行的应用 exe 所在目录);
找不到时把 /dsh-restart-button/ping 返回的 asar 传给 --asar 即可。

  • 等长原地补丁:asar 是一个带 JSON 索引的大文件,长度一变后面所有条目都要整体搬家。
    所以补丁把插入的字节数从旁边的文档注释里原样抠回来(注释改写到完全相同的宽度),
    文件长度、索引偏移、其他条目全部不变。
  • 版本相关:脚本内置对 lib/main.js 的 sha256 指纹,只认它写过的那几个版本。
    版本对不上就拒绝执行(不会写坏文件),此时顶栏按钮照常可用。
  • 可还原:原始字节写在 .dsh-restart-button.bak,清单在同名 .json 里。
node scripts/restore-asar.cjs --check   # 看状态:original / patched / unknown
node scripts/restore-asar.cjs           # 还原(应用需先退出)

打了补丁后,应用升级会覆盖 app.asar,托盘那项会消失,需要重新打补丁。

当前支持的版本 / Supported builds

应用版本 状态
0.2.1-rc.2 ✅ 已内置指纹
0.2.1-rc.3 ✅ 已内置指纹(lib/main.js 与 rc.2 只差版本号字符串)

其他版本:脚本会打印 sha256,提 issue 附上即可加进来。

> 自定义安装目录(例如装在 D:\Tools\...)时脚本的自动探测找不到 app.asar,
> 把 /dsh-restart-button/ping 返回的 asar 传给 --asar 即可。

卸载 / Uninstall

dsh plugin remove @czy1326/dsh-restart-button
node scripts/restore-asar.cjs   # 只在你打过补丁时需要

实现说明 / How it works

dsh-restart-button/
├── lib/index.js       宿主半边:注册 /ping 与 /restart 两条路由,派生脱离的重启 shell
├── lib/client.js      界面半边:顶栏圆形箭头(slot: conversation.session.header.actions)
├── cordis.patch.yml   bundle 补丁:把这个包插进 profile 的插件列表
└── scripts/           可选的 asar 补丁与还原
  • 宿主侧不依赖 Electron API,所以「纯插件」也能重启:spawn(cmd.exe, ["/c", helper.cmd], { detached: true, stdio: "ignore" }),
    helper 先 taskkill /F /IM "",轮询到映像消失后 start "" "";它自己的映像名是 cmd.exe,不会被自己杀掉。
    (注意 cmd.exe 不吃 Node 的 MSVCRT 引号转义:给 spawn 传单个脚本路径而不是带引号的内联命令。)
  • /restart 只接受 POST 且要求 x-dsh-restart: 1 头,避免爬虫或别的标签页误触发。
  • 按钮在非桌面壳(普通浏览器里的 http://127.0.0.1:)不渲染:location.protocol !== "dsh-app:" 时直接返回。

自检 / Self-test

# 宿主是否认出桌面端、重启目标是谁、app.asar 在哪
curl http://127.0.0.1:/dsh-restart-button/ping
# → {"ok":true,"desktop":true,"exe":"…\\DeepSeek Harness.exe","resources":"…","asar":"…\\resources\\app.asar"}

# 只跑「派生 helper」这一段,不杀任何进程,结果写进 %TEMP%\dsh-restart-button-probe.txt
curl -X POST -H "x-dsh-restart: 1" "http://127.0.0.1:/dsh-restart-button/restart?probe=1"

第二条能写出一行 probe exe=… image=…,就说明宿主能正常派生脱离的 helper;
真正点按钮时只是把它换成 taskkill + start。

已知限制 / Limits

  • 托盘那一项只能靠补丁:托盘菜单在 Electron 主进程里,插件运行在宿主进程,够不到。
    长期正解是给上游提 PR / issue(DeepSeek Harness 桌面端)。
  • 纯插件模式是硬退出,不是优雅退出。
  • 补丁是版本相关的等长改写,不是通用补丁器。

License

MIT

常见问题

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

在 DSH 里执行 `dsh plugin --profile web add @czy1326/dsh-restart-button` 即可。

dsh-restart-button 的验证等级是什么意思?

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

dsh-restart-button 安全吗?

低风险。

dsh-restart-button 装之前要先确认什么?

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

dsh-restart-button 用的是什么许可证?

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

这条记录的数据可靠吗?

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

同名或近似条目

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

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 星

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