Repolode
boyter

boyter/cs

一款无需建立索引的命令行代码搜索工具,能识别代码结构并按相关性排序结果。

可替代:Sourcegraph

Star
1,080
Fork
23
未关闭 Issue
2
最近提交
3天前

这是什么?

cs(codespelunker)是一个用 Go 编写的命令行代码搜索工具。它会在搜索时实时解析每个匹配文件,区分代码、注释和字符串,再结合 BM25 相关性与结构权重进行排序,而不是简单罗列所有文本命中。由于无需预先建立索引,可以直接对任意目录开始搜索。

除了普通搜索,它还支持 --only-code、--only-comments、--only-strings、--only-declarations、--only-usages 等结构化过滤参数。基于圈复杂度的 gravity 设置可以让核心实现文件排在接口和配置文件之前,排序配置预设则把多个调优参数打包成一键选项。查询语句支持布尔运算、引号短语、正则表达式和模糊匹配。

同一套引擎还提供交互式 TUI、带语法高亮的 HTTP 搜索服务,以及 MCP 服务器模式,让 Claude Desktop、Claude Code 等 LLM 工具直接搜索代码库。--git-sync 选项可定期拉取搜索目录中的仓库,保持结果与代码同步。

核心功能

  • 01结构感知匹配,可区分代码、注释和字符串字面量
  • 02基于 BM25 的相关性排序,结合复杂度权重和文件位置加权
  • 03声明与用法过滤,可直接定位定义或调用位置
  • 04支持布尔查询、引号短语、正则表达式和模糊匹配
  • 05提供命令行、TUI、HTTP 服务和 MCP 服务四种使用方式
  • 06可定期对搜索目录中的 Git 仓库执行 pull 更新

适用场景

  • 在大型代码库中找到函数的真正实现,而不是接口、测试或注释
  • 跨项目只搜索 TODO、FIXME 注释或错误信息字符串
  • 通过 MCP 为 LLM 智能体提供带相关性排序的代码搜索工具
  • 在不维护搜索服务的前提下,搜索一组已克隆的仓库

快速上手

  1. 1

    通过 Go 安装(需要 Go 1.25.2 或更高版本)

    go install github.com/boyter/cs/v3@latest
  2. 2

    在任意目录中运行搜索

    cs "authenticate" --gravity=brain

使用前须知

  • 通过 go install 安装需要 Go 1.25.2 或更高版本;其他方式需要从发布页面下载二进制文件。
  • 没有索引,每次搜索都会实时扫描匹配文件,纯文本匹配时比 ripgrep 慢。

标签

常见问题

cs 是什么?
一款无需建立索引的命令行代码搜索工具,能识别代码结构并按相关性排序结果。 cs(codespelunker)是一个用 Go 编写的命令行代码搜索工具。它会在搜索时实时解析每个匹配文件,区分代码、注释和字符串,再结合 BM25 相关性与结构权重进行排序,而不是简单罗列所有文本命中。由于无需预先建立索引,可以直接对任意目录开始搜索。
cs 可以免费使用吗?用的什么许可证?
cs 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
cs 还在维护吗?
活跃维护中。cs 最近一次提交是在 2026年10月20日。
cs 适合用来做什么?
在大型代码库中找到函数的真正实现,而不是接口、测试或注释 跨项目只搜索 TODO、FIXME 注释或错误信息字符串 通过 MCP 为 LLM 智能体提供带相关性排序的代码搜索工具 在不维护搜索服务的前提下,搜索一组已克隆的仓库
cs 怎么安装和运行?
通过 Go 安装(需要 Go 1.25.2 或更高版本): go install github.com/boyter/cs/v3@latest 在任意目录中运行搜索: cs "authenticate" --gravity=brain
在哪里获取 cs?
源代码和安装说明在 GitHub 上:https://github.com/boyter/cs

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目