dsh-plugin-diraud:按来源区分 DeepSeek Harness 插件列表

前言

在 DeepSeek Harness(DSH)中,插件是扩展功能的常见方式。随着自行安装、本地链接、GitHub 来源等插件增多,单一插件列表容易把官方插件和自行安装插件混在一起。

dsh-plugin-diraud 解决的是这个问题:按来源分组展示当前加载的 DSH 插件,并把自行安装插件的启用、禁用、更新、卸载放到同一入口。它由 tttwh 维护,许可证为 MIT。

定位与适用范围

下面介绍这个插件的定位。

  • 它是一个 DSH 插件,用于 Web 端侧边栏和 composer 的插件列表管理。
  • 核心对象是当前加载插件,重点区分 officialself-installed
  • 提供 /plugin-audit 命令和侧边栏底部的 Plugin Catalog 入口。
  • 官方/内置插件以及本插件自身会被锁定或拒绝卸载。

核心功能

按来源审计插件

/plugin-audit 命令会按官方/自行安装分组列出当前加载插件,并支持 userofficial 与关键字过滤。

常用命令如下:

/plugin-audit
/plugin-audit user
/plugin-audit official
/plugin-audit <keyword>

/plugin-audit 用于查看整体概览;user 只看自行安装插件;official 只看官方插件;<keyword> 用于按包名或 entry 关键字过滤。

自行安装插件的启用与禁用

自行安装插件可以通过两个入口启用或禁用:

1、侧边栏底部 Plugin Catalog 入口中的按钮;
2、composer 中的命令:

/plugin-audit disable <keyword>
/plugin-audit enable <keyword>

开关会持久化到 profile 的 cordis.patch.yml,可以恢复,并会调用 ctx.loader.update 即时生效。官方/内置插件会被锁定,不能通过这类方式改变状态。

Plugin Catalog 面板

Plugin Catalog 面板按来源分组显示插件卡片。每张卡片会展示来源标识、已安装版本、entry id 和描述。

面板支持以下能力:

  • 按模块名 / entry id 搜索;
  • 每个分组显示实时计数;
  • 列表加载失败时提供重试按钮;
  • 描述优先使用内置模块名到 zh / en 的字典,回退到包自身的 description
  • 当包的 repositoryhomepage 指向 GitHub 时,卡片会显示 GitHub 按钮,用于打开完整功能文档。

自行安装插件更新

自行安装插件的更新会先检查 npm registry。面板顶部会有更新栏,提供 Re-checkUpdate all;单个插件卡片也会有 Update 按钮,并在执行时显示进度。

npm 来源的更新使用:

pnpm add <pkg>@latest

如果环境需要,会回退到 corepack / npx。

GitHub 来源插件也支持更新,兼容 github:git+git://git@ 等规格。更新时会比较本地 commit 与远端 HEAD / tag,并重新执行 pnpm add 原始规格或新 tag。如果依赖固定到某个具体 commit,则会标记为不可自动更新。

如果更新后旧包名失效,但新包名仍指向同一仓库,面板会报告 repository renamed,并给出移除旧包的命令。

更新任务会在模块级 store 中排队执行:

  • 连续点击会被合并到下一批任务;
  • 不会并发启动两个 pnpm 进程;
  • 关闭面板后,任务仍会继续并可以被观察。

对于 link:file:workspace: 依赖,面板会使用源感知标签,分别显示为桌面应用更新或本地插件,避免把这类依赖误报为普通 npm 更新。官方/内置插件和本插件自身会被锁定。

自行安装插件卸载

每张自行安装插件卡片右侧会有红色 Uninstall 按钮。

点击后会执行:

1、确认卸载;
2、执行 pnpm remove
3、刷新插件列表。

非自行安装包和本插件自身会被拒绝卸载。

安装与启用

前置依赖:pnpmdsh CLI。

推荐从 npm 安装:

dsh plugin --profile web add dsh-plugin-diraud

也可以从 GitHub main 分支安装:

dsh plugin --profile web add https://github.com/tttwh/dsh-plugin-diraud/archive/refs/heads/main.tar.gz

经过上面的步骤后,重启 dsh web,然后可以:

  • 在 composer 输入 /plugin-audit
  • 或点击侧边栏底部的 Plugin Catalog

典型用法

查看插件来源

/plugin-audit
/plugin-audit user
/plugin-audit official
/plugin-audit <keyword>

禁用或启用自行安装插件

/plugin-audit disable <keyword>
/plugin-audit enable <keyword>

这类操作会写入 profile 的 cordis.patch.yml。如果之后想恢复默认状态,删除对应行即可。

卸载本插件

dsh plugin --profile web remove dsh-plugin-diraud

强制归类为自行安装

默认情况下,插件来源会按包作用域判断。遇到边缘情况,例如第三方包发布在 @deepseek-ai/ 下,可以通过 extraUserPackages 强制归类为自行安装。

在 profile 的 cordis.patch.yml 中覆盖 plugin-audit 的配置:

- id: plugin-audit
  config:
    extraUserPackages:
      - '@deepseek-ai/dsh-my-fork'

适用场景与注意

适合这类使用者:

  • 当前 DSH 环境中同时存在官方插件和自行安装插件;
  • 需要快速确认某个插件是官方、内置还是自行安装;
  • 希望集中启用、禁用、更新或卸载自行安装插件;
  • 对 npm 和 GitHub 来源的插件都需要查看状态。

使用前需要注意:

  • 它是运行在 dsh 进程内的插件,安装前应检查源码与许可证。
  • 插件会以当前 dsh 进程权限运行,更新和卸载会实际执行包管理操作。
  • 官方/内置插件以及本插件自身被锁定或拒绝卸载。
  • 启用/禁用状态写入 profile 的 cordis.patch.yml,删除对应行可恢复默认。
  • 更新任务会排队执行,不会并发启动两个 pnpm 进程;关闭面板后任务仍会继续。
  • link:file:workspace: 依赖会显示为桌面应用更新或本地插件,避免误报。
  • 社区目录页是独立站点,不应理解为官方应用商店,也不代表与 DeepSeek / 幻方存在官方从属关系。

小结

dsh-plugin-diraud 的价值在于把 DSH 插件列表按来源拆开:官方/内置插件和自行安装插件不再混在一个视图里,自行安装插件的启用、禁用、更新、卸载也有统一入口。

  • GitHub:https://github.com/tttwh/dsh-plugin-diraud
  • 社区目录页(线索提供,访问前请自行确认):https://www.skillhub.cn/plugins/tttwh/dsh-plugin-diraud
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye