Repolode
kantord

kantord/SeaGOAT

本地优先的语义代码搜索工具,结合向量嵌入与 ripgrep,可用自然语言查询代码库。

Star
1,318
Fork
97
未关闭 Issue
36
最近提交
前天

这是什么?

SeaGOAT 是一个命令行代码搜索工具,可以按语义而不是精确关键词查找代码。它启动一个本地服务,用 ChromaDB 存储的向量嵌入为代码库建立索引,并把语义匹配结果与 ripgrep 的正则和关键词结果合并展示。查询既可以是“数字在哪里被四舍五入”这样的自然语句,也可以混用正则表达式。

默认情况下所有处理都在本机完成,不调用远程 API。索引在后台进行,文件还在处理时就能开始查询:此时先返回 ripgrep 的结果,并给出语义结果准确度的估计。搜索会遵守 .gitignore 的忽略规则,额外的忽略模式可在 YAML 配置文件中设置。

可选的 --generative 参数会把结果交给大语言模型做增强,默认使用本地 Ollama,也可以改用 OpenAI 或 MiniMax。云端服务会收到代码片段,因此需要显式开启。

核心功能

  • 01基于向量嵌入,用自然语言对本地代码做语义搜索
  • 02将语义结果与 ripgrep 的正则和关键词匹配合并展示
  • 03默认运行本地服务,不调用远程 API
  • 04索引尚未完成时即可搜索,并提示结果准确度估计
  • 05遵守 .gitignore,并可通过 YAML 配置添加忽略规则
  • 06可选通过 Ollama、OpenAI 或 MiniMax 让大模型增强搜索结果

适用场景

  • 不知道确切函数名时,按行为描述找到对应实现
  • 用自然语言提问,快速熟悉陌生代码库
  • 在不向第三方服务发送代码的前提下搜索私有代码
  • 在私有网络中为团队搭建共享的代码搜索服务

快速上手

  1. 1

    使用系统包管理器安装 ripgrep(可选安装 bat)

  2. 2

    使用 pipx 安装 SeaGOAT

    pipx install seagoat
  3. 3

    在你的代码仓库上启动 SeaGOAT 服务器

    seagoat-server start /path/to/your/repo
  4. 4

    用自然语言查询你的代码仓库

    gt "Where are the numbers rounded"

使用前须知

  • 仅支持固定列表中的文件类型,例如 Python、JavaScript、Go 和 Markdown。
  • macOS 和 Windows 的支持仅部分测试,或需要帮助。

收录于专题

标签

常见问题

SeaGOAT 是什么?
本地优先的语义代码搜索工具,结合向量嵌入与 ripgrep,可用自然语言查询代码库。 SeaGOAT 是一个命令行代码搜索工具,可以按语义而不是精确关键词查找代码。它启动一个本地服务,用 ChromaDB 存储的向量嵌入为代码库建立索引,并把语义匹配结果与 ripgrep 的正则和关键词结果合并展示。查询既可以是“数字在哪里被四舍五入”这样的自然语句,也可以混用正则表达式。
SeaGOAT 可以免费使用吗?用的什么许可证?
SeaGOAT 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
SeaGOAT 还在维护吗?
活跃维护中。SeaGOAT 最近一次提交是在 2026年11月5日。
SeaGOAT 适合用来做什么?
不知道确切函数名时,按行为描述找到对应实现 用自然语言提问,快速熟悉陌生代码库 在不向第三方服务发送代码的前提下搜索私有代码 在私有网络中为团队搭建共享的代码搜索服务
SeaGOAT 怎么安装和运行?
使用系统包管理器安装 ripgrep(可选安装 bat) 使用 pipx 安装 SeaGOAT: pipx install seagoat 在你的代码仓库上启动 SeaGOAT 服务器: seagoat-server start /path/to/your/repo 用自然语言查询你的代码仓库: gt "Where are the numbers rounded"
在哪里获取 SeaGOAT?
源代码和安装说明在 GitHub 上:https://github.com/kantord/SeaGOAT

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

相关项目