跳到主内容

dsh-recommend

19Star1Fork0Issue1Watching

为 DSH 插件生态提供透明排行、目标推荐、设置页榜单和插件更新检查,数据每 5 小时自动刷新。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
deepseek-harnessdsh-pluginpluginrankingsrecommendations

安装

命令web profile
$ dsh plugin --profile web add dsh-recommend

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 zp-home/dsh-recommend:先查看仓库 https://github.com/zp-home/dsh-recommend 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DSH 插件生态提供透明的排行与推荐:每 5 小时从 GitHub 抓取所有 dsh-plugin 话题仓库,按公开的评分公式排序,并通过模型工具与设置页让你随时查榜、按目标推荐、一键安装或检查更新。

核心能力

  • 模型工具 rank_plugins:按综合分 / star 数 / 最近更新时间维度查询榜单,支持分类筛选(默认 10 条、上限 50)
  • 模型工具 search_plugins:按名称 / 描述 / 分类 / 主题标签全文检索,被排除条目也会出现并附原因
  • 模型工具 recommend_plugins:基于用户目标的中英同义词扩展推荐,融合匹配度与综合分(21 组硬编码同义词:记忆/搜索/UI/MCP/工具/视觉/语音 等)
  • 模型工具 trend_plugins:查询发展榜(star 7/30/90 天增长、排名上升、npm 月下载量、本周新上榜、精选认证)
  • 模型工具 sync_registry:刷新本地缓存(registry/history/trends),输出 hub 目录与深扫健康度
  • 设置页「插件排行」标签:紧凑榜单 + 搜索 / 分类 / 排序 / 分页 + 一键刷新 + 一键安装 + 已装检测 + 插件更新检查 + 🏅 认证徽章,zh/en 双语随 DSH 主题适配

技术实现

  • 语言: TypeScript(ESM,构建产物 lib/ 随仓库提交,git 安装免构建)
  • 关键依赖: @deepseek-ai/cordis(插件注入)、@deepseek-ai/dsh-tools(defineTool 注册工具)、@deepseek-ai/dsh-host-webserver(同源路由注册)、@deepseek-ai/dsh-client-ui-slots + @deepseek-ai/dsh-client-runtime + @deepseek-ai/dsh-client-locale(设置页标签)
  • 架构模式: 单包双半 bundle —— cordis patch 插入两行 host 半(工具半 dsh-recommend 依赖 tools,路由半 dsh-recommend-web 依赖 webServer,仅 web profile 激活)+ 浏览器半由 dsh.client 声明自动装载,三半共用同一份本地缓存;数据消费与数据生产解耦(详见 docs/decisions/0003)
  • 入口文件: src/host/index.ts(host 工具半,注册 5 个模型工具)、src/host/web.ts(host 路由半,注册同源 HTTP 端点)、src/client/index.ts(browser 半注册设置页「插件排行」标签)

适用场景

  • 你想在 DSH 里直接问「推荐一个能做 XXX 的插件」而不用手动翻 GitHub,模型通过同义词扩展 + 评分融合给你 Top 5 推荐。
  • 你想知道某个插件维护是否活跃、综合质量如何,或者对比多个类似插件的分数;设置页排行榜直接给你紧凑列表 + 安装命令 + 详情展开(主题标签、许可证、发布时间、深扫状态、走势 sparkline)。
  • 你装了多个第三方插件想统一管理更新;设置页「插件排行」标签内置「更新」按钮,检查当前 profile 直接依赖的 Git commit / npm 版本并执行官方 dsh plugin update。

前置依赖与兼容性

依赖最低版本说明
Node>=18.17由 package.json#engines.node 声明
DSH Harness未声明需暴露 tools / webServer 服务、settings.plugins.tab 槽位与 pluginInventory Remote;未在 package.json#peerDependencies 写死版本
平台跨平台host 半使用 Node 内置 fs/fetch/child_process;安装子进程在 Windows 下走 shell 包裹(src/host/web.ts:482)
原生模块无全部使用 Node 内置模块,零原生依赖
GitHub Token推荐本地全量复算时需配 GITHUB_TOKEN(未认证在仓库数 >1000 后会被限流,CI 已自动注入)

安装方式

dsh plugin --profile web add github:zp-home/dsh-recommend

配置项

