🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

插件热管理器 leonardoxr/dsh-plugin-manager

DeepSeek Harness
leonardoxr72 天前有提交已提供中文文档扫描:含敏感能力

在网页端启停插件并热装新包,无需重启进程

28.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add leonardoxr/dsh-plugin-manager
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
数据截至 2026/09/25·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 72 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 16 处,展示前 14 条)
  • 读取本地文件
    src/index.ts:173
    const info = await lstat(filename)
  • 读取本地文件
    src/index.ts:176
    const value = JSON.parse(await readFile(filename, 'utf8')) as unknown
  • 读取本地文件
    src/index.ts:197
    const existing = await lstat(filename).catch(error => {
  • 读取本地文件
    src/index.ts:208
    const existing = await lstat(filename).catch(error => {
  • 删除本地文件
    src/index.ts:214
    await unlink(filename)
  • 读取本地文件
    src/package-install.ts:60
    const canonical = await realpath(filename)
  • 读取本地文件
    src/package-install.ts:61
    const info = await stat(canonical)
  • 读取本地文件
    src/package-install.ts:76
    const source = await readFile(filename, 'utf8')
  • 读取本地文件
    src/package-install.ts:209
    const text = await readFile(filename, 'utf8')
  • 读取本地文件
    src/package-install.ts:274
    const packageDir = await realpath(resolve(profileDir, 'node_modules', ...packageName.split('/')))
  • 读取本地文件
    src/package-install.ts:288
    const patchInfo = await lstat(lexicalPatchPath)
  • 读取本地文件
    src/patch-store.ts:255
    const info = await lstat(filename)
  • 读取本地文件
    src/patch-store.ts:270
    text = await readFile(filename, 'utf8')
  • 读取本地文件
    src/patch-store.ts:289
    await stat(dirname(filename)).catch(error => { throw new ManagedBlockError(`The web profile directory is unavailable: ${String(error)}`) })
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-settings-plugins@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-host-apiproxy@deepseek-ai/dsh-subprocess
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 网页端启停插件
  • 热装新包免重启
  • 仅限回环地址访问

仅限回环地址的安全 Web UI,用来管理 DeepSeek Harness 配置档插件

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-manager 一个独立的 DeepSeek Harness 插件,用于添加 设置 → 插件 → 管理插件。 它可以: - 启用或禁用当前 Web 配置文件中的可变条目,包括随附条目; - 移除自身的显式覆盖,使条目恢复为组合配置文件的默认值; - 安装并热挂载安全的单条目 DSH bundle,而无需重启 DSH Web 进程; - 在一个有清晰标记的托管块之外,逐字节保留 $DSH_HOME/profiles/web/cordis.patch.yml 的其余内容。 安全模型 所有状态和变更都使用插件自有的 Connection RPC 通道,该通道以 authority: loopback 注册。服务器会强制执行这一边界;通过 LAN 或 Tailscale 主机名打开 Web UI 时,只会显示只读访问消息,而不会暴露生命周期或包操作。 管理器拒绝禁用自身或 Web 传输/UI/实时配置文件重载主干。它还会拒绝有歧义的重复补丁 ID,以及当前 Web 配置文件树之外的条目。 热安装器仅接受可带可选版本或 dist-tag 的 npm registry 包名。
展开完整文档(README 剩余 1 节)
dsh-plugin-manager

一个独立的 DeepSeek Harness 插件,用于添加 设置 → 插件 → 管理插件。

它可以:

- 启用或禁用当前 Web 配置文件中的可变条目,包括随附条目;
- 移除自身的显式覆盖,使条目恢复为组合配置文件的默认值;
- 安装并热挂载安全的单条目 DSH bundle,而无需重启 DSH Web 进程;
- 在一个有清晰标记的托管块之外,逐字节保留 $DSH_HOME/profiles/web/cordis.patch.yml 的其余内容。

安全模型

所有状态和变更都使用插件自有的 Connection RPC 通道,该通道以 authority: loopback 注册。服务器会强制执行这一边界;通过 LAN 或 Tailscale 主机名打开 Web UI 时,只会显示只读访问消息,而不会暴露生命周期或包操作。

管理器拒绝禁用自身或 Web 传输/UI/实时配置文件重载主干。它还会拒绝有歧义的重复补丁 ID,以及当前 Web 配置文件树之外的条目。

热安装器仅接受可带可选版本或 dist-tag 的 npm registry 包名。它会解析一个具体的 pnpm 可执行文件(包括常见的直接可执行文件和 Node 入口点 Windows shim),通过 DSH 的公共子进程服务以无 shell 方式生成该进程,依赖该服务提供的已清除凭据的子进程环境,禁用包生命周期脚本,限制捕获的输出,并在取消或超时时执行有界的进程树终止和验证。

运行时信任边界: 禁用生命周期脚本并不会对已安装的插件进行沙箱隔离。安装成功后,该包会立即以与 DSH 相同的用户权限加载到 DSH 主机中。请仅安装来自经过审查、值得信赖的发布者的确切版本。Loopback authority 限制的是网络可达性,而不是调用者身份验证;本地同用户进程、可变的包管理器可执行文件、支持 SSRF 的浏览器内容,以及忽略共享 DSH 锁的配置文件写入者,仍处于本地信任边界之内。

热重载行为

现有条目的开关状态会持久化到 Web 配置文件补丁中,随后通过公共 Loader Entry.update() API 立即应用,因此不依赖文件系统监视器的行为。UI 会在报告成功前验证实际的 Loader 状态。移除管理器覆盖仅会被报告为持久化操作,因为无法仅从托管层安全推断出由此产生的组合默认值;若要在同一会话中移除覆盖,请先设置所需的实时状态。

安装路径有意不同于 dsh plugin add,后者的 bundle 列表仅在进程启动时读取:

1. 在 pnpm 启动前,获取管理器事务锁并持久化非链接的预写日志;
2. 拒绝配置文件中已存在的包——热版本更新需要使用官方 CLI 并重启,因为未变化的 Loader 行无法证明模块已重新导入;
3. 在禁用生命周期脚本的情况下,将新的 registry 包安装为可选依赖项,并在日志中记录 pnpm 保存的确切 spec;
4. 验证其 dsh.bundle.patch 恰好是一个独立的直接插入项,不含受保护或冲突的 ID、保留的管理器标记或链接的补丁文件;
5. 在执行包代码前,将经过验证的插入项持久化到管理器自有的配置文件补丁中,使每个已启动或待处理的条目都有一条重启后仍保留的安全记录;
6. 通过公共的内存中 Loader group API 创建它,并仅在固定时限内等待生命周期稳定。活动条目会立即报告成功;无法稳定的条目仍将以可见的托管及待处理状态保留,而不会无限期阻塞管理器 HMR 拆卸。

公共 Loader 生命周期等待限制为 15 秒(失败时还会进行一次有界的清理尝试);超时的开关操作会保留其请求的持久化覆盖,而超时的安装会保留其托管补丁,确保不会有正在执行的条目失去跟踪。管理器绝不会针对其他 CLI 可能正在编辑的配置文件包文件运行破坏性的自动回滚。如果 pnpm 更改了配置文件后失败、收到取消、验证失败或无法提交补丁,日志会继续显示在 UI 中。仅当保存的依赖 spec 仍与记录的 pnpm 后状态匹配时,重试完全相同的 spec 才会前滚;任何有歧义或被外部更改的状态都会被拒绝,且必须使用官方 CLI 解决。HMR 处置会在旧插件代退出前中止并排空进行中的包工作。

新挂载包的浏览器 bundle 会实时进入 Host graph,但已经打开的页面无法通过 DSH 当前的公共 API 纳入新的 graph row。刷新页面一次即可加载新的浏览器扩展——无需重启 DSH 进程。

复杂或多行 bundle 会被拒绝,而不是仅挂载其中一部分。请通过官方 CLI 安装它们,并在方便时重启 DSH Web。

安装

将预构建的 GitHub release tarball 安装到 Web 配置文件中:

dsh plugin --profile web add https://github.com/leonardoxr/dsh-plugin-manager/releases/download/v0.2.0/leonardoxr-dsh-plugin-manager-0.2.0.tgz

要从源代码构建相同的包:

pnpm install
pnpm run check
pnpm pack

该包遵循官方 DeepSeek Harness 插件与 bundle 指南:它声明了函数形式的插件、公共服务依赖项、dsh.bundle 补丁、用于 Git 安装的自包含 prepare 构建,以及明确的生命周期清理。

也支持源代码安装,但 pnpm 10 要求明确授权运行包的 prepare 构建。固定经过审查的 tag,并在重试前严格按照 DSH/pnpm 输出的 allowBuilds 修复说明操作:

dsh plugin --profile web add github:leonardoxr/dsh-plugin-manager#v0.2.0

$DSH_HOME/profiles/web/pnpm-workspace.yaml
allowBuilds:
'@leonardoxr/dsh-plugin-manager': true

建议优先使用预构建的 release tarball,因为它不需要安装时构建权限。

管理器本身需要初始重启一次 DSH Web,因为配置文件 bundle 的添加仅在启动时生效。此后,常规开关操作和受支持的全新直接安装会使用公共的内存中 Loader 生命周期 API 以及持久化的配置文件补丁;无需再次重启进程。

托管文件

生命周期覆盖和经过验证的直接挂载补丁会写入 $DSH_HOME/profiles/web/cordis.patch.yml。成功的包安装还会通过 pnpm 更新 Web 配置文件的 package.json、pnpm-lock.yaml 和 node_modules。

补丁更改使用乐观 SHA-256 revisions、withFileLock、writeFileAtomic,并在获取锁后及提交前执行取消检查。管理器标记块之外的现有注释和用户编写的行会被保留。包事务会在 pnpm 和补丁提交期间持有管理器 generation lock,并使用持久的前滚日志,而不是整个文件的快照或不安全的 remove-after-compare 回滚。

开发

pnpm run typecheck
pnpm run build
pnpm run test
pnpm run pack:check
预览分享卡片长什么样 ↓leonardoxr/dsh-plugin-manager
分享 · DeepSeek Harness Hub
leonardoxr/dsh-plugin-manager

在网页端启停插件并热装新包,无需重启进程

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部