在 DSH 生态中,插件是扩展能力的主要方式。然而,社区插件分散在 GitHub 的各个仓库中,检索和验证较为耗时。dsh-plugin-finder 是一个联网工具,旨在自动在 GitHub 与 npm 上检索社区插件,并提供统一的发现入口。
插件定位¶
- 名称:dsh-plugin-finder
- 维护者:HarrisXiu
- 核心功能:发现所有带
dsh-plugin话题的公开仓库,支持断点续扫与国内镜像加速。
核心功能¶
- 侧边栏发现页:提供「插件发现」页面,展示检索到的插件列表。
- Agent 工具:提供
dsh_plugin_finder工具,支持命令行交互。 - 智能检索:自动在 GitHub(按 topic:dsh-plugin fork:true)与 npm 上检索。
- 国内镜像加速:支持国内镜像加速与回退机制,直连失败时自动切换。
- 断点续扫:支持扫描进度保存,中断后可继续扫描。
- 分类推断:根据仓库名称、描述和 topics 推断分类。
- 内置清单:提供内置推荐清单。
安装与启用¶
通过官方命令安装插件到 Web profile:
dsh plugin --profile web add "https://github.com/HarrisXiu/dsh-plugin-finder"
安装后需要重启 DSH 才能加载新的插件配置和侧边栏页面。
配置说明¶
插件通过 cordis.patch.yml 进行配置。配置项包括:
- id: plugin-finder
name: dsh-plugin-finder
config:
enabled: true
cacheTtlMinutes: 720
githubMirrors:
- https://gh-proxy.com/
- https://gh-proxy.org/
repoLimit: 25
manifestLimit: 25
githubMirrors:仅配置加速镜像,不配置则直连 GitHub。GITHUB_TOKEN:Token 仅从环境变量读取,不写入配置文件。
典型用法¶
1. 扫描与刷新¶
通过 Agent 工具触发扫描或刷新列表:
{ "action": "refresh" }
2. 插件建议¶
根据关键词获取插件建议:
{ "action": "suggest", "query": "memory", "limit": 15 }
3. 搜索与诊断¶
{ "action": "search", "query": "task board" }
{ "action": "stats" }
{ "action": "diagnose" }
4. 离线模式¶
在无网络环境下查询缓存:
{ "action": "suggest", "offline": true }
注意事项¶
- 数据来源:唯一仓库来源为 GitHub REST 搜索
topic:dsh-plugin fork:true,不使用 awesome-dsh-plugin。 - 分类说明:分类仅按仓库名称、描述和 topics 推断,不等于经过安装验证。
- 安装标识:显示为
installable: true需根目录 manifest 声明dsh.bundle.patch,但不承诺运行成功。 - npm 验证:只有已发布包的 repository 与当前仓库匹配,才显示为已验证 npm 包。
- 离线模式:首次离线列表为空,只显示新引擎保存的缓存。
- 缓存位置:默认缓存路径为
$DSH_HOME/plugin-finder/cache.json。 - 扫描限制:GitHub 搜索单次最多 1,000 条,超过需分片;全量扫描可能耗时数分钟至数十分钟。
适用场景¶
适合需要快速发现和集成 DSH 社区插件的开发者。插件以当前 DSH 进程的权限运行,安装前建议检查源码与许可证。