前言¶
想快速知道 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