hotspot:DSH GitHub 热榜

前言

DeepSeek Harness(DSH)的插件生态里,新出的模型插件、Skill、MCP 服务、桌宠挂件越来越多。怎么快速发现那些真正有用、正在涨星的小工具,而不是被平台级项目或合集淹没?hotspot 插件提供了一套按日/周/月给这些小工具排名的榜单,支持自定义榜单类型,并在独立可拖拽的浮层中展示。

是什么

hotspot 是一个 DSH GitHub 热榜插件,由维护者 zhikai0915-netizen 开发。它从 GitHub 抓取模型插件、Skill、MCP 服务等项目的星数变化,按不同时间窗口生成榜单,并支持中文简介生成、相关性筛选、跨榜飙升榜等功能。

核心功能

榜单类型与更新日程

安装后默认提供多套榜单,各自按固定日程更新:

  • 日榜:每天 00:00 更新,统计「昨天到现在」的涨星
  • 周榜:每周一 00:00 更新,统计「上周一到本周一」的涨星
  • 月榜:每月 1 号 00:00 更新,统计「上月 1 号到本月 1 号」的涨星
  • 飙升榜:每周一 00:00 更新,按「星/天」速度排序,统计窗口与周榜一致
  • 总榜:每月 1 号 00:00 更新,按总星数排序

界面会显示每条榜的「下次更新时间」与「倒计时」,当前是否处于冻结状态。

采样与区间计算

GitHub API 只提供当前星数,不提供历史数据。hotspot 通过在本地保存带时间戳的样本文件来记录每个仓库的星数变化:

// $DSH_HOME/hotspot/snapshots/2026-10-15.json
{
  "date": "2026-10-15",
  "samples": [
    {
      "at": "2026-10-15T02:00:00.000Z",
      "stars": { "owner/repo": 1234 }
    },
    {
      "at": "2026-10-15T02:15:00.000Z",
      "stars": { "owner/repo": 1241 }
    }
  ]
}

区间涨星 = 当前星数 − 区间起点星数。起点取自「不晚于 cut-off 的最近一个样本」。若区间内只有 1 个样本,则按「总星数」排序并标注「按总星数」;若样本不足,则标注「样本积累中」。

默认每天 00:00 抓一次数据(共 7 次请求/天),远低于 GitHub 未认证接口的 10 次/分钟限制,无需 token 也能正常使用。

可拖拽浮层与视觉规范

榜单以独立浮层显示,挂在 DSH 的 shell.overlay 插槽上,与桌宠同层,不占对话区。

  • 拖标题栏:移动面板
  • 拖右下角:调整面板大小(最小 300×220)
  • 点标题栏或「—」:折叠成可拖动的小药丸,点药丸再展开
  • 点「✕」:隐藏(在 设置 → GitHub 热榜 里可恢复)

位置、尺寸、模式都会保存到 localStorage 的 hotspot-panel 键。面板会自动夹进视口,保证至少 80px 留在屏幕内。

界面使用 DSH 的设计 token --dsw-*,随系统主题自动适配。v0.6.0 起,所有颜色不写死,全部走 token。v0.7.0 支持三套视觉密度(紧凑 / 舒适 / 宽松),在设置页切换,只修改本插件自己的 CSS 局部变量(--hs-pad / --hs-gap / --hs-font / --hs-item-pad),不影响全局样式。

相关性判定与综合打分

原始 GitHub 搜索结果中,平台级项目(如 DSH 框架本身)和合集(如 awesome-list)会挤占小工具的排名。v0.5.0 引入两层筛选:

  1. 零成本规则预筛:名字/简介命中 awesome / curated / 导航 / 合集 等关键词,或星数 ≥ ranking.platformStars(默认 10 万),直接剔除。
  2. 模型逐条判定:用 DSH 的模型判断「这是本榜该收的具体小工具吗」,输出 {"verdict":"tool|platform|list|unrelated","relevance":0-100,"reason":"…"}。
  3. 过滤与综合打分:只保留 verdict === "tool" 且 relevance ≥ minRelevance(默认 50)的项目。最终得分 = 区间涨星 + relevance × relevanceWeight(0.05) + 新鲜度(0/1/2)。

