grepai
AI时代语义代码搜索引擎,用自然语言搜索代码、支持调用图追踪的100%本地CLI工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI时代语义代码搜索引擎,用自然语言搜索代码、支持调用图追踪的100%本地CLI工具
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你接手了一个 5 年历史、10 万行代码的老项目,突然需要修改 handleUserSession 这个函数。传统 grep 只能搜"handleUserSession"这个精确名字,但如果原开发者早就改名重构了呢?你根本找不到这段逻辑的藏身之处。
grepai 就是来解决这个问题的——它用自然语言理解代码的语义,而不是死板地匹配字符串。
grepai 由独立开发者 Yoan Bernabeu 创建,GitHub 目前已积累 1,736 stars,属于增长较快的开发者工具类项目。项目定位非常明确:面向 AI 编程助手(Claude Code、Cursor、Windsurf)的语义代码搜索引擎。
作者在 GitHub Topic 中打满了 mcp、claude-code、cursor、embeddings、vector-search、semantic-search 等标签,清晰地表明了目标用户群体:使用 AI 辅助编程的开发者,以及 AI Agent 本身。
作者同时维护了完整的项目文档站,包括详细的使用指南和架构说明。
grepai 的核心工作流程分为三个阶段:
索引阶段:文件扫描器(Scanner)遍历项目目录,自动排除 .gitignore 规则匹配的文件;分块器(Chunker)将文件按 token 数量切分为重叠的文本块,保留足够的上下文;嵌入器(Embedder)将每个文本块转换为高维向量,存入向量数据库。
查询阶段:用户输入自然语言查询(如"authentication logic"),嵌入器同样将其转换为向量,在向量数据库中进行相似度搜索,返回语义相关的代码片段,而非字面匹配结果。
调用图追踪:grepai 不只是做语义搜索,还能通过静态分析追踪代码调用关系。例如 grepai trace callers Login 可以找出所有调用 Login 函数的代码位置,帮助开发者在重构前全面评估影响面。
项目采用接口设计模式,定义了 Embedder 接口,允许多种嵌入实现自由切换。当前已支持:
nomic-embed-text 模型)同样,存储层采用 VectorStore 接口抽象,当前支持两种后端:
grepai 的架构设计体现了几个值得称道的设计决策:
模块化插件架构:整个项目围绕接口抽象(Embedder/VectorStore)构建,新增嵌入 provider 或存储后端只需实现对应接口,无需修改核心逻辑。
文件监控实时更新:内置 watcher 模块,通过文件系统事件监听实现增量索引——代码改动后索引自动刷新,无需手动重建。
RPG(Relationship Property Graph):代码分析模块将代码中的标识符关系建模为属性图(节点=符号,边=调用/读写关系),支持图上的语义探索和邻居遍历,是 AI Agent 理解代码结构的利器。
MCP Server 原生支持:grepai 直接实现了 MCP(Model Context Protocol)协议,Claude Code、Cursor 等 AI 编程工具可以通过 MCP 直接调用 grepai 工具,无需任何额外配置。
安装方式极为简洁:
# macOS
brew install yoanbernabeu/tap/grepai
# Linux/macOS 一行命令
curl -sSL https://raw.githubusercontent.com/yoanbernabeu/grepai/main/install.sh | sh
# Windows PowerShell
irm https://raw.githubusercontent.com/yoanbernabeu/grepai/main/install.ps1 | iex
然后配置嵌入 provider:
# 推荐:本地 Ollama(免费、离线)
ollama pull nomic-embed-text
# 或使用 OpenAI API
使用流程:
grepai init # 在项目目录下初始化
grepai watch # 启动索引守护进程(后台运行)
grepai search "error handling" # 自然语言语义搜索
grepai trace callers "Login" # 追踪函数调用关系
docker-compose.yaml 提供了可选的 PostgreSQL(pgvector)和 Qdrant 依赖,适合团队协作场景。
适合的场景:
需要注意的局限:
grepai 代表了一个重要趋势:AI 编程工具的专业化基础设施。随着 Claude Code、Cursor、Windsurf 等 AI 编程助手普及,AI Agent 如何高效理解陌生代码库成为关键问题。grepai 通过语义搜索 + 调用图分析,为 AI Agent 提供了"代码世界的 GPS",大幅降低 AI 理解代码的 token 消耗。 作者在项目中集成了完整的 CI/CD(GitHub Actions + goreleaser 跨平台发布)、Nix Flake 支持、详细的 CLAUDE.md 指导规范,体现了极高的工程素养。MIT 许可证允许商业使用,是真正面向生产力的工具。 目前 88 个 open issues 中大部分是功能建议(feature request),说明社区活跃、需求旺盛,预计后续会有更多企业级特性(如团队索引共享、增量同步等)加入。