dsh-plugin-source
DeepSeek Harness plugin: group the Settings plugin list by origin (official/community), show version, upstream repo link and local-dev marker. Read-only, zero network.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 29, 2026
- Updated
- Aug 29, 2026
Introduction
dsh-plugin-source
增强 DeepSeek Harness 官方「设置 → 插件 → 插件列表」tab:按来源分组,一眼区分官方与社区插件,并显示版本、上游仓库(org/repo 一键跳转)与本地开发标记。
纯只读、零网络、零写盘:所有数据来自本地文件(loader 清单 + node_modules/<pkg>/package.json + profile package.json)。

功能
- 来源分组(组头计数,可折叠;社区插件组排在官方插件组前面):
@deepseek-ai/前缀 → 官方(官方 monorepo 作用域)cordis:前缀 → 官方(loader 内部基建,并入官方组)- 其余 → 社区插件
- 来源徽标:每张卡片带来源标签。
- 版本号:卡片显示已装版本(官方页不显示)。
- 上游仓库:读本地
repository/homepage字段,显示 org/repo 并一键跳转 GitHub;未声明的显示「未声明仓库」。 - 本地开发标记:profile
dependencies里file:/link:依赖 → 「本地开发」(自己写的),其余 → 已安装。 - 官方功能全部保留:搜索、展开详情(entryId / 配置状态 / Cordis 状态)、状态点、重试。
实现方式
影子覆盖(shadow):注册 settings.plugins.tab 插槽 id=all、priority=-1(官方默认 0)。
DSH slots 的 list 语义是「同 id 不同 priority 共存、最低者渲染」,因此 tab 名字与位置不变,
官方组件被我们的增强组件遮蔽。
数据通道:
- 插件清单:官方
ctx.remote.pluginInventory.list()(client 直调); - 来源元数据:自建只读 remote
pluginSource/describe(moduleNames)(host 读本地文件)。
构建与安装
pnpm install
node build.mjs # 产出 lib/index.js (host) + lib/client.js (web)
# 完整构建(含类型声明):npm run build
安装(bundle 类型):
# 从 npm 安装(发布后)
dsh plugin --profile web add dsh-plugin-source
# 从 GitHub 安装
dsh plugin --profile web add github:Carrick-K7/dsh-plugin-source
# 本地开发:dsh plugin --profile web add link:/path/to/dsh-plugin-source
装完重启 dsh web,打开 设置 → 插件 → 插件列表 即可看到分组。
目录
src/
classify.ts 来源判定 + 仓库解析(纯函数)
contract.ts wire 契约(zod schema,host/client 共用)
typert.ts host manifest
host.ts host 插件:describe remote(只读本地文件)
client/index.tsx web 插件:shadow 官方 tab + 分组组件
client/remote.ts client remote 贡献
client/styles.ts 组件样式(--dsw-alias-* 变量)
许可
MIT