GitHub Hot Board
GitHub hot-repo leaderboards: snapshots, movers, rank history. Read-only JSON, hourly batches.
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
claude mcp add --transport http github-hot-board 'https://git.vaiox.xyz/api/mcp'
{
"mcpServers": {
"github-hot-board": {
"type": "http",
"url": "https://git.vaiox.xyz/api/mcp"
}
}
}
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
المحتويات
GitHub 火线榜 · GitHub Hot Board
GitHub 排行榜 · 趋势榜 · 飙升榜(周榜 / 月榜 / 总榜 / 黑马 / 里程碑),中英文双语界面,每小时自动更新:https://git.vaiox.xyz
十个视角的 GitHub 开源热榜。数据只有公开数据一种来源,口径贴在每一页上,中英文双语,站点刷新每 60 秒一次。
本周飙升 Top 10 · 打开完整榜单 →
| # | 项目 | 累计 Star | 本周新增 Star |
|---|---|---|---|
| 1 | morluto/rea | 373.3k | 88.2k |
| 2 | anthropics/claude-plugins-official | 44.1k | 4.3k |
| 3 | ruvnet/ruflo | 78.8k | 3.3k |
| 4 | android/skills | 9.4k | 1.5k |
| 5 | anomalyco/opencode | 220.7k | 6.8k |
| 6 | stablyai/orca | 103.9k | 9.5k |
| 7 | cursor/plugins | 13.8k | 1.9k |
| 8 | akitaonrails/ai-memory | 13.1k | 3.4k |
| 9 | HKUDS/CLI-Anything | 56.6k | 3.3k |
| 10 | Comfy-Org/ComfyUI | 142.4k | 4.5k |
本月飙升 Top 10 · 打开完整榜单 →
| # | 项目 | 累计 Star | 本月新增 Star |
|---|---|---|---|
| 1 | debpalash/VoiceStudio | 83.4k | 48.3k |
| 2 | heygen-com/hyperframes | 70.8k | 18.3k |
| 3 | paperclipai/paperclip | 106.6k | 25.5k |
| 4 | cloudflare/security-audit-skill | 42.2k | 20.6k |
| 5 | vectorize-io/hindsight | 53.2k | 28.1k |
| 6 | NVIDIA/OpenShell | 18.8k | 9.7k |
| 7 | anthropics/knowledge-work-plugins | 32.2k | 6.6k |
| 8 | mksglu/context-mode | 32.0k | 8.1k |
| 9 | cursor/plugins | 13.8k | 5.3k |
| 10 | NationalSecurityAgency/ghidra | 93.7k | 14.2k |
累计 Star Top 10 · 打开完整榜单 →
| # | 项目 | 累计 Star | 新增 |
|---|---|---|---|
| 1 | codecrafters-io/build-your-own-x | 555.7k | — |
| 2 | sindresorhus/awesome | 523.7k | — |
| 3 | public-apis/public-apis | 491.7k | — |
| 4 | freeCodeCamp/freeCodeCamp | 457.8k | — |
| 5 | EbookFoundation/free-programming-books | 399.9k | — |
| 6 | openclaw/openclaw | 392.9k | — |
| 7 | donnemartin/system-design-primer | 375.3k | — |
| 8 | morluto/rea | 373.4k | — |
| 9 | nilbuild/developer-roadmap | 370.2k | — |
| 10 | jwasham/coding-interview-university | 363.3k | — |
先说三件不掺假的事:
- 不伪造数据。榜单页面写的是哪种口径,数出来就是哪种口径;口径失效时页面明示,不悄悄换数。
- 不碰付费数据。只用 GitHub Search API 和官方 trending 页,不需要任何特殊权限。
- 不装没有的历史。往日榜从 2026-10-18 起积累,之前的日期不提供。
十个榜
| # | 榜单 | 来源 | 口径 |
|---|---|---|---|
| 1 | 总榜 · 史上最强 | Search API | 累计 Star 降序(排除 fork) |
| 2 | 周榜 · 本周点火 | 官方 Trending 周页 | 官方顺序 + 官方标注的本周新增星数 |
| 3 | 月榜 · 本月风潮 | 官方 Trending 月页 | 同上,月窗口 |
| 4 | 年度新星榜 | Search API | 今年创建,按累计 Star 排 |
| 5 | 潜力榜 · 90 天斜率 | Search API | 近 90 天创建,按 星/天 均速 |
| 6 | 黑马榜 · 被雪藏候选 | Search API | 潜力池里 Star 还没过 1500 的切片 |
| 7 | 被忽视榜 · 活跃冷清 | Search API | 近 30 天持续 push、Star 100–800,升序 |
| 8 | 黑红榜 · 争议指数 | Search API 衍生 | (Fork×2 + Issue) ÷ Star,取极值。结构化启发式,不是情感分析 |
| 9 | Fork 之王 | Search API | 累计 Fork 降序 |
| 10 | 实时里程碑 · 破星直播 | Search API × 4 | 1k / 10k / 50k / 100k 阈值 ±80 星的冲刺者,前端 60 秒轮询,跨线撒彩带 |
总榜、周榜、月榜有语言分榜(javascript / typescript / python / go / rust / java / c / c++),URL 形如 /zh/boards/weekly/python。c++ 在路径里写成 /cpp,因为 + 进路径段会在路由匹配层直接死掉——查询时仍用 GitHub 原生语言名,旧链接由 proxy.ts 在路由前 308 归一。
站点语言(16 种)
/en /zh /zh-TW /ja /ko /de /fr /es /pt /it /ru /uk /pl /tr /vi /id,根路径默认进英文(带 Accept-Language 时按浏览器语言挑)。全部 UI 文案逐语种成套(app/[lang]/dict/),SEO 每页带全语 hreflang + canonical,sitemap 覆盖 16 语 × 全榜。
行描述与抽屉 README 按站点语言取仓库自身的本地化版本(切换器解析 + 命名候选两级),读不到就诚实回退仓库原文。描述缓存在 repo_desc 表(仓库粒度),两条填充通道:浏览行为驱动(访客打开哪个语言就近补上,60 秒轮询自动送达)与同步期主动收割(每轮同步尾部按热度序扫描全部榜头仓库,一次拿齐 15 种语言,探测结论 30 天免重试;站点读取路径依旧只查库)。
The site ships in 16 languages (default English). UI copy is fully translated per locale; row descriptions and the in-drawer README follow the repo's own localized files when available, falling back to the original text. Descriptions are cached per repo (
repo_desc) and filled two ways — on demand by visitors, and proactively at the tail of every sync run (one sweep per repo covers all 15 locales; resolved probes are skipped for 30 days). The serving path always reads from the database only.
数据架构
一句话:卖货的通道不进货。
GitHub ──(只有同步任务碰)──> Neon Postgres ──(站点只 SELECT)──> 访客
- 同步任务(
lib/sync.ts)顺序抓全部 34 个键(10 榜 + 语言分面),写两张表:board_head:每个键的最新一拍,站点读它。插新的,前拍自然被覆盖。board_snapshots:逐仓逐名次的明细行,本次同步是历史事实的存档。
- 触发方式:
npm run sync(本地,需站点在跑)、POST /api/sync(带 CRON_SECRET)、 GitHub Actions 每 30 分钟一轮(.github/workflows/sync.yml)。 - 站点渲染路径对 GitHub 零请求。降级链:数据库 → 磁盘快照(本地
.data/,重建时不打 GitHub)→ 现场拉取。同步停太久时数据会旧,但不会假。 - Trending 页被风控挡住时,周榜/月榜内部自行换到 Search 口径补命,页面上如实标注,不糊弄。
往日榜
每次同步把完整榜单拍进 board_snapshots,所以任意一天切任意名字都能回看:
/zh/history/overall/2026-10-19
入口在 footer(往日榜 → 总榜)。历史拍只存排名、仓库和数字,不存实时简介;数据保留 SNAPSHOT_RETENTION_DAYS(默认 60 天)。页面 noindex,属工具页,不在 sitemap 里占道。
本地跑起来
npm install
cp .env.example .env.local
# 填 GITHUB_TOKEN / NEXT_PUBLIC_SITE_URL / DATABASE_URL(见下表)
npm run dev
| 环境变量 | 必填? | 说明 |
|---|---|---|
GITHUB_TOKENS | 可选 | 多账号池:GITHUB_TOKENS=ghp_a,ghp_b,ghp_c(逗号/空白分隔),一枚烧完自动换下一枚,取数节奏随池子规模等比放宽;不填则回落单枚 GITHUB_TOKEN,都没有走匿名降速 |
GITHUB_TOKEN | 建议填 | classic PAT(不勾任何权限)或多枚时令其作为单枚兜底。Search API 从 60 次/时升到 5000 次/时 |
NEXT_PUBLIC_SITE_URL | 部署时填 | canonical / sitemap / OG 用的最终域名 |
DATABASE_URL | 部署时填 | Neon Postgres 连接串。表首次写入时自动建 |
CRON_SECRET | 可选 | /api/sync /api/refresh 的门锁;?only=榜名 单榜重灌、?boards=0 只跑描述收割 |
本地调试开关:GHB_FILL_DEBUG=1 看读路(数据库命中还是水合),GHB_SQL_DEBUG=1 看发往库的 SQL。
部署
- 在 Neon 建个项目,拿 Pooled connection 连接串。
- Vercel 导入仓库,配四个环境变量(上表 +
CRON_SECRET自定义一个长随机串)。 - 仓库 Actions secrets 配
SYNC_URL(你的域名/api/sync)和CRON_SECRET,30 分钟一次的同步就转起来了。 https://域名/robots.txt里已有 sitemap 指向;搜索引擎控制台提交一次即可。
自托管也成立:npm run build && npm run start,数据面只要求能连上 Postgres,对Host/Vercel 无偏好。
诊断与运维
npm run sync # 本地手动拉一轮(30 榜,~4 分钟,一次重试)
curl https://域名/api/dbcheck # 库状态:head 键数、明细行数
gh run watch # 看 Actions 同步跑完没有
同步是顺序慢跑(为控边界与限流),一轮约 4 分钟;30 分钟一次绰绰有余。明细行过 60 天自动清,board_head 只留最新,不需要人手干预。
市场分析(可选,与站点无关)
站点只服务榜单本身;历史维度的深挖走独立脚本 scripts/market.mjs,数据来自 GH Archive 公共镜像(约 10% 抽样,看形状用):
node scripts/market.mjs repo vercel/next.js --days 60 # 单仓库爆发日/拐点(自动兼容改名)
node scripts/market.mjs track agent --months 12 # 赛道趋势(新星数/活跃仓库数)
node scripts/market.mjs risers --days 30 --limit 15 # 涨星火箭榜
顺带一个探明的平台事实(2026-10):GitHub 已把 REST stargazers/subscribers 明细端点平台级撤下,逐星时间线只存在于事件归档里。仓库改名后归档仍按旧名存,查询需新旧名都算——repo 命令已处理。
如何新增一个榜
lib/boards.ts:写一个getXxxData(),在getBoardData分发,BOARD_META登记排行与排序语义。app/[lang]/dictionaries.ts:补BoardCopy(名称 / 口径 / FAQ,中英都要)。- 想有语言分面就在
BOARD_META开facets。 - 路由、导航、footer、sitemap 随
BOARD_ORDER自动生效,不手改。
MCP server(agent-native 数据口)
榜单数据以 MCP 协议直供 agent,不依赖爬虫路径:
- URL:
https://git.vaiox.xyz/api/mcp(Streamable HTTP,无状态 JSON,最新 protocolVersion 2026-07-28,老客户端自动降档) - 工具(只读 + 结构化输出):
list_boards/get_board/get_board_movers/get_repo/search_library(库内关键词搜索)/get_repo_history(仓库级小时名次 + 星数时间线,自有无一物快照序列独供,别的服务拿不出这份数) - 全部零 GitHub 配额消耗;限流 60 次/分钟/IP;数据一小时一拍,别连点
- 接入示例:Claude Code
claude mcp add --transport http github-hot-board https://git.vaiox.xyz/api/mcp
已知限制,如实说
- Trending 数字在缓存期内(同步后 ≤30 分钟)可能与官方页面存在偏差。
- Search API 单查询 1000 条上限;总榜展示 Top 300,头部故事全覆盖。
- 黑红榜是结构化启发式(Fork/Issue 比例),页面已明示,请勿读成"情感评分"。
- 里程碑跨线检测发生在页面停留期间,服务器不留历史状态;想看"历史上谁跨过 1k",等往日榜攒几天再回看。
- 往日榜当前只存基准口径(全语言),语言分面的历史拍在库里,页面上还没有入口。
- 本项目与 GitHub 无官方关系,榜单仅为研究参考。
الأسئلة الشائعة
ما هو GitHub Hot Board؟
GitHub hot-repo leaderboards: snapshots, movers, rank history. Read-only JSON, hourly batches.
كيف أثبّت GitHub Hot Board؟
يعمل كخادم بعيد. في Claude Code: claude mcp add --transport http github-hot-board 'https://git.vaiox.xyz/api/mcp'. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج GitHub Hot Board إلى مفتاح API؟
لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.
هل GitHub Hot Board مفتوح المصدر؟
شيفرته علنية على GitHub، لكن المستودع لا يعلن ترخيصًا قياسيًا.
من يصون GitHub Hot Board؟
ينشره JKWY01. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.