聚合多源插件信息,离线也能搜索发现
28/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Jesse-njx/dsh-plugin-manager-registry该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 聚合多源插件信息
- 离线搜索发现
- 去重合并注册表
README
由 DeepSeek 最新模型翻译生成@dsh-pm/registry
dsh pm 的发现引擎 —— 将三个相互独立的来源合并成一个去重、排序且可离线降级的插件注册表:
1. awesome-list —— awesome-dsh-plugin README,按分类标题解析条目(配置项 awesomeUrl)。
2. GitHub topic —— 通过 gh CLI 搜索带 dsh-plugin 话题的仓库,并有 api.github.com 的 https 兜底。
3. npm keyword —— npm search --json (配置项 npmKeyword,默认 dsh),并有 registry /-/v1/search 的 https 兜底。
同一项目的 GitHub 命中与 npm 命中会合并为一条同时携带 repoUrl 与 npmName 的 RegistryEntry;先按规范化后的仓库 URL 去重,再按裸名称去重。每个来源都能独立降级 —— 一个失效的来源只会少贡献(或改用本地缓存的)条目并产生一条警告,绝不会抛出异常。离线时,客户端返回各来源上次成功抓取时写入的本地缓存。
展开完整文档(README 剩余 1 节)
@dsh-pm/registry
dsh pm 的发现引擎 —— 将三个相互独立的来源合并成一个去重、排序且可离线降级的插件注册表:
1. awesome-list —— awesome-dsh-plugin README,按分类标题解析条目(配置项 awesomeUrl)。
2. GitHub topic —— 通过 gh CLI 搜索带 dsh-plugin 话题的仓库,并有 api.github.com 的 https 兜底。
3. npm keyword —— npm search --json (配置项 npmKeyword,默认 dsh),并有 registry /-/v1/search 的 https 兜底。
同一项目的 GitHub 命中与 npm 命中会合并为一条同时携带 repoUrl 与 npmName 的 RegistryEntry;先按规范化后的仓库 URL 去重,再按裸名称去重。每个来源都能独立降级 —— 一个失效的来源只会少贡献(或改用本地缓存的)条目并产生一条警告,绝不会抛出异常。离线时,客户端返回各来源上次成功抓取时写入的本地缓存。
本包实现 @dsh-pm/core 中冻结的 RegistryClient 契约(规范 §5.1),并精确导出 §5.2 规定的接口: createRegistryClient 与一次性 search 便捷函数。
安装
dsh-plugin-manager monorepo 的工作区包,通过 @dsh-pm/core(workspace 依赖)消费。将其接入 DSH 的产品是插件管理器 CLI:
dsh plugin add github:Jesse-njx/dsh-plugin-manager
用法
import { createRegistryClient, search } from '@dsh-pm/registry'
import type { PmConfig } from '@dsh-pm/core'
const cfg: PmConfig['registry'] = {
awesomeUrl: 'https://raw.githubusercontent.com/awesome-dsh-plugin/awesome-dsh-plugin/main/README.md',
npmKeyword: 'dsh',
}
const client = createRegistryClient(cfg)
// 过滤并排序:stars 降序,再按名称升序。
const hits = await client.search('memory')
// 精确查找:支持名称、npmName、owner/repo、github:owner/repo 或 https URL。
const entry = await client.resolve('Jesse-njx/dsh-memory')
// 更新检查版本:优先 npm dist-tag latest,否则返回 GitHub 默认分支 HEAD 的 commit sha。
const version = await client.latestVersion(entry ?? hits[0]!)
// 最近一次运行的警告(冻结接口之外的有文档扩展):
console.log(client.lastWarnings) // 例如 ["github: 'gh' CLI not found; results from https search"]
// 一次性便捷调用(规范 §5.2): const all = await search('', cfg)
返回结构
search/resolve 返回 @dsh-pm/core 中的 RegistryEntry:
{
name: string // 规范裸名称 repoUrl?: string // 规范化的 https 仓库 URL(去重键 #1) npmName?: string // 已发布到 npm 的包名 description: string category: string // awesome-list 标题,未知则为 '' stars?: number // 已知的 GitHub stars updatedAt?: string // 最近一次仓库推送的 ISO 8601 时间
source: ('github' | 'npm')[] // 贡献了哪些发现来源
}
三个数据来源
| 来源 | 首选 | 兜底 | 贡献字段 |
| awesome | fetch(awesomeUrl) | 本地缓存 | name, repoUrl, description, category |
| github | gh api search/repositories?q=topic:dsh-plugin | https api.github.com 搜索 | name, repoUrl, stars, updatedAt, description |
| npm | npm search --json --searchlimit=100 | https registry.npmjs.org/-/v1/search | name→npmName, repoUrl, description |
- 去重 —— 先按规范化仓库 URL(git+https://…、git@github.com:…、末尾 .git 均归并为 https://github.com/owner/repo),再按裸名称。仅裸名称相同的不同仓库保持独立。合并时元数据取并集,source 累积不同的贡献来源。
- 排序 —— stars ?? 0 降序,名称升序作为并列时的次序。
- 警告 —— 每个失效来源至多一条(awesome: …、github: …、npm: …),例如 github: 'gh api' failed (exit 1); results from https search。无法解析的 awesome 行汇总为一条 awesome: skipped N row(s) 警告 —— 解析器绝不抛异常。
离线行为
每个来源依次尝试:首选路径 → https 兜底 → 本地缓存 → 退化为零条目并产生一条警告。缓存为 JSON 文件,原子写入(临时文件 + rename),存放于:
- 设置了 $DSH_PM_CACHE_DIR 则用它,否则
- $XDG_CACHE_HOME/dsh-pm,否则
- ~/.cache/dsh-pm
缓存写入是尽力而为:写入失败会被静默吞掉,绝不致命。默认的 npm runner 还会使用自己的可写缓存(/npm-cache),避免全局 ~/.npm 缓存损坏拖垮 npm 首选路径。
开发
pnpm install # 在 monorepo 根目录执行(需 packages/core 已存在)
pnpm --filter @dsh-pm/registry test # node --test,43 个测试
pnpm --filter @dsh-pm/registry typecheck
pnpm --filter @dsh-pm/registry build # tsc → lib/
除 test/live.test.ts(离线时自动跳过,沿用套件约定的网络守卫)外,测试不触网。
合并/去重矩阵、解析器黄金样例(fixture README 已提交在 test/fixtures/)以及所有降级路径都基于注入的 fake 运行(test/helpers.ts)。
dev/core/ 仅为构建期占位。 registry 只以 import type 从 @dsh-pm/core(workspace 依赖)导入类型 —— 运行期会被擦除。由于构建本包时 Session 1 的 core 尚未落地,这里把规范 §5.1 的冻结契约逐字转写进 dev/core/index.d.ts,仅通过 tsconfig.json 的 paths 映射引用,绝不编译进 lib/,运行期也绝不导入。真正的 core 链接后即可删除 dev/ —— 协调者可将该占位与落地的类型做 diff,检查是否有漂移。
License
MIT —— 见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Jesse-njx/dsh-plugin-manager-registry
聚合多源插件信息,离线也能搜索发现
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,399未汉化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,384已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13950 个插件含 PR 收录与…
★ 360已汉化DSH
71.9
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。