github-trending:在 Agent 里拉取并解读 GitHub Trending

前言

想快速知道 GitHub 今日、本周或本月在涨星的项目,常见做法是打开 github.com/trending 自己翻表,或写爬虫把 HTML 解析成列表。前者费时,后者要维护解析逻辑,还要在「榜单」和「为什么值得看」之间再花一轮整理。

下面介绍 SkillHub 上的 github-trending(坐标 @user_cea1fb81/github-trending-pro)。它把抓取 Trending 页、结构化输出和报告式分析写进 Agent 的 SKILL 工作流:用户用自然语言要热榜或趋势分析时,Agent 按技能说明调脚本取数,再按固定格式写可读报告,并约束不要编造星标、描述等字段。

这是什么

github-trending 是面向 coding Agent 的社区 Skill(来源:community,分类:data-analysis,版本 1.0.0)。发布者为 SkillHub 用户 user_cea1fb81(页面展示作者为「奔跑的脆皮肠」)。

技能定位在官方简介中写得很直接:当用户询问 GitHub Trending、热门仓库、按日/周/月榜单、按编程语言筛选、按文档口语(spoken language)筛选,或对热门项目做趋势分析时使用。SkillHub 标签标明 requires_api_key=false,不依赖第三方 API Key;数据来自对 GitHub Trending 公开页面的 HTTP 抓取与 HTML 解析。

核心功能

经核对技能包内的 SKILL.md 与 scripts/fetch_trending.py,可确认的能力如下。

榜单抓取与筛选

  1. 时间范围:daily(今日)、weekly(本周)、monthly(本月),默认 daily。
  2. 编程语言:对应 GitHub Trending 的语言路径,例如 python、rust、javascript;不指定则使用全语言页。
  3. 口语/文档语言:通过 --spoken-language 传入语言代码(如 zh、en),映射为 Trending URL 的 spoken_language_code 参数。
  4. 数量:--limit 控制返回仓库数,技能说明默认倾向 Top 10。

抓取目标 URL 形如 https://github.com/trending 或 https://github.com/trending/{language}?since=...,由脚本 build_url 拼装。

结构化输出

脚本默认输出 JSON,包含报告元数据(date、since、language、spoken_language、url、updated_at)和仓库列表。每条仓库兼有兼容字段(rank、repo、url、description、language、total_stars、forks、current_period_stars)与便于分析的扩展字段(full_name、author、summary、primary_lang 等)。

用户明确要求表格或导出时,可使用 --format markdown 得到带 Overview 表的 Markdown。

分析报告(Agent 层)

技能要求 Agent 不只复制榜单:在 JSON 事实基础上写 Feature / Functionality / Implementation / Why Trending,并做主题归纳(如 AI agent、开发者工具、基础设施等)。分析须基于脚本输出与公开描述,缺信息时写明「未说明」或省略,不得虚构星标、URL 或作者信息。

安装与启用

安装 SkillHub CLI

若本机尚未安装 skillhub,可先按官方安装文档检查或安装:

command -v skillhub && skillhub --version

未安装时,完整安装(CLI + 默认 Skill)示例:

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

说明见 SkillHub 安装与优先源配置。

安装时必须用 --dir 指向当前 Agent 的 skills 目录,否则技能可能落在当前目录的 ./skills/ 而未被 Agent 加载。官方搜索给出的安装命令为:

skillhub install github-trending-pro --namespace user_cea1fb81 --dir <skills 目录>

常见路径(来自 SkillHub 安装文档):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或项目下的 .agents/skills/

也可在对话中让 AI 按 https://skillhub.cn/install/skillhub.md 安装 @user_cea1fb81/github-trending-pro。

安装完成后,按你所用客户端的要求重启或刷新 Agent,使技能被发现。

运行环境

抓取脚本为 Python 3,仅使用标准库(urllib、html.parser 等),无需额外 pip 依赖。执行时需能访问 github.com(脚本请求头含 User-Agent: codex-github-trending-skill/1.0)。

典型用法

在对话中触发

用自然语言描述需求即可,与技能 description 对齐,例如:

  • 「列出今天 GitHub Trending 前 10,并分析 AI 相关主题。」
  • 「本周 Rust 语言 Trending 有哪些项目?」
  • 「按月榜看 JavaScript 热门仓库,文档语言偏中文的。」

Agent 应推断 since、language、spoken-language,在技能目录下执行 scripts/fetch_trending.py,默认用 JSON 做分析;仅当用户要原始表时再选 Markdown。

直接运行脚本(可复现)

在已安装的技能目录内执行(路径以你本机安装位置为准):

python3 scripts/fetch_trending.py --since daily --limit 10

按语言与周期筛选,并输出 JSON:

python3 scripts/fetch_trending.py --language python --since weekly --limit 10 --format json

带口语筛选的示例(技能文档中的命令):

python3 scripts/fetch_trending.py --language rust --since monthly --spoken-language zh --limit 10

需要 Markdown 概览表时:

python3 scripts/fetch_trending.py --language javascript --since daily --format markdown

报告结构

人工可读报告时,技能要求先给出标题、日期、范围、语言与口语筛选,再附固定表头的 Overview,例如:

| # | Repo | Total Stars | Today | Lang | Description |
|---|------|-------------|-------|------|-------------|

周榜、月榜可将「Today」列名改为 This Week 或 This Month(除非用户明确要求保留 Today)。各仓库详情按技能模板写 URL、星标、增幅、语言与分段分析,最后附简短趋势总结。

适用场景与注意

适合谁:需要定期扫 GitHub 热榜、按语言或文档语言收窄范围、并希望 Agent 在事实数据上写一层归纳的开发者或技术写作者;分类为 data-analysis,侧重「取数 + 解读」而非单纯搜索。

限制与注意:

  1. 页面结构依赖:解析逻辑针对 GitHub Trending HTML。若 GitHub 改版,可能出现空列表或字段缺失;脚本失败时会在 stderr 输出 JSON 格式的 error。
  2. 网络与合规:抓取受本机网络与 GitHub 可访问性影响;请遵守 GitHub 服务条款与合理访问频率。
  3. 分析边界:Implementation、Why Trending 等段落是 Agent 在约束下的推断,应与脚本中的原始描述区分;用户要纯 JSON 时不应混入散文。
  4. 商店数据:截至资料核对时,SkillHub 显示评分 100000、下载 974、安装 1;以 技能页 实时数据为准。

结尾

github-trending 把 GitHub Trending 的筛选维度(日/周/月、语言、spoken language)和一份可校验的 JSON 榜单,接到 Agent 的报告流程里,减少手工打开网页和抄表的时间。若你要在 Cursor 等环境里固定使用,按上文 skillhub install 装到对应 skills 目录即可。

官方入口:

  • SkillHub 技能页:https://www.skillhub.cn/skills/user_cea1fb81/github-trending-pro
  • API 坐标页:https://api.skillhub.cn/user_cea1fb81/github-trending-pro
羽毛球分组比赛记分
小程序二维码

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

Xiaoye