前言¶
做智能體開發的同行經常要回答同一個問題:最近一週哪些項目在漲星。傳統做法是打開 GitHub Trending 頁面、再手動翻 star 歷史,數據散在幾個頁面裏,周和月的口徑也不統一。dsh-github-hot 把這個動作收進 DeepSeek Harness(DSH)側欄:日、周、月三榜切換,展示每期漲星 TOP20,並把星數曲線、項目簡介、多項目對比畫在同一個界面裏。它由 chiinsight 維護,分類爲聯網工具,面向 DSH 插件生態開發者。
這是什麼¶
一句話定位:給 DeepSeek Harness 裝的 GitHub 漲星榜插件,數據來自 Hysen Labs 的公開頁面,不需要 API key。
- 維護者:chiinsight
- 版本:0.1.5(
package.json) - 許可證:MIT
- 運行要求:Node.js >= 18.0.0
- 插件形態:DSH 插件,含 web 側前端(React 18.3.1),安裝後左側欄出現「GitHub Hot」入口
它解決的是「榜單 + 星數趨勢 + 項目簡介」三者割裂的問題,把可視化做進 DSH,而不是再開一個網頁標籤。
功能與視圖¶
插件分三種視圖,均爲一次性取數後本地交互,無需反覆刷新頁面。
1、三榜切換。頂部一鍵切日榜、周榜、月榜,每個榜單展示漲星 TOP20。日榜與月榜走 CSV 數據,周榜走 HTML 解析。
2、榜單視圖。每個項目一張卡片,包含漲星數、名次徽章、語言與許可證標籤,以及漲星曲線縮略圖。卡片流而非表格,適合快速掃完 20 項。
3、詳情。點開任意項目,展示項目簡介、星數歷史曲線、期間漲星、起點星數、最新星數。缺簡介時顯示「暫無簡介」,不使用模型生成內容頂替原文。
4、統計視圖。日榜使用頭像點圖,每個項目一個點,按當日精確漲星數決定高低,不連線;周榜與月榜先用橫條比較榜單原始漲星數(默認前 5 項,可展開全部),再對比周期內的採樣曲線。縱軸隨所選項目重算:同量級使用線性,非零末端漲幅的絕對值相差超過 10 倍時切換爲對稱對數。末端頭像自動避讓,用引導線連接真實數據點;支持前 5、前 10、全選、清空。
5、雙主題。深色(融入 DSH)與紙感貼紙風,右上角切換。
數據來源與準確性¶
榜單數據來自 Hysen Labs 公開頁面,數據按 CC BY 4.0 授權使用,界面底部與詳情頁均保留署名與外鏈。取數方式按內容分四種:
日榜 / 月榜 /data/star-growth-24h.csv 、/data/star-growth-30d.csv(CSV)
周榜 TOP10 /weekly/{YYYY-MM-DD}(HTML 解析)
星數曲線 /chart/{slug}.svg(SVG 路徑解析)
項目簡介 /projects/{slug}(HTML 解析)
插件自身對取數結果有幾條硬約束,寫插件時值得參考:
1、取數失敗不編造。某榜單取不到時明確顯示失敗原因與快照時間,不用舊數據冒充新數據。
2、解析失敗即報錯。周榜 HTML 或曲線 SVG 無法解析時整段標記失敗,不做模糊推斷。
3、周榜依賴頁面結構。上游改版可能導致周榜失效,此時更新 parseWeeklyHtml 即可;日榜與月榜走 CSV,穩定性更高。
4、曲線與榜單口徑分開。曲線數值由來源 SVG 還原,屬於估算;每條線從期內首個可用採樣日起算,圖例顯示起始日期,少於兩個有效採樣點不畫線。精確的本期漲星以上方橫條數值爲準。
5、英文模式不調用翻譯模型。榜單與項目詳情直接顯示原文;中文模式使用宿主默認模型補譯文。
安裝與啓用¶
官方安裝命令走 DSH 插件安裝器,--profile desktop 指定桌面端 profile:
dsh plugin --profile desktop add dsh-github-hot
也可以從本地目錄安裝,適合改動後又想在本地驗證的情況:
dsh plugin --profile desktop add /path/to/dsh-github-hot
安裝後重啓 DeepSeek Harness,左側欄出現「GitHub Hot」入口。插件入口與註冊字段在 package.json 的 dsh 字段中聲明:
{
"dsh": {
"bundle": { "patch": "./cordis.patch.yml" },
"client": { "platform": "web", "immediately": true, "inject": [] }
}
}
緩存與請求頻率¶
上游數據每天更新一次,插件按自然日而非分鐘設計緩存,避免無意義的出網請求:
榜單 磁盤 $DSH_HOME/dsh-github-hot/cache.json,跨自然日失效
項目詳情與曲線 同上,跨自然日失效
簡介中譯 磁盤 zh.json,原文變更時才重譯
項目頭像 磁盤 avatars/(上限 400),7 天
前端詳情 瀏覽器 localStorage,跨自然日失效
界面不做分鐘級輪詢,僅在頁面跨過零點時靜默刷新。出網請求按 host 分隊列、限制併發,同一 URL 在途去重。
典型用法¶
裝好後無需配置 API key,直接在 DSH 側欄操作即可:
1、在日榜瀏覽當日漲星 TOP20,需要更長週期時切周榜或月榜。
2、對某個項目點開詳情,看簡介、期間漲星與星數曲線,判斷它是不是短期爆量而非長期增長。
3、在統計視圖裏勾選多個項目,對比周期內的採樣曲線;末段漲幅相差較大時縱軸會自動切對稱對數,避免小漲幅項目被壓成一條直線。
4、關心穩定增長而非單日爆量時,以橫條的原始漲星數爲準,曲線只作趨勢參考。
若要改動解析邏輯,本地跑測試驗證:
npm ci # 安裝測試所需的 React 開發依賴
npm test # 運行全部測試(部分用例會訪問上游站點)
測試覆蓋 parsers、detail、client、render、visual、baseline、avatar、cache、uicache、persist、smooth、timezone、lang、concurrency、hardening、resilience、interactions、routes 等面,其中解析類用例直接對線上的真實響應做校驗。
適用場景與注意¶
適合三類人:做 DSH 插件生態的開發者,想把 GitHub 漲星跟蹤放進工作流而非另開網頁;需要快速評估某批開源項目真實漲星趨勢的人;以及想學習「CSV + HTML + SVG 混合解析 + 按自然日緩存 + 取數失敗不兜底」這套實現的插件作者。
需要注意兩點:
1、插件以當前 DSH 進程的權限運行,安裝前應先讀源碼、確認許可證(MIT)與 cordis.patch.yml 補丁內容,確認與宿主版本兼容後再啓用。
2、周榜依賴上游 HTML 結構,上游改版會失效;此時屬預期行爲,按 README 更新 parseWeeklyHtml 即可。曲線數值是按 SVG 還原的估算,不要當作精確 star 計數使用。
結尾¶
dsh-github-hot 的價值在把漲星榜單、星數曲線、項目簡介收到 DSH 側欄一個入口裏,並把「取不到數據就報錯、不兜底編造」當作明確的行爲約定。目錄頁:https://www.skillhub.cn/plugins/chiinsight/dsh-github-hot;源碼:https://github.com/chiinsight/dsh-github-hot。