DSH 的插件机制允许开发者通过 dsh plugin 命令为 Profile 添加扩展。然而,DSH 自带的 Plugin list(设置 → 插件)展示的是加载器中的所有条目,将官方包与第三方包混在一起,且没有安装源、版本或 Profile 归属信息。inxups/dsh-user-plugins 在 Web GUI 中增加了一个专门的“我安装的插件”标签页,聚焦于你在各 Profile 中手动安装的第三方依赖,并提供其版本、类型和运行状态。
这是什么¶
这是一个 DSH 插件,采用 Host(Node.js)+ Browser(React)双面架构。它在 DSH 的 Web GUI 设置中新增“我安装的插件”标签页,用于列出各 Profile 中已安装的插件。它通过读取 Profile 目录下的 package.json 依赖和 bundle 列表,展示安装源(spec)、版本、类型(bundle/client/plain)以及加载器实时状态。
核心功能¶
- Web GUI 面板:在 DSH 设置 → 插件中增加“我安装的插件”标签页。
- 列出已安装的插件:列出你通过
dsh plugin --profile <name> add装进各 Profile 的插件。 - 显示安装源、版本、类型:展示插件来源(github、link 等)、磁盘版本及贡献类型。
- 显示实时加载器状态:展示插件在当前加载器中的实时阶段。
- 读取 profile 的 package.json 依赖:以磁盘上的依赖为准,而非运行时条目。
- 使用平台自带 UI 原子:界面元素与 DSH 主 GUI 保持一致的设计风格。
- 区分官方包与第三方包:自动过滤官方
@deepseek-ai/*包,仅显示第三方包。
与自带清单的区别¶
内置的 ui-settings-plugin-inventory 与本插件的数据源与范围不同:
| 特性 | Plugin list(自带) | 我安装的插件(本插件) |
|---|---|---|
| 数据源 | 加载器条目(运行时) | Profile 的 package.json 依赖 + bundle 列表(磁盘) |
| 范围 | 全部组成的插件,含官方包 | 仅列你装进 Profile 的包,官方包一律不显示 |
| 安装源 spec | 无 | 有(github: / link: / 版本范围) |
| 版本 | 无 | 有(读包的 manifest) |
| 归属 Profile | 无 | 有,并标出当前运行中的那个 |
安装与启用¶
使用官方命令安装插件:
dsh plugin --profile web add github:inxups/dsh-user-plugins
安装后需重启 dsh,使插件进入组合。若从源码运行,需将 dsh 替换为 pnpm dsh。
典型用法¶
安装完成后,访问 Web GUI 的「设置 → 插件」,点击「我安装的插件」标签页即可查看列表。
通过 GET /dsh-user-plugins/api/list 接口可以获取插件列表的只读快照,返回数据包含 Profiles 列表、各 Profile 下的插件详情(包含 spec、kind、phase 等字段)。
限制与注意事项¶
- 官方包不显示:
@deepseek-ai/*官方包不会出现在列表中。 - 版本与描述限制:
version/description仅对 Profile 自己node_modules里的包有效;由 DSH 安装提供的官方包这些字段为null。 - 状态推断:当前运行中的 Profile 状态通过“与加载器条目匹配数最多”推断,而非直接读取启动参数。
- 无变更订阅:数据按请求实时读取,没有变更订阅机制;面板上的“刷新”按钮会重新拉取数据。
- 语言支持:目前仅支持 zh / en 两套字典。
总结¶
该插件与内置的清单互补,适合需要精确管理 Profile 中第三方依赖、查看安装来源及运行状态的开发者。