开源一个能自动发现和分析 GitHub 仓库的 AI Skill 与全栈应用
大家好,我是汉堡🍔。
今天来聊一个很有意思的话题——同一个功能,用两种完全不同的方式实现,会是什么体验?
事情的起因是这样的:我在懒猫搬砖做副业的时候,经常需要去 GitHub 上找适合移植的开源项目。手动翻实在太累了,于是我就想——能不能写个工具自动帮我爬、帮我判断?
说干就干。但有趣的是,我前后做了两个版本:一个叫 GitHub Repo Crawler,是个 AI Agent Skill;另一个叫 RepoRadar,是个完整的全栈应用。
功能核心是一样的——爬 GitHub 仓库、分析能不能用、推送到飞书。但形态天差地别。下面分别聊聊它们。
博客文章链接
GitHub Repo Crawler:把能力装进 AI Agent 的口袋
仓库地址:https://github.com/dnwwdwd/github-repo-crawler
它是什么?
简单说,它是一个 AI Agent Skill——给 Claude Code、opencode、Codex 这类 AI 编程助手用的「插件」。
如果你用过 Claude Code 的 Skill 机制,就很好理解:它就是一个 SKILL.md 文件,告诉 AI「你现在有了爬取 GitHub 仓库的能力,遇到相关任务就自动调用」。
怎么用?
不需要部署,不需要启动服务。你只需要把这个 Skill 装到你的 AI Agent 里,然后在对话里直接说:
「帮我搜一下最近一周 GitHub 上 Star 增长最快的 Python 开源项目」 「看看这个仓库适不适合移植到懒猫微服」
AI 就会自动激活这个 Skill,调用 GitHub API 去搜索、分析,然后把结果吐给你。
适合谁?
| 场景 | 说明 |
|---|---|
| 🧑💻 AI 重度用户 | 已经习惯了在 Claude Code / Codex 里干活的人,加个 Skill 就能用 |
| ⚡ 临时需求 | 偶尔想搜一下 GitHub 仓库,不想专门跑个应用 |
| 🔧 轻量级 | 不需要持久化数据、不需要后台定时任务,用完即走 |
产物:一次对话 + 即时结果。
RepoRadar:一个完整的 GitHub 仓库监测系统
仓库地址:https://github.com/dnwwdwd/repo-radar
它是什么?
RepoRadar 是一个完整的全栈 Web 应用,不只是「搜一下」,而是「持续监测」。
技术栈一览:
| 层级 | 技术 |
|---|---|
| 后端 | Python FastAPI |
| 前端 | React + Vite + TypeScript |
| 数据库 | SQLite |
| 调度 | APScheduler 定时任务 |
| 通知 | 飞书 SDK(即时推送 + 每日汇总) |
| AI 分析 | Agent ReAct 模式分析仓库质量 |
| 部署 | 单容器 Docker,一键跑起来 |
它做了什么?
RepoRadar 的完整工作流是这样的:
▼plaintext复制代码GitHub Search 抓取 → 规则过滤 → 去重入库 → Agent 分析 → 飞书推送
并且这套流程是自动定时跑的,不需要人盯着。
具体来说,v1 版本冻结了以下功能:
- ✅ GitHub Search 抓取(按关键词、语言、Star 数等维度搜索)
- ✅ 规则过滤 + 去重 + 入库
- ✅ Token 降级与失效自动暂停
- ✅ Agent 智能分析:自动判断仓库质量、技术栈、移植难度
- ✅ 优先级队列 + 失败重试
- ✅ 仓库列表 + 筛选 + 详情展开(Web 界面)
- ✅ 手动提交单个 GitHub URL(插队分析)
- ✅ 系统状态页 + 配置中心热重载
- ✅ 飞书即时推送 + 每日汇总
- ✅ 单容器懒猫微服打包
同时,为了控制范围、避免 Vibe Coding 时「管不住手」,明确不进 v1 的功能有:Star 增速监控、批量提交、导出 CSV、多数据源、语义去重等——这些留给后续版本。
适合谁?
| 场景 | 说明 |
|---|---|
| 🏢 团队使用 | 部署一个实例,全团队都能通过 Web 界面看、飞书收推送 |
| 🔄 持续监测 | 不是搜一次就完了,而是定时跑、自动分析、主动推送 |
| 📊 数据沉淀 | 仓库数据持久化存储,有历史记录、可筛选可回溯 |
| 🎯 副业/业务场景 | 懒猫移植这种有稳定需求的工作流,需要系统化工具 |
产物:一个跑在服务器上的 Web 应用 + 飞书群里的每日推送。
核心对比:Skill vs 全栈应用
两个项目功能一样,形态不同,本质上是两种解决问题思路的体现:
| 维度 | GitHub Repo Crawler(Skill) | RepoRadar(全栈) |
|---|---|---|
| 形态 | AI Agent 插件(SKILL.md) | 独立 Web 应用 |
| 启动方式 | 对话中自动激活 | Docker 部署 / 手动启动 |
| 交互方式 | 自然语言对话 | Web 界面 + 飞书推送 |
| 数据存储 | 不持久化(对话即数据) | SQLite 持久化,历史可查 |
| 定时任务 | ❌ 无(按需触发) | ✅ APScheduler 定时抓取 |
| 多用户 | ❌ 单人使用 | ✅ Web 界面多人可访问 |
| 通知推送 | 对话内返回结果 | 飞书即时推送 + 每日汇总 |
| Agent 分析 | AI 本身就是 Agent | 内置 ReAct Agent 自动分析 |
| 上手门槛 | 极低(装 Skill 即可) | 中等(需要部署) |
| 适合场景 | 个人临时使用、AI 工作流 | 团队持续使用、业务系统 |
一句话总结:
Skill 版是「随叫随到的超级实习生」——你问它就干。RepoRadar 是「专职的后台管家」——部署好之后自己定时跑,干完了主动通知你。
为什么做两个版本?
其实这背后有一个挺有意思的思考。
RepoRadar 是我用 Harness 体系(文档驱动 + 范围冻结 + 分阶段开发)认真做的全栈项目,前后分了 8 个 Phase,写了完整的 PRD、AGENTS.md、技术文档。它是一个工程化的产物。
但后来我发现:很多时候我只是想快速搜一下 GitHub 仓库,不想打开浏览器、不想登录系统。这时候如果能在 Claude Code 的对话里直接问一句就好了。
于是就有了 GitHub Repo Crawler——把核心能力抽出来,做成 AI Agent 的 Skill。不需要部署、不需要界面、不需要数据库,对话就是一切。
这两个版本不是替代关系,而是互补关系:
- 日常快速搜索 → 用 Skill
- 团队持续监测 → 用 RepoRadar
写在最后
同一个功能,两种形态,背后是两种截然不同的设计哲学:
- Skill 的思路:把工具嵌入 AI 的工作流,让 AI 来调用,人只需要对话。
- RepoRadar 的思路:把工具做成独立系统,定时自动运转,人只需要看结果。
没有谁好谁坏,只有适不适合。如果你也是 AI 重度用户,强烈建议试试把常用功能做成 Skill——那种「在对话里随口一问就有答案」的体验,真的回不去了。
两个项目都是开源的,欢迎 Star 和 PR 👇
- 🔧 GitHub Repo Crawler:https://github.com/dnwwdwd/github-repo-crawler
- 📡 RepoRadar:https://github.com/dnwwdwd/repo-radar
本文由汉堡🍔原创,首发于个人博客 blog.hejiajun.com