配置类型说明默认值
dataUrl字符串拉取 registry.json 的远端地址;国内用户可改为 jsDelivr CDNhttps://raw.githubusercontent.com/zp-home/dsh-recommend/main/data/registry.json
cachePath路径本地缓存 registry.json 的位置$DSH_HOME/dsh-recommend/registry.json
historyUrl / historyPath字符串 / 路径历史快照的拉取地址和本地缓存与 registry 同源 / $DSH_HOME/dsh-recommend/history.json
trendsUrl / trendsPath字符串 / 路径趋势数据的拉取地址和本地缓存与 registry 同源 / $DSH_HOME/dsh-recommend/trends.json
installProfile字符串一键安装命令的目标 profile 名(仅路由半)web
refreshIntervalMs毫秒本地缓存 TTL;过期后 sync_registryIfStale 才会触发拉新(src/host/sync.ts:5)21600000(6 小时)

以上默认值由 cordis.patch.yml 写入;要修改请编辑 node_modules/dsh-recommend/cordis.patch.yml 后重启 DSH。

常见问题

Q: 安装后需要重启 DSH 吗?

A: 需要。本插件含两行 host 半(工具半 dsh-recommend、路由半 dsh-recommend-web)和一个浏览器半(设置页「插件排行」),都属于永久(bundle)插件,安装 / 更新 / 卸载后必须重启 DSH harness,新装或变更的插件才会被 Loader 实际加载。

Q: 数据多久更新一次?怎么手动刷新?

A: GitHub Actions 每 5 小时自动重算 registry / history / trends 并提交到本仓库 data/。插件侧默认缓存 TTL 是 6 小时,可调用模型工具 sync_registry 或在设置页点「刷新数据」立即拉新;强制刷新走 POST /dsh-recommend/sync?force=1,跳过 TTL 重新下载完整快照。

Q: 国内访问 raw.githubusercontent.com 失败怎么办?

A: 编辑已安装包中的 cordis.patch.yml(node_modules/dsh-recommend/cordis.patch.yml),把 dsh-recommend 和 dsh-recommend-web 两行的 dataUrl 改成 https://cdn.jsdelivr.net/gh/zp-home/dsh-recommend@main/data/registry.json(jsDelivr CDN,国内一般可达,但有数小时缓存延迟),保存后重启 DSH。

Q: 一键安装按钮会被恶意网页利用吗?

A: 不会。设置页的「⬇ 安装」走 POST /dsh-recommend/install,服务端只接受同源或空 Origin 请求(CSRF 防护),并按客户端传来的 fullName 从本地缓存 registry 构造 spec(不接受客户端自传 spec),避免恶意网页让你装任意插件。命令最终交给官方 dsh plugin --profile <name> add <spec> 执行,超时 10 分钟自动终止。

Q: 「上榜 / 收录」等于安全背书吗?

A: 不等于。本插件只读取 GitHub 元数据(stars、描述、license、更新时间等),从不执行被收录插件的代码;上榜反映的是维护性、热度、文档质量与精选收录等信号,不包含代码审计、供应链审计或运行时行为评估。安装第三方插件前请自行审查源码、权限和许可证,详见 SECURITY.md。

Q: 怎么卸载这个插件?

A: 用官方命令 dsh plugin --profile web remove dsh-recommend(或对应 npm / GitHub spec)卸载,然后重启 DSH harness。本插件不写 profile manifest 之外的副作用,卸载后 $DSH_HOME/dsh-recommend/ 下的本地缓存可手动删除。

上手难度

入门 — 一行命令即可安装,无需任何额外配置(默认数据源开箱可用),设置页和模型工具均按 DSH 习惯布局;想自定义数据源或安装目标 profile 才需要编辑 cordis.patch.yml。

已知问题与限制

  • 全量抓取受 GitHub Search API 单查询 1000 条上限影响,本地全量复算需配 GITHUB_TOKEN,CI 已自动注入(CHANGELOG.md:16)
  • 默认 dataUrl 指向 raw.githubusercontent.com,国内网络可能不可达,需手动改为 jsDelivr CDN(README.zh.md:68)
  • 评分模型 v2 以元数据信号为主,stars 可刷、不等于真实使用量;真实使用量信号(npm 下载量、安装上报)尚未引入热度权重(docs/scoring.md:43)
  • 安装 / 更新操作依赖 spawn dsh 子进程,最长 10 分钟超时;超时会被强杀进程树(src/host/web.ts:35)
  • 设置页的「本机兼容检测」按钮依赖官方 dsh-dev-sandbox 服务可用,不可用时会报错(src/client/index.ts:107)
  • 模型工具 recommend_plugins 的同义词组是硬编码 21 组(中英对照),新增场景需改源码重新构建(src/host/index.ts:434)
  • 历史快照按天幂等写入,但保留 366 天后会自动截断,更老的趋势数据无法查询(AGENTS.md:7)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/zp-home/dsh-recommend)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录