git-ai-tracker
GitHub AI repo tracker: star ratings, growth leaderboard, Markdown reports and web dashboard.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 31, 2026
- Updated
- Aug 31, 2026
Introduction
🛰️ git-ai-tracker · Git AI 星级项目追踪
一个 零依赖(仅需 Node.js ≥ 18)的本地插件/工具:持续追踪 GitHub 上以下六大方向最火、效果最好的开源项目,按「热度 + 增速 + 活跃度 + 社区」计算 1~5 星评分,并提供增速榜、Markdown 报告和网页仪表盘。
| 方向 | id | 内置搜索词 |
|---|---|---|
| 🤖 AI Agent 智能体 | agent | topic:ai-agents、ai agent framework |
| 📚 RAG 检索增强 | rag | topic:rag、retrieval augmented generation |
| 📄 文档解析 | docparse | topic:document-parsing、topic:pdf、topic:ocr |
| 🧩 多智能体协作 | multiagent | topic:multi-agent、multi-agent framework |
| 🕸️ 知识图谱 | kg | topic:knowledge-graph、knowledge graph llm |
| 🕷️ 网页爬取 | crawler | topic:web-crawler、topic:web-scraping |
内置 27 个保底观察名单(langchain、autogen、dify、ragflow、MinerU、docling、MetaGPT、graphrag、LightRAG、crawl4ai、firecrawl……),即使搜索相关性有偏差也能保证明星项目入榜。
界面与简介
- 浅色高对比主题(默认),右上角 🌙/☀️ 一键切换深色模式(记忆偏好)
- 内容区全宽布局,大字号、强对比,表格可读性优先
- 所有项目简介均为中文:知名项目使用手工中文词典(
src/i18n.js),新项目按主语言 + 话题词典自动生成中文兜底简介
快速开始
node bin/git-ai-tracker.js doctor # 体检:Node 版本/网络/限额/数据
node bin/git-ai-tracker.js track # 首次追踪(未认证约 1.5~2 分钟)
node bin/git-ai-tracker.js dashboard --open # 生成并打开网页仪表盘
npm run serve # 或启动实时仪表盘 http://127.0.0.1:3210
也可以 npm link(Windows 下 npm link 需管理员)后全局使用 git-ai-tracker 命令。
⭐ 增速、新星徽章、趋势曲线需要至少两天的快照才会出现——第一天只有热度榜,从第二天起自动解锁。
命令一览
| 命令 | 说明 |
|---|---|
track | 拉取 GitHub 数据生成当日快照。参数:--category agent,rag 只跑指定类;--min-stars 1000 门槛;--quick 跳过观察名单 |
list | 终端查看最新榜单。--category / --sort stars|growth|week|month|score|updated(week=近7天窗口日均增速,month=近30天窗口日均增速)/ --limit 30 |
report | 生成 Markdown 报告到 reports/report-日期.md(--stdout 直接打印,--demo 用演示数据) |
dashboard | 生成单文件仪表盘 reports/dashboard.html(离线可用,--open 自动打开) |
serve | 本地实时服务:GET / 仪表盘、GET /api/data 数据、POST /api/refresh 触发追踪;--demo 用演示数据预览;页面上有一键追踪 + 10 分钟自动刷新开关 |
history owner/repo | 查看某项目的每日星数快照曲线 |
add owner/repo --category agent | 加入观察名单(--category 可多选逗号分隔) |
remove owner/repo | 移出观察名单 |
doctor | 体检:Node / 网络 / GitHub 限额 / 数据状态 |
星级评分模型
评分(0~100) = 热度0.26 + 增速0.26 + 动量0.12 + 活跃度0.20 + 社区0.10 + 声量0.06 (有历史数据时)
评分(0~100) = 其余分量按占比折算 (首次追踪,无增速数据时)
热度 = log10(★+1)/6 × 年龄衰减 (100 万星封顶;>1 年每多 1 年 -12%,下限 55%——防止老项目靠存量霸榜)
增速 = 日均涨星/100 (与上一个快照的真实差值,日均 100 星封顶)
另计算「近7天窗口日均(周均)」与「近30天窗口日均(月均)」,用于排序与展示
动量 = 相对增速 = 日均涨星 ÷ (星数/1000 × 10 星/天的体量基准)
活跃度 = 7 天内有推送=满分,线性衰减至 180 天归零
社区 = log10(fork+1)/4 (1 万 fork 封顶)
声量 = 互联网热度:Hacker News 声量(0.6) + 微信公众号文章量(0.4),尽力而为、失败按 0 分
星级: ≥85 → 5★ · ≥70 → 4★ · ≥55 → 3★ · ≥40 → 2★ · 其余 1★
徽章: 🚀 新星(创建≤1年且日均≥5星)· 🌲 常青(≥30k★)· 🆕 本次新上榜
增速完全来自本地每日快照的真实差值,不是估算——所以坚持每天跑一次 track,数据越攒越准。
声量与动量两个分量共同保证「正在被大家讨论、涨星快的项目」优先于「老项目吃存量」。
数据与配置
data/snapshots/2026-02-07.json 每天一个快照(同日重跑覆盖当天文件)
reports/report-*.md Markdown 报告
reports/dashboard.html 单文件仪表盘
config/categories.json (可选)覆盖内置 6 大类的名称/搜索词/门槛
config/watchlist.json (可选)覆盖内置保底观察名单
token.txt (可选)GitHub Personal Access Token,已被 .gitignore
GitHub Token(强烈建议配置):在 GitHub → Settings → Developer settings → Personal access tokens 生成一个不勾选任何权限的 token(公开数据只读),然后任选其一:
- 项目根目录创建
token.txt,把 token 粘贴进去(已 gitignore,不会提交); - 或设置环境变量
set GITHUB_TOKEN=ghp_xxx。
| search | core | |
|---|---|---|
| 未认证 | 10 次/分钟 | 60 次/小时 |
| 带 token | 30 次/分钟 | 5000 次/小时 |
一次完整 track ≈ 12 次 search + ~27 次 core(观察名单有跨类别缓存去重)。
每天自动追踪(已配置)
本机已注册 Windows 计划任务 git-ai-tracker-daily:每天 08:30 自动运行 track 并把日志写入 data/track.log。
# 查看 / 手动运行 / 删除
schtasks /query /tn git-ai-tracker-daily /fo list
schtasks /run /tn git-ai-tracker-daily
schtasks /delete /tn git-ai-tracker-daily /f
# 重建(注意替换为你的项目路径)
schtasks /create /tn "git-ai-tracker-daily" /tr "cmd /c cd /d E:\work\git星级项目追踪 && node bin\git-ai-tracker.js track >> data\track.log 2>&1" /sc daily /st 08:30 /f
计划任务为「仅当前用户登录时运行」模式;如需开机后台自动跑(不登录也运行),把任务改为 SYSTEM 账户或在任务计划程序中调整。
其他平台 crontab:
30 8 * * * cd /path/to/git-ai-tracker && node bin/git-ai-tracker.js track >> track.log 2>&1
常见问题
- 第一次跑为什么没有增速/趋势? 增速需要两天快照对比,第二天就有了。
- 搜索被限流(HTTP 403/429)? 未认证 search 限额 10 次/分钟,工具已自动节流+退避;配置 token 后即可解除。
- 公司内网/代理环境? Node 24+ 可设置
NODE_USE_ENV_PROXY=1并配置HTTPS_PROXY环境变量。 - 想改追踪方向/搜索词? 拷贝
src/defaults.js里的结构,创建config/categories.json覆盖即可。
目录结构
bin/git-ai-tracker.js CLI 入口
src/cli.js 命令分发
src/track.js 追踪编排(搜索+观察名单+过滤+评分+存快照)
src/github.js GitHub API 客户端(节流/限流退避/重试)
src/score.js 星级评分模型
src/store.js 快照存储与历史读取
src/render.js 终端表格 + Markdown 报告
src/dashboard.js 仪表盘生成器
src/dashboard/template.html 仪表盘模板(内嵌 CSS/JS,零 CDN)
src/serve.js 本地实时服务
src/fixture.js 演示数据(--demo 预览用)
src/dsh/ DSH 插件半身(inject/apply + 五工具定义)
scripts/smoke-dsh.mjs 插件冒烟测试
🔌 DeepSeek Harness 插件
本项目同时是一个 DSH 插件包(package.json 内含 dsh.bundle 清单 + 根目录 cordis.patch.yml)。装进 DeepSeek Harness 后,Agent 在对话里可以直接调用五个工具,无需敲命令行:
| 工具 | 说明 |
|---|---|
git_ai_status | 数据状态:快照天数、最新快照、入榜项目数(只读本地,不联网) |
git_ai_list | 最新榜单:category / sort(score|stars|growth|updated)/ limit |
git_ai_report | 生成 Markdown 报告(写入 reports/,返回全文;demo 用演示数据) |
git_ai_dashboard | 生成单文件网页仪表盘(离线可用;demo 用演示数据) |
git_ai_track | 拉取 GitHub 数据生成今日快照(联网 + 写盘,默认走宿主审批门) |
安装(DSH web profile):
dsh plugin --profile web add wyb587285-dot/git-ai-tracker # 从 GitHub 安装
# 或发布 npm 后:dsh plugin --profile web add git-ai-tracker
配置(可选,在你的 profile cordis.patch.yml 中按 id 覆盖整个 config):
- id: git-ai-tracker
name: 'git-ai-tracker'
config:
writeApproval: false # 关闭 git_ai_track 执行前审批(默认 true,自行承担风险)
插件入口在 src/dsh/(inject: ['tools'] + apply(ctx, config)),冒烟测试:node scripts/smoke-dsh.mjs。CLI 用法与插件互不影响。