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

插件更新管家 longyi-0x0/dsh-plugin-manager

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

检测并更新已安装的 GitHub 插件,不占用原生页签

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · market
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件
查看扫描证据(共 6 处,展示前 6 条)
  • 读取本地文件
    lib/engine.js:98
    return await readFile(join(profileDir, 'pnpm-lock.yaml'), 'utf8')
  • 读取本地文件
    lib/settings.js:88
    text = await readFile(path, 'utf8')
  • 写入本地文件
    lib/settings.js:110
    if (typeof profileDir === 'string' && profileDir !== '') await mkdir(profileDir, { recursive: true })
  • 写入本地文件
    lib/settings.js:111
    await writeFile(temporary, `${JSON.stringify(value, null, 2)}\n`, 'utf8')
  • 写入本地文件
    lib/settings.js:112
    await rename(temporary, path)
  • 删除本地文件
    lib/settings.js:116
    await unlink(temporary)
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件管理器:在原生插件页的「添加插件」菜单里扫描并更新已安装的 GitHub 插件,不占用页签、不替换原生页面。

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-manager · 插件管理器 DSH 插件管理器,只做增量:原生插件页、原生「添加插件」对话框和内置插件配置都不动。安装 GitHub 插件继续用原生入口;本插件在设置页新增「插件管理器」一节,列出本配置档里 GitHub 来源插件,给出「待更新」标签,顶部「刷新并检测」会刷新清单并检查远端,逐项或「全部更新」。组合包详情页仍显示单个插件的状态与操作;本插件自己也在可更新之列。 DSH 自带的插件页只管组合包的启停与安装,不跟踪第三方 GitHub 依赖的远端变化:github: 依赖在锁文件里钉着安装时的 commit,上游 push 之后本地不会跟着变。插件管理器只补这一段,不接管原生页。
展开完整文档(README 剩余 1 节)
dsh-plugin-manager · 插件管理器

DSH 插件管理器,只做增量:原生插件页、原生「添加插件」对话框和内置插件配置都不动。安装 GitHub 插件继续用原生入口;本插件在设置页新增「插件管理器」一节,列出本配置档里 GitHub 来源插件,给出「待更新」标签,顶部「刷新并检测」会刷新清单并检查远端,逐项或「全部更新」。组合包详情页仍显示单个插件的状态与操作;本插件自己也在可更新之列。

DSH 自带的插件页只管组合包的启停与安装,不跟踪第三方 GitHub 依赖的远端变化:github: 依赖在锁文件里钉着安装时的 commit,上游 push 之后本地不会跟着变。插件管理器只补这一段,不接管原生页。

界面在哪

不占插件页,不改原生列表:

| 插槽 | 位置 | 内容 |
| settings.section | 设置页侧栏「插件管理器」 | 全局列表、「待更新」标签、「刷新并检测」、「全部更新」、逐项检查/更新 |
| plugins.detail.badge | 组合包详情页标题旁 | 有更新或检测失败时显示状态 |
| plugins.detail.actions | 组合包详情页页头 | 「检查 / 更新」按钮 |
| plugins.detail.section | 组合包详情页底部 | 来源 spec、本地/远端 commit、最近检查时间与单项检查/更新按钮 |

原生插件页的「已安装插件」列表里,行内标签、页面顶部刷新按钮、「已安装插件」标题右侧的区域都是内置页自己渲染的,没有对应插槽;所以这些能力放在设置页里,原生页保持原样。

从 GitHub 安装

安装仍用插件页原生的「添加插件」,它本来就接受 Git 地址,例如:

- github:owner/repo,可带 #分支或标签
- https://github.com/owner/repo
- https://github.com/owner/repo/tree/<分支或标签>
- git@github.com:owner/repo.git

包检查、pnpm 下载、构建脚本审批、兼容性检查和失败恢复都由原生安装对话框完成。插件管理器不重复实现安装表单,也不改安装流程。

检测更新

打开设置 → 插件管理器。页面第一次打开时自动做一次全部检测:读锁文件里的本地 commit,用 git ls-remote 取远端,不一致就是有更新。

- 「刷新并检测」:重新读取清单并检查全部 GitHub 来源插件。这是设置页里的顶部刷新按钮;原生插件页的刷新按钮没有插件 hook 点,不会跟着变。
- 「全部更新」:把已检出有更新的项逐个更新;本插件自己排在最后,避免自更新重载打断其他项。
- 单行「检查 / 更新」仍然可用;有更新的行显示「待更新」标签。

检测只读远端,不改任何文件。结果只存在宿主内存里,DSH 重启后需要重新检测。

怎么判定有没有更新

1. 从 pluginManager.listBundles() 取配置档里已安装的组合包,只留下来源是 github:owner/repo、git+https://github.com/…、https://github.com/…、git@github.com:… 的(本地 link:、npm 包、其他 Git 主机不归这里管)。
2. 本地 commit 从配置档的 pnpm-lock.yaml 根 importer 里读:github: 来源记成 https://codeload.github.com/owner/repo/tar.gz/<commit>。workspace 设了 packages: ['.'] 时 importer 键会变成相对路径,所以按依赖项解析、不认 importer 的键。
3. 远端 commit 用 git ls-remote 取:没带 #ref 取 HEAD;带分支/标签取对应 ref(附注标签优先取 peel 后的 commit);带 40 位 commit 的直接钉住、不问网络。
4. 两边不一致就是「有更新」。

怎么更新

走 DSH 自己的 pluginManager,不自己调 pnpm:

1. manager.removeBundle(name) 卸载;
2. manager.installBundle(原 spec, { enabled: 原启用状态 }) 重装。

不能直接重装已被依赖的同名包:HMR 开启时 installBundle 会抛 already-installed,所以必须先卸载。兼容性检查、组合包对账、HMR 重组仍由 DSH 负责;返回 application: 'restart-required' 时按提示重启。更新结束后设置页会重新读取列表,行上或页面上方会写明成功、需要重启或失败原因。

自更新

本插件自己的行也有「检查 / 更新」按钮。自更新不能先卸载更新器,所以走另一条路:

1. 检查远端默认分支 HEAD;
2. 用 github:owner/repo#<remote commit> 调 installBundle,不 removeBundle;
3. DSH 在 pnpm 之后用 HMR 替换运行中的插件。

配置档里的 spec 会因此变成 pinned commit;之后自己的检查仍然跟远端 HEAD 比对。请求会先返回,安装继续在宿主里跑;DSH 可能重载。若没有变化,重启 DSH;失败原因在宿主日志里,可再点一次或改用 dsh plugin 重装。

安装这个插件

产物已提交,从 GitHub 安装不需要现场构建。macOS / Linux 用 dsh 命令(桌面版也可写完整路径):

dsh plugin --profile desktop add "github:longyi-0x0/dsh-plugin-manager"

Windows 用桌面版自带的命令行:

& "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd"
plugin --profile desktop add "github:longyi-0x0/dsh-plugin-manager"

改仓库里的本地副本时用 link::

dsh plugin --profile desktop add "link:/path/to/dsh-plugin-manager"
重启 DSH 后,设置页侧栏会出现「插件管理器」,GitHub 来源的组合包详情页会多出更新状态与操作;原生插件页本身不变。

数据接口

宿主半边在 webServer 上挂 /dsh-plugin-manager/api:

| 方法 | 路径 | 说明 |
| GET | /list | 只读清单(带上一次检查结果),不访问网络 |
| POST | /check | 检查远端;体 { names?: string[] },省略则检查全部 |
| POST | /update | 更新一个:体 { name: string } |

接口只接受本机回环 Host 的同源请求(sec-fetch-site: cross-site 与异源 Origin 一律 403),变更只接受 POST。远程访问模式(非回环 Host)下界面会显示不可用。

限制

- 只列已安装、来源是 github.com 的插件;gitcode、自建 Git、npm 包与 link: 本地依赖不列。
- 安装由原生「添加插件」负责;本插件没有自己的安装表单。
- 原生插件页的列表行标签、顶部刷新按钮、已安装标题右侧区域都没有插件插槽;这些能力在设置页「插件管理器」里,原生页保持不动。
- 不使用 plugins.tab,也没有添加菜单或弹层;全局列表只在设置页一节里。
- 在无 profile 管理的 guest/二级窗口里,原生页自己会显示「本部署没有可管理的 profile」,本插件的接口也不可用;请在主 DSH 窗口使用。
- 检测结果只存在宿主内存里,DSH 重启后需要重新检测。
- 钉死到 40 位 commit 的 spec 显示「钉住 commit」且不提供更新;本插件自己的行例外:自更新后 spec 会变成 pinned,但仍跟远端 HEAD 检查。
- 自更新会改写本插件的 profile spec 为 pinned commit;没有 HMR 或重载后没变化时重启 DSH。失败原因在宿主日志里,可再点一次或改用 dsh plugin 重装。
- 卸载成功而安装失败时插件会留在未安装状态;设置页顶部会保留错误和原 spec,可用原生「添加插件」重新安装。

实现备注

bundle patch 的行 id 必须是 dsh-plugin-manager,不能写成 plugin-manager。基础包用 id: plugin-manager 挂 @deepseek-ai/dsh-plugin-manager(profile 管理服务);同名 insert 会把它顶掉,插件页会显示「本部署没有可管理的 profile」。test/manifest.test.mjs 守住这条。

测试

node --test

Node 20+,无第三方依赖。覆盖:spec 解析、git ls-remote 结果解析与 ref 解析(注入 git 执行器)、锁文件 commit 读取、检查/更新状态机与串行化(注入假 manager)、HTTP 路由的信任围栏与状态码、浏览器半侧注册设置页一节与详情贡献,且不注册页签、添加菜单或弹层。

许可

MIT,见 LICENSE。
预览分享卡片长什么样 ↓longyi-0x0/dsh-plugin-manager
分享 · DeepSeek Harness Hub
longyi-0x0/dsh-plugin-manager

检测并更新已安装的 GitHub 插件,不占用原生页签

这是你的仓库?认领条目

回到顶部