Star 了三年,全白 Star 了?我用 AI 把 GitHub 收藏夹盘活了
你有没有这种经历:
明明记得 star 过一个很好用的工具,但真正需要用的时候却怎么都找不到。翻了半天收藏夹,全是一年前随手点的项目,名字完全对不上号。
或者更绝一点 —— 打开 GitHub,面对密密麻麻的数千个 star,脑子一片空白。
这不是你的记性不好,而是 GitHub 的 star 功能从来就不是为 “找回” 设计的。
问题出在哪?
GitHub 的 star 本质上更像一个书签功能,它只能告诉你 “我收藏过这个”,却没法帮你回忆 “我为什么收藏它”。
官方提供的筛选能力也比较有限:按语言、按时间排序,或者手动加 List 分类。但现实是,谁会在 star 的那一刻认真做归档整理呢?
于是就很容易出现这些场景:
- 想找一个 “用 Rust 写的高性能 key-value 存储”,只能靠肉眼扫描
- 想起一个项目 “好像是做 React 状态管理的,但不是 Redux”,却完全没有线索
- 翻到两年前 star 的项目时,已经不记得它到底是干什么的了
我做了什么
最近我写了一个叫 starepo 的命令行工具,专门解决这个问题。
它的核心思路很简单:把你所有 star 过的仓库拉到本地做向量化,然后通过语义搜索来检索它们。
换句话说,你可以直接像问一个 “记性很好” 的朋友一样,用自然语言去找项目:
1 | starepo search "用 Rust 写的高性能 key-value 存储" |
它会综合语义理解和全文检索,把最相关的结果排在前面。
更重要的是,整个过程几乎零配置,也不需要任何 API Key。 不用 OpenAI Embedding API,不用额外接入某个 LLM 服务,向量模型完全本地运行,GitHub 授权完成后就能直接使用。
技术上是怎么做到的
整个方案不依赖云服务,完全在本地运行。
向量嵌入使用的是 Xenova/bge-m3,这是一个支持多语言的开源模型,1024 维,首次运行大约会下载 23MB 的模型文件,后续即可离线使用。
存储使用的是 LanceDB,这是一个专门为向量搜索设计的本地数据库。它的优点之一是无需复杂编译,直接通过 npm 安装即可使用。
搜索策略则分成三层:
- 关键词搜索(FTS):基于倒排索引,速度最快,适合精确词语匹配
- 向量搜索:把查询语句也转成向量,用余弦相似度找最接近的仓库
- 混合搜索:合并两路结果、去重,并按相关性重新排序
这样一来,无论你记得的是关键词,还是只记得一个大概用途,都能更容易把目标项目找出来。
用起来有多简单
安装只需要一行命令:
1 | npm install -g starepo |
第一次使用主要分三步:
1 | # 1. GitHub 授权(Device Flow,不需要手动填 Token) |
同步完成之后,后续搜索基本就是即时响应。
如何通过 Skill 集成?
如果你正在使用 Claude Code,或者其他支持 skills.sh 的 AI 编程工具,还可以一键安装 starepo skill:
1 | npx skills add yangyang0507/starepo |
安装之后,你甚至不需要自己记命令。直接告诉 AI Agent:
帮我在 star 里找一个 XXX
它就可以自动调用 starepo 帮你完成检索。整个过程不需要切窗口,也不需要手动去 GitHub 翻收藏夹。
如何通过 MCP 集成?
starepo 还实现了 MCP 服务器,可以接入 Claude Desktop、Cursor 这类 AI 工具。
配置也非常简单,几行 JSON 就够了:
1 | { |
完成配置后,你可以直接在对话框里问 Claude:
帮我找一下我 star 过的、和 LLM 推理加速相关的项目
Claude 会调用 starepo 提供的工具,直接把结果返回给你。这样一来,GitHub star 不再只是一个静态收藏夹,而是变成了一个可搜索、可对话的知识库。
最后
数年的 star,不应该就这样沉在收藏夹里吃灰。
项目已经开源,感兴趣的话可以看看:
https://github.com/yangyang0507/starepo
如果你觉得它有用,也欢迎顺手点个 star—— 这一次,你应该不会再忘记它放在哪了。
本文涉及的所有代码和数据均在本地运行,不会上传任何个人数据。