boyter/cs

codespelunker - CLI code search tool that understands code structure and ranks results by relevance. No indexing required with CLI, TUI, MCP and HTTP support.

解决的问题

cs(codespelunker)是一款专为解决代码搜索中噪声问题而设计的 CLI 工具。与传统的文本搜索工具(如 grep 或 ripgrep)不同,cs 不将代码视为纯文本,而是理解代码的结构,根据相关性对结果进行排序,帮助开发者找到实际的实现,而不仅仅是关键词在注释或配置文件中的所有出现。

工作原理

无需预先构建索引,即可实时进行词法分析。它解析文件以区分代码、字符串和注释,并使用加权 BM25 相关性评分算法。此外,通过“复杂度引力”机制,利用循环复杂度提升包含核心逻辑的文件排名,压倒简单的样板代码或接口文件。

适用人群

需要在单个或多个仓库中进行结构化、相关性排序的代码搜索,但又不想承担维护搜索索引开销的开发者和 AI 代理。

主要亮点

  • 结构感知:仅过滤显示代码、注释、字符串或声明(如 func、class)及使用情况。
  • 复杂度引力:利用循环复杂度,提升复杂实现文件的排名,压倒简单接口或配置文件。
  • 无需索引:无需索引即可实时提供搜索引擎级别的排序,现代硬件上可在 3 秒内搜索完 Linux 内核源码。
  • 多接口支持:支持标准 CLI、TUI、HTTP 服务器以及用于 LLM 集成的 MCP(Model Context Protocol)服务器。
  • Git 同步:自动通过定期运行 git pull 来保持发现的仓库搜索目标始终最新。
  • 智能排序:使用 BM25 评分、文件位置加权和自动测试文件抑制机制。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目