前言¶
想快速知道 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,可确认的能力如下。
榜单抓取与筛选¶
- 时间范围:
daily(今日)、weekly(本周)、monthly(本月),默认daily。 - 编程语言:对应 GitHub Trending 的语言路径,例如
python、rust、javascript;不指定则使用全语言页。 - 口语/文档语言:通过
--spoken-language传入语言代码(如zh、en),映射为 Trending URL 的spoken_language_code参数。 - 数量:
--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 安装与优先源配置。
安装 github-trending¶
安装时必须用 --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,侧重「取数 + 解读」而非单纯搜索。
限制与注意:
- 页面结构依赖:解析逻辑针对 GitHub Trending HTML。若 GitHub 改版,可能出现空列表或字段缺失;脚本失败时会在 stderr 输出 JSON 格式的
error。 - 网络与合规:抓取受本机网络与 GitHub 可访问性影响;请遵守 GitHub 服务条款与合理访问频率。
- 分析边界:Implementation、Why Trending 等段落是 Agent 在约束下的推断,应与脚本中的原始描述区分;用户要纯 JSON 时不应混入散文。
- 商店数据:截至资料核对时,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