判定按「榜 + 仓库 + 内容指纹」缓存,每轮检查会补预热未判定的候选(默认预热前 50 条),判定结果永久缓存。可以关闭模型判定("classify": false),只做规则预筛。

中文简介生成

GitHub 的 description 多半是英文且简短,看不出具体解决的问题。hotspot 使用 DSH 的模型(ctx.llm)为每个上榜项目生成 1–2 句中文简介:「它是什么 + 能解决什么问题」。

  • 异步生成、落盘缓存:/rank 先返回已有的简介,缺的在后台排队生成,界面每 60 秒轮询一次。
  • 按内容失效:缓存记录生成时的「官方简介 + 话题 + 语言」指纹,这些变化才重新生成。
  • 失败有冷却(默认 6 小时),不会反复重试失败项目。
  • 可以关闭:配置里 "summarize": false,或指定模型 "summaryModel": {"provider": "...", "model": "..."}。
  • 模型服务不可用时,只隐藏简介,其余功能正常。

简介会消耗模型额度(每条约 100 token 量级),结果永久缓存。

跨榜飙升榜

飙升榜不看任何查询,在所有被追踪的仓库里按窗口内的涨星量排序,并给出「星/天」速度。它能捞到各榜单之外的黑马。

  • 固定按每周一 00:00 更新,页签对它不起作用(界面上会置灰)。
  • 区间 = [上一个更新边界, 本边界]。
  • 只统计基线采样里已存在的仓库,新出现的仓库不计入速度。

安装与启用

官方桌面客户端(Electron)

dsh plugin --profile desktop add '<hotspot 所在目录的绝对路径>'

装完从系统托盘完全退出 DeepSeek Harness 再启动。

CLI Web 版

dsh plugin --profile web add '<hotspot 所在目录的绝对路径>'

路径要用绝对路径且指向含 package.json 的那一层,别多套一层同名目录。

配置

配置文件位于 $DSH_HOME/hotspot/config.json。基本配置示例:

{
  "schedule": {
    "sample": "day",
    "refreshMinutes": 0,
    "weekdays": [1],
    "monthDay": 1
  },
  "ranking": {
    "platformStars": 100000,
    "minRelevance": 50,
    "relevanceWeight": 0.05
  },
  "classify": true,
  "summarize": true,
  "summaryModel": {}
}
  • schedule.sample:抓数据频率,支持 day / week / month。
  • ranking.platformStars:平台级项目阈值,超过该值的仓库会被规则预筛剔除。
  • minRelevance:模型判定的最小相关性分数,低于该值的项目被剔除。
  • classify:是否启用模型相关性判定。
  • summarize:是否生成中文简介。
  • summaryModel:指定生成简介的模型,不填则跟随当前对话的模型。

如果需要更精细的权限控制,可以配置 GitHub token:

  1. 环境变量:设置 GITHUB_TOKEN 或 GH_TOKEN,然后重启 DSH。
  2. 配置文件:在 $DSH_HOME/hotspot/config.json 里写 "token": "ghp_xxx"。

界面会显示 token 是否生效。v0.4.0 起,默认每天只抓 7 次请求,未认证额度绰绰有余,token 不是必需的。

适用场景与注意

适合需要快速发现 DSH 生态中活跃小工具的用户,特别是:

  • 关注模型插件、Skill、MCP 服务的新进展
  • 希望通过星数变化发现高增长项目
  • 需要中文说明来理解项目用途

插件以当前 DSH 进程的权限运行。安装前建议检查源码与许可证,确保符合你的使用场景。

小结

hotspot 提供了一套完整的 GitHub 热榜解决方案:多周期榜单、可拖拽浮层、相关性筛选、中文简介、跨榜飙升榜。它把「看谁在涨、谁是新面孔、谁正在飙升」这件事变成一个独立的、可定制的面板,帮你从海量项目中快速定位有价值的工具。

  • 插件目录:https://www.skillhub.cn/plugins/zhikai0915-netizen/hotspot
  • GitHub:https://github.com/zhikai0915-netizen/hotspot
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