从侧栏一键重启应用,升级后依然可用
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yishuiliufang/dsh-relaunch该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
- 读取本地文件index.js:77
if (!existsSync(launcher)) throw new Error(`hidden launcher is missing: ${launcher}`) - 读取本地文件index.js:78
if (!existsSync(worker)) throw new Error(`restart worker is missing: ${worker}`) - 执行外部命令来自配置/变量index.js:109
const child = spawn(WSCRIPT, [launcher, ...launchArgs], { detached: true, stdio: 'ignore', windowsHide: true }) - 发起网络请求client.js:123
const response = await fetch(ROUTE, { - 写入本地文件restart-harness.mjs:42
try { appendFileSync(LOG, line + '\r\n', 'utf8') } catch { } - 执行外部命令固定命令restart-harness.mjs:77
const ps = spawn('tasklist', ['/FI', `IMAGENAME eq ${name}`, '/FO', 'CSV', '/NH'], { - 执行外部命令固定命令restart-harness.mjs:119
const ps = spawn('taskkill', ['/PID', String(pid), '/F', '/T'], { - 执行外部命令来自配置/变量restart-harness.mjs:174
const child = spawn(EXE, [], {
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
从 DeepSeek Harness 自己的侧边栏重启它。一个 DSH 插件,应用更新后依然可用。Windows 平台。
README
由 DeepSeek 最新模型翻译生成dsh-relaunch
从 DeepSeek Harness 自己的侧边栏重启它。
🎯 这个应用没有重启入口。本插件补上一个 —— 而且与直接改应用自身文件不同,它在应用升级后依然存在。
仅支持 Windows。 重启依赖 Windows 提供的机制(wscript.exe 实现无窗口启动、taskkill 终止进程)。在 macOS 和 Linux 上侧栏入口仍会出现,但按下后会明确失败,而不是做出意料之外的事。
为什么需要它
DeepSeek Harness 没有提供重启自身的界面。顶栏有一个「应用」菜单,源码里也确实存在重启项 —— 但它被 development 标记挡住,正式版永远不会满足条件,因此点不到。
最直接的做法是给应用的 app.asar 打补丁。这在第一次升级前都有效:升级程序会把整个归档文件替换掉,补丁随之消失,按钮也就没了。何况直接修改别的程序的安装文件,本身就是一件要永远重做的事。
所以这个插件从外部解决问题。插件装在 DSH 的 profile 里,升级不会碰它;它在侧边栏加一个入口,点开面板里的按钮,Harness 就会被关闭并重新启动。
展开完整文档(README 剩余 1 节)
dsh-relaunch
从 DeepSeek Harness 自己的侧边栏重启它。
🎯 这个应用没有重启入口。本插件补上一个 —— 而且与直接改应用自身文件不同,它在应用升级后依然存在。
仅支持 Windows。 重启依赖 Windows 提供的机制(wscript.exe 实现无窗口启动、taskkill 终止进程)。在 macOS 和 Linux 上侧栏入口仍会出现,但按下后会明确失败,而不是做出意料之外的事。
为什么需要它
DeepSeek Harness 没有提供重启自身的界面。顶栏有一个「应用」菜单,源码里也确实存在重启项 —— 但它被 development 标记挡住,正式版永远不会满足条件,因此点不到。
最直接的做法是给应用的 app.asar 打补丁。这在第一次升级前都有效:升级程序会把整个归档文件替换掉,补丁随之消失,按钮也就没了。何况直接修改别的程序的安装文件,本身就是一件要永远重做的事。
所以这个插件从外部解决问题。插件装在 DSH 的 profile 里,升级不会碰它;它在侧边栏加一个入口,点开面板里的按钮,Harness 就会被关闭并重新启动。
特性
| ⚡ 一键重启 | 侧栏出现一个入口,和其他面板图标并排 |
| 🚫 不闪控制台窗口 | worker 全程无窗口启动,屏幕上不会闪任何东西 |
| 🚫 不弹确认框 | 重启不询问任何东西;面板上那个按钮本身就是确认 |
| 🔁 升级不丢 | 作为 profile 插件安装,不刻进应用本体 |
| 🔒 不会误触 | 重启绝不自动触发,必须按下按钮 |
| 🌐 双语 | 中文与英文,跟随应用的语言设置 |
界面
侧栏入口和自带面板并排,位于 WSL 下方:
DSH 侧栏中的重启入口
点开它即出现面板,面板中只有一个按钮,重启由该按钮执行。
安装
npm install @yishuiliufang/dsh-relaunch
然后加到 profile 的 package.json:
{
"dsh": {
"profile": {
"bundles": ["...", "@yishuiliufang/dsh-relaunch"]
}
}
}
本包自带 cordis.patch.yml,会把插件行插入到进程级组合里。需要重启一次 profile —— 加载器只在启动时读取组合,侧栏入口要等重启后才会出现。
使用
点左侧栏里的圆形箭头图标,面板中只有一个按钮。
按下后依次发生:
1. 向插件自己的 Host 路由发出请求。
2. 等一小会儿,让响应先回到浏览器。
3. 终止正在运行的 Harness 进程。
4. 重新启动应用,确认它真的活着,并把每一步写进日志。
所有正在运行的任务都会被打断。 这本就是重启的含义 —— DSH 会为会话持续做检查点,所以对话记录不会丢,但那一刻正在执行的任务会中断。
实现原理
重启无法在插件内部完成,因为插件就跑在被重启的那个进程里。如果交给进程内调用,进程会在响应途中把自己杀掉,而它启动的任何子进程也会一起死掉。所以这件事交给一个脱离进程树的 worker:
侧栏按钮 └─ POST /dsh-relaunch/restart (Host 半边,认证路由) └─ wscript.exe launch-hidden.vbs (GUI 子系统:不分配控制台) └─ DeepSeek Harness.exe (ELECTRON_RUN_AS_NODE=1:Node 模式,无窗口) └─ restart-harness.mjs (终止 → 等待 → 启动 → 验证)
两个细节是关键:
- 用 wscript.exe 启动,而不是 powershell.exe。 PowerShell 属于控制台子系统:启动它会分配一个控制台窗口并在屏幕上闪一下,而用来脱离进程树的 WMI 调用无法请求 CREATE_NO_WINDOW。Harness 的可执行文件属于 GUI 子系统,以 Node 模式运行它完全不产生窗口。
- worker 在重启应用前会剥掉 ELECTRON_RUN_AS_NODE。 正是这个变量让 worker 以 Node 而不是桌面应用的方式运行。它是进程级变量,会被继承 —— 而继承了它的 Electron 进程会退化成纯 Node 运行时,没有应用逻辑,一秒内自行退出,最后什么都不剩。test/host.mjs 专门钉住了这一点。
运行要求
- Windows。
- DSH desktop >= 0.1.7-rc.2(engines.dsh)。
本插件不声明任何 @deepseek-ai/* peer 依赖,也没有导入它们的值。这是刻意的:DSH 启动时会对每个 profile bundle 做兼容性检查,只要有一条 peer 范围覆盖不到当前版本,整个 bundle 会被跳过 —— cordis.patch.yml 不会生效,表现就是「装了但毫无反应」。不写 peer 范围,这种失败就不可能发生。
配置
无。插件没有可选项,路由和延迟都是固定的。
已知限制
- 仅 Windows,如上所述。其他系统上侧栏入口会出现,但重启会失败。
- 正在运行的任务会被打断。 这不是 bug,但值得再说一次。
- 需要重启一次 profile 才会出现。 在 Harness 运行时安装只会把包链接进 profile,侧栏要等应用重启后才显示入口。
- 同一时刻只应有一个重启在进行。 按钮在重启期间会自行禁用,但没有机制阻止另一个窗口也去按它。
项目结构
dsh-relaunch
├── index.js # Host 半边:注册重启路由 ├── client.js # 客户端半边:侧栏入口与面板 ├── restart-harness.mjs # 脱离进程树的 worker:终止、等待、重启、验证 ├── launch-hidden.vbs # 无窗口启动器(wscript → Node 模式) ├── restart-harness.ps1 # 过渡 shim,缘由见 CHANGELOG ├── locale/ # 插件列表元信息(en、zh) ├── icon.svg # 插件列表图标 ├── test/ │ ├── manifest.mjs # 包与清单接线(16 项) │ ├── host.mjs # 路由契约与重启环境(11 项) │ └── client.mjs # 客户端挂载、本地化、面板状态(17 项) ├── cordis.patch.yml # Bundle 层:插入插件行 ├── dsh-plugin.json # 插件清单 ├── CHANGELOG.md # 版本说明 └── package.json
测试
npm test
不需要 DSH host,也不需要任何依赖 —— 测试只导入 Node 内置模块。host.mjs 覆盖了上文那个环境变量泄漏问题,它是本项目里唯一一个「比不装插件更糟」的 bug。
更新记录
每个版本的改动见 CHANGELOG.md。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
yishuiliufang/dsh-relaunch
从侧栏一键重启应用,升级后依然可用
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 266,913已汉化DSH
71.8
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,848已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,171已汉化DSH
70.4