从侧边栏一键退出并重新启动桌面应用
29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add KiiiiiG/dsh-harness-restart该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 34 处,展示前 28 条)
- 读取本地文件index.js:30
return JSON.parse(readFileSync(join(PACKAGE_ROOT, 'package.json'), 'utf8')).version || '0.0.0' - 写入本地文件index.js:107
mkdirSync(directory, { recursive: true }) - 写入本地文件index.js:127
writeFileSync(file, body, 'utf8') - 写入本地文件index.js:404
writeFileSync(planPath, `${JSON.stringify(plan, null, 2)}\n`, 'utf8') - 执行外部命令来自配置/变量index.js:464
const child = spawn(process.execPath, [HELPER_PATH, planPath], { - 读取本地文件index.js:494
helper: { path: HELPER_PATH, exists: existsSync(HELPER_PATH) }, - 读取本地文件index.js:506
if (info.desktop && existsSync(info.execPath)) { - 发起网络请求index.js:524
const response = await fetch(`${origin}${ROUTE_BASE}/status`, { - 发起网络请求index.js:547
const response = await fetch(`${origin}${ROUTE_BASE}/restart?${query}`, { - 读取本地文件index.js:608
if (info.execPath === undefined || !existsSync(info.execPath)) return - 读取本地文件index.js:612
if (existsSync(okMarker)) return - 删除本地文件index.js:617
rmSync(marker, { force: true }) - 写入本地文件index.js:618
writeFileSync(targetScript, 'setTimeout(() => {}, 60000)\n', 'utf8') - 写入本地文件index.js:619
writeFileSync( - 执行外部命令来自配置/变量index.js:632
target = spawn(process.execPath, [targetScript], { - 写入本地文件index.js:656
writeFileSync(built.planPath, `${JSON.stringify(built.plan, null, 2)}\n`, 'utf8') - 读取本地文件index.js:668
ok: existsSync(marker) && !targetAlive, - 执行外部命令来自配置/变量index.js:694
const result = spawnSync(process.execPath, ['--check', file], { - 发起网络请求client.js:297
const response = await fetch(`${BASE}/restart?force=${force ? '1' : '0'}`, { - 发起网络请求client.js:344
const response = await fetch(`${BASE}/status`, { cache: 'no-store' }) - 写入本地文件helper.mjs:47
mkdirSync(dirname(plan.logFile), { recursive: true }) - 写入本地文件helper.mjs:48
appendFileSync(plan.logFile, `${new Date().toISOString()} [helper:${process.pid}] ${line}\n`) - 执行外部命令固定命令helper.mjs:59
const result = spawnSync('taskkill', ['/F', '/PID', String(pid)], { - 执行外部命令来自配置/变量helper.mjs:99
const child = spawn(plan.launch.exe, plan.launch.args, { - 读取本地文件helper.mjs:117
plan = JSON.parse(readFileSync(planFile, 'utf8')) - 写入本地文件helper.mjs:146
writeFileSync(`${planFile}.failed`, `${String(error && error.stack ? error.stack : error)}\n`) - 读取本地文件helper.mjs:175
plan = JSON.parse(readFileSync(planFile, 'utf8')) - 执行外部命令来自配置/变量helper.mjs:179
const child = spawn(process.execPath, [SELF, '--detached', planFile], {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
一键重启 DeepSeek Harness:侧边栏入口,外加一个进程外辅助程序,退出并重新启动桌面应用。
README
由 DeepSeek 最新模型翻译生成dsh-harness-restart — 一键重启 DeepSeek Harness
在左侧栏的全局面板列表(Plugins、Market、Schedules 那一列)里加一个「重启」入口:点一下,整个 DeepSeek Harness(桌面端是完整的 Electron 应用,CLI 是当前 dsh 进程)会退出并自动重新启动。
重启这件事不能由被重启的进程自己完成,所以插件只负责准备计划,真正「杀进程 + 重新拉起」的是一个进程外助手 helper.mjs:
1. 插件先启动助手的第一段(stage 1),它立刻再启动一个 detached 的第二段(stage 2)后退出;
2. stage 2 等待约 1.5 秒(让按钮的 HTTP 响应先回到页面),按计划终止应用进程;
3. 等应用进程与 Host 进程都退出后,用原来的可执行文件和参数重新启动;
4. 全过程写入 $DSH_HOME/dsh-harness-restart/logs/,失败时留下证据。
展开完整文档(README 剩余 1 节)
dsh-harness-restart — 一键重启 DeepSeek Harness 在左侧栏的全局面板列表(Plugins、Market、Schedules 那一列)里加一个「重启」入口:点一下,整个 DeepSeek Harness(桌面端是完整的 Electron 应用,CLI 是当前 dsh 进程)会退出并自动重新启动。 重启这件事不能由被重启的进程自己完成,所以插件只负责准备计划,真正「杀进程 + 重新拉起」的是一个进程外助手 helper.mjs: 1. 插件先启动助手的第一段(stage 1),它立刻再启动一个 detached 的第二段(stage 2)后退出; 2. stage 2 等待约 1.5 秒(让按钮的 HTTP 响应先回到页面),按计划终止应用进程; 3. 等应用进程与 Host 进程都退出后,用原来的可执行文件和参数重新启动; 4. 全过程写入 $DSH_HOME/dsh-harness-restart/logs/,失败时留下证据。 安装 这个目录本身就是一个 DSH bundle(dsh.bundle.patch 指向 cordis.patch.yml),没有构建步骤,也不需要 npm install: - 插件管理器:在 DSH 设置 → 插件里用「安装」选择这个目录,或调用 plugin_manager 的 install_bundle,target 指向目录的绝对路径; - CLI:dsh plugin --profile <profile> add file:<这个目录的绝对路径>。 装好后需要重启一次 DSH(这次可以手动重启;之后就可以用侧边栏里的「重启」了)。 用法 安装后刷新页面,左侧栏的面板列表里会出现一个圆形箭头 +「重启」的入口: - 点一下会打开重启面板并立即发起重启,没有任务时不需要第二次确认; - 有任务或后台作业在运行时:面板会变成确认页,点「停止任务并重启」才执行,可以「返回会话」取消; - 重启期间面板显示“正在重启 DeepSeek Harness…”,随后窗口自动关闭并重新打开; - 如果请求失败,面板会显示原因,并提供「重试」与「返回会话」。 如果应用没有自己回来 插件会在 $DSH_HOME/dsh-harness-restart/ 下生成双击即可启动的回退脚本: - start-deepseek-harness.cmd(Windows) - start-deepseek-harness.bat(同上) 日志在 $DSH_HOME/dsh-harness-restart/logs/,最近一次重启计划在 plans/。 自检 插件激活后会做一次自检(每个版本一次): - 检查 index.js、helper.mjs、client.js 的语法; - 检查控制接口能否返回状态; - 用一次真实的 终止 → 等待 → 重新启动流程拉起一个无害的 Node 进程(不碰应用本身); - 用 POST /dsh-harness-restart/restart?dry=1(只生成计划、不执行)验证按钮实际发出的请求:合法桌面请求返回 200 与正确的 exe / killPids;缺 x-dsh-restart 头、跨站请求、异源 Origin 分别返回 403;有任务运行时 force=0 返回 409(确认卡片的数据来源)。 结果写入 dsh-harness-restart/preflight.json 的 selfTest 与 probes 字段,以及 self-test-<版本>.ok。dry=1 永远不会启动助手,可以随时用来做无副作用诊断。 配置 在 profile 的 cordis.patch.yml 里按行 id 覆盖: - id: dsh-harness-restart config: delayMs: 1500 # 响应页面后等多久才终止应用(毫秒) graceMs: 12000 # 等应用与 Host 自行退出的最长时间(毫秒),超时强制终止 selfTest: true # 是否运行一次性的进程外自检 allowRemote: false # 是否允许非回环地址调用控制接口(默认只允许本机) 安全边界 - 控制接口只接受回环 / 桌面壳同源的请求,并要求 x-dsh-restart: 1 请求头; - 跨站请求(Sec-Fetch-Site: cross-site 或不同源的 Origin)一律拒绝; - 重启默认会检查正在运行的智能体与后台作业,不会静默打断它们; - 重启计划($DSH_HOME/dsh-harness-restart/plans/*.json)会记录启动时的完整环境变量(原样重启所需),保存在 $DSH_HOME 下,可能包含令牌等敏感值——不要把这个目录提交到仓库或分享出去。 兼容性 - 桌面端:process.versions.electron 存在时,重启应用主进程(DeepSeek Harness.exe)。 - CLI:普通 Node 宿主下,用相同的 process.execPath 与 process.argv 重新启动当前进程。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
KiiiiiG/dsh-harness-restart
从侧边栏一键退出并重新启动桌面应用
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 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,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目