改完插件代码点一下即可生效,无需重启
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add daimingxing/dsh-reload该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 16 处,展示前 16 条)
- 写入本地文件index.js:102
await mkdir(dir, { recursive: true }) - 写入本地文件index.js:103
await writeFile( - 发起网络请求client.js:310
const response = await fetch(apiUrl(path), { - 读取本地文件lib/restart.js:64
if (typeof exe !== 'string' || exe === '' || !existsSync(exe)) { - 读取本地文件lib/restart.js:68
accessSync(exe, constants.X_OK) - 读取本地文件lib/restart.js:96
if (existsSync(bundled)) return { command: bundled, env: {} } - 执行外部命令来自配置/变量lib/restart.js:149
const child = spawn(command, [script, configPath], { - 执行外部命令来自配置/变量lib/restart.js:181
child = spawn(exe, args, { detached: true, stdio: 'ignore', windowsHide: false, env }) - 读取本地文件lib/state.js:70
const raw = await readFile(statePath(ctx), 'utf8') - 写入本地文件lib/state.js:94
await mkdir(dir, { recursive: true }) - 写入本地文件lib/state.js:95
await writeFile(temp, `${JSON.stringify({ ...state, version: STATE_VERSION }, null, 2)}\n`, 'utf8') - 写入本地文件lib/state.js:96
await rename(temp, target) - 删除本地文件lib/state.js:99
await unlink(temp) - 写入本地文件lib/restarter.mjs:55
appendFileSync(logPath, `[${new Date().toISOString()}] ${message}\n`, 'utf8') - 读取本地文件lib/restarter.mjs:213
config = JSON.parse(readFileSync(configPath, 'utf8')) - 写入本地文件lib/restarter.mjs:228
writeFileSync(config.donePath, `${new Date().toISOString()}\n`, 'utf8')
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-reload
改完插件代码,点一下就让改动生效 —— 不用关掉再打开 DSH。
快速开始 · 怎么使用 · 常见问题
它解决什么问题
DSH 不会自动重新加载你改过的插件代码 —— 本插件补上这个开关。
开发 DSH 插件时,改完代码、重新构建,界面却还是旧的。DSH 内置的 HMR 只监听 profile 配置,link: 开发包的源码改动不在它的监听范围内,结果就是「改完 → 必须重启 DSH → 才能看到效果」。
一次两次还好,调试一下午就是几十次重启。dsh-reload 把这件事变成一个按钮:
- ⚡ 点一下,改动就生效。 重新加载文件有改动的插件,不重启进程、不中断会话,聊天记录和正在做的事都还在。
- 🔄 需要时也能重启。 有些改动(改 package.json、换依赖)必须整机重启,本插件也能一键完成,关掉后自动重新打开。
- 🛡️ 会话或后台任务在跑就不让重启。 它们跑在 Host 里,重启必然中断,所以直接拒绝并列出是哪些,不会让你误丢工作。终端不算拦截条件 —— 无头终端、卡死的终端都很常见,硬拦会让你卡在「关不掉也重启不了」的死角,只能强杀进程;所以只把终端列出来提醒,你确认就放行。
- 🤖 智能体也能触发。 内置 dsh_hot_reload 工具,改完代码让 AI 自己重载,不用你动手。
展开完整文档(README 剩余 1 节)
dsh-reload 改完插件代码,点一下就让改动生效 —— 不用关掉再打开 DSH。 快速开始 · 怎么使用 · 常见问题 它解决什么问题 DSH 不会自动重新加载你改过的插件代码 —— 本插件补上这个开关。 开发 DSH 插件时,改完代码、重新构建,界面却还是旧的。DSH 内置的 HMR 只监听 profile 配置,link: 开发包的源码改动不在它的监听范围内,结果就是「改完 → 必须重启 DSH → 才能看到效果」。 一次两次还好,调试一下午就是几十次重启。dsh-reload 把这件事变成一个按钮: - ⚡ 点一下,改动就生效。 重新加载文件有改动的插件,不重启进程、不中断会话,聊天记录和正在做的事都还在。 - 🔄 需要时也能重启。 有些改动(改 package.json、换依赖)必须整机重启,本插件也能一键完成,关掉后自动重新打开。 - 🛡️ 会话或后台任务在跑就不让重启。 它们跑在 Host 里,重启必然中断,所以直接拒绝并列出是哪些,不会让你误丢工作。终端不算拦截条件 —— 无头终端、卡死的终端都很常见,硬拦会让你卡在「关不掉也重启不了」的死角,只能强杀进程;所以只把终端列出来提醒,你确认就放行。 - 🤖 智能体也能触发。 内置 dsh_hot_reload 工具,改完代码让 AI 自己重载,不用你动手。 🎯 三条设计原则 这个插件刻意做得很薄。三类决定贯穿全部代码: 1. 走官方路径,不生造分支 重载直接调用宿主的 hmr.reconcileProfile() —— 就是 DSH 自己重载插件用的那条路径。 有些同类插件会自己清 ESM/CJS 模块缓存、手动 dispose fiber、再重新 apply。那套序列很脆弱:顺序错一步,Loader 就会把插件写成 disabled: true 并持久化到你的配置里。本插件不重写这套逻辑,因此也不会以新的方式出错。 不需要「指定插件」这个参数。 该重载什么是文件系统的事实,不是模型需要判断的事 —— 宿主比对文件身份,把所有陈旧的模块一次带上,并沿 import 图把共享了改动依赖的插件一起刷新。让调用方点名,反而多出一个「猜错名字、漏掉半个依赖树」的失败模式。 所以:宿主怎么保证自己的 HMR 可靠,本插件就怎么可靠。 2. 不污染模型上下文 插件对 AI 的影响只有一个工具: | 项 | 本插件 | | 系统提示注入(systemPrompt.section / context) | 0 | | agent 上下文注入(agent.inject) | 0 | | 注册的 skill | 0 | | 工具数量 | 1 | | 工具描述长度 | 349 字符 / 约 97 token | | 工具参数 | 无(JSON Schema 为空对象) | 同类插件常带 action / target / reason 等参数。本插件一个都不要 —— 该重载什么由文件系统决定,不需要模型判断,也就不存在「模型猜错插件名」这个失败模式。 你的对话上下文里,这个插件只占一个工具位。 3. 默认不占界面 装好后界面上什么都不会多出来。侧边栏按钮、右下角悬浮按钮默认关闭,需要时自己去插件页打开。 设置面板顶栏的两个按钮是唯一常驻入口 —— 因为它们是「随时能点到」的兜底,且不占正文空间。 📸 界面 插件自己的设置页,两个按钮加两个开关: 插件设置页:热重载与重启客户端按钮,以及侧边栏按钮、右下角悬浮按钮的显示开关 打开设置面板时,顶栏右侧始终有这两个按钮,任何设置页都能点到: 设置面板顶栏右侧的热重载与重启客户端按钮 插件默认不往界面上加任何东西,需要侧边栏按钮或右下角悬浮按钮时,自己去插件页打开开关。 🚀 快速开始 1. 安装 桌面端:打开侧栏的 插件 页面,在安装入口输入下面的包名: dsh-reload 命令行: dsh plugin --profile desktop add dsh-reload 装好后刷新一次页面,入口才会出现(客户端模块图在页面加载时构建)。 2. 打开插件页 设置 → 插件 → 热重载(dsh-reload)。这里有两个按钮,以及两个可选的入口开关。 3. 改代码,点热重载 改完插件源码、重新构建后,点「热重载」即可。看到「已热重载 N 个插件」就生效了。 💬 怎么使用 三个入口,按习惯选 | 入口 | 位置 | 默认 | | 侧边栏底部 | 设置按钮上方,展开时带文字 | 关 | | 右下角悬浮按钮 | 32px 圆形图标,任何界面都能点 | 关 | | 侧边栏「更多」菜单 | 展开后最下面一行「刷新插件」 | 常驻 | 设置面板顶栏的两个按钮始终可用,不需要开关。 让智能体自己重载 改完代码直接说: 改完了,帮我热重载一下插件。 模型会调用 dsh_hot_reload。你也可以在 AGENTS.md 里约定「每次改完插件代码都要热重载」,让它成为默认动作。 什么时候必须重启客户端 | 情况 | 热重载够吗 | | 改了插件源码并重新构建 | ✅ 够 | | 改了 package.json(名称、依赖、dsh.client 配置) | ❌ 必须重启 | | 换了依赖、动了 pnpm-lock.yaml | ❌ 必须重启 | | 插件加载失败、变成 failed 状态 | ✅ 修好文件后再热重载一次即可 | 热重载返回的 pending / restartReason 非空时,就说明有模块必须重启才能生效。 ❓ 常见问题 点了热重载,但界面没变? 按顺序检查: 1. 重新构建了吗? 热重载只加载磁盘上的产出文件,源码改了但没构建,加载的还是旧代码。 2. 改的是 package.json 吗? 那不会被检测到,需要重启客户端。 3. 看返回的提示。 如果显示「没有检测到改动」,说明磁盘上没有插件文件变化 —— 这不是错误,通常是还没构建,或者刚才已经重载过了。 热重载会丢东西吗? 不会丢会话和任务。 它不碰进程,聊天记录、正在跑的任务、打开的终端都保留。 但被重载插件的内存状态会清空(包括本插件自己),因为插件是重新加载的。 为什么侧边栏那个按钮不见了? Windows 上侧边栏一旦折叠,宿主会把整个底部区域隐藏 —— 这是 DSH 的行为,插件无法绕过。此时请用右下角悬浮按钮或设置面板顶栏的按钮。 重启时提示「有任务正在运行」? 这是故意的。重启会中断所有任务,所以插件先检查再执行。等任务结束,或先把它们停掉。 这个判断在 Host 侧做两次(点击前 + 执行前),防止检查与执行之间刚好有新任务启动。 和 npm 上的 dsh-hot-reload 有什么区别? | | dsh-hot-reload | dsh-reload | | 触发条件 | 插件版本升级(监听 lockfile) | 显式触发:点按钮 / 调工具 | | 目标场景 | 升级已安装的插件 | 开发插件:改源码、重新构建 | | 是否含整机重启 | 否 | 是 | 两者解决的问题不重叠,可以同时安装。 ⚙️ 进阶 已知限制与边界 - 热重载会清空被重载插件的内存状态(包括本插件自己)。 - 替换版本加载失败时,旧代码不再运行,插件变为 failed,直到文件修好后再热重载一次。 - 只改 package.json 不会被检测 —— 这是 DSH 的官方限制。 - 重启客户端会中断所有任务。新实例拉起后会做存活探测并重试最多 3 次;仍失败时日志在 $DSH_HOME/dsh-reload/restart.log,需手动双击图标。 - 重启仅支持 Windows 桌面客户端;dsh web 场景下按钮会禁用并说明原因。 - 刚装好或更新插件后,需要刷新一次页面才能看到入口。 开发与验证 源码即产物,没有构建步骤。改完直接热重载即可生效。 工具 schema 与实现的字段一致性(用 Host 自己的断言函数) DSH_RUNTIME_DIR="<dsh 包根目录>" ELECTRON_RUN_AS_NODE=1 "<DeepSeek Harness.exe>" --expose-internals scripts/check-schema.mjs 槽位注册写法(含 keyed 槽位的 key 必须等于包名) node scripts/check-slot-components.mjs 组件能否真实渲染(抓渲染期异常) node scripts/render-probe.mjs 声明与路径检查 node scripts/inspect-graph.mjs 重启链路(存活探测 / 环境剥离 / 重试;用假主进程,不影响正在运行的 DSH) node scripts/restarter-drill.mjs 设计文档在 docs/,先从 docs/README.md 看起。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
daimingxing/dsh-reload
改完插件代码点一下即可生效,无需重启
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7
这是你的仓库?认领条目