检测并更新已安装的 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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
longyi-0x0/dsh-plugin-manager
检测并更新已安装的 GitHub 插件,不占用原生页签
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目