SeaGOAT

GitHub
1.3k 90 简单 1 次阅读 昨天MIT开发框架数据工具Agent语言模型图像
AI 解读 由 AI 自动生成,仅供参考

SeaGOAT 是一款专为 AI 时代打造的本地优先语义代码搜索引擎。它解决了传统代码搜索只能依赖关键词匹配、难以理解代码逻辑含义的痛点,让开发者能够用自然语言(如“哪里处理了数字舍入”)直接查找功能相关的代码片段,而无需记忆具体的函数名或变量名。

这款工具非常适合需要高效浏览大型项目、重构旧代码或快速定位逻辑的软件开发者和工程师。其核心亮点在于完全在本地运行,利用向量嵌入技术实现语义理解,无需将任何代码数据上传至云端或第三方 API,充分保障了代码库的隐私与安全。SeaGOAT 支持 Linux、macOS 和 Windows 系统,既能通过简单的命令行交互使用,也支持正则表达式混合查询。配合可选的 bat 工具,它还能提供语法高亮的友好输出。对于注重数据隐私且希望提升代码检索效率的技术团队来说,SeaGOAT 是一个轻量、安全且智能的理想选择。

使用场景

资深后端工程师小林正在接手一个遗留的金融计算项目,急需在数十万行代码中定位所有涉及“税务舍入误差”的处理逻辑,以便进行合规性修复。

没有 SeaGOAT 时

  • 只能依赖传统 grep 进行关键词匹配,一旦代码中写的是 round_tax 而非 tax_rounding,搜索结果即为空,极易漏掉关键文件。
  • 面对大量无关的变量名匹配结果,不得不逐个打开文件人工阅读上下文,耗费数小时筛选噪音。
  • 无法用自然语言描述逻辑(如“处理负数时的舍入规则”),必须绞尽脑汁猜测具体的函数名或正则表达式。
  • 每次修改搜索词都要重新扫描整个磁盘,大型仓库的索引等待时间让人难以忍受。
  • 担心将敏感的财务代码上传到在线 AI 搜索工具会引发数据泄露风险,不敢使用云端服务。

使用 SeaGOAT 后

  • 直接输入自然语言查询 gt "Where are numbers rounded for taxes",SeaGOAT 基于向量语义瞬间定位到相关逻辑,无论变量名如何命名。
  • 搜索结果按语义相关性排序,精准展示核心代码片段,配合 bat 高亮显示,几分钟内即可锁定目标。
  • 支持混合查询,既能理解“处理负数舍入”的语义,也能结合正则表达式精确过滤特定函数结构。
  • 本地服务器启动一次后持续运行,后续搜索毫秒级响应,无需重复建立索引,流畅融入开发流。
  • 所有向量嵌入和搜索过程均在本地机器完成,代码数据不出内网,彻底消除隐私顾虑。

SeaGOAT 让开发者摆脱了关键词匹配的束缚,用自然语言思维直接在本地代码库中实现“所想即所得”的精准检索。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具设计为在本地运行,无需联网即可使用。服务器启动后可在文件处理期间进行查询。默认忽略 .gitignore 中的文件,支持通过配置文件忽略额外文件。首选 UTF-8 编码,仅处理文本文件。虽然目前完全本地运行,但未来可能提供可选的远程功能。开发环境需安装 Poetry。
python3.11+
ripgrep
bat (可选但推荐)
ChromaDB
pygments
SeaGOAT hero image

快速开始

[!TIP] 请查看 zeitgrep,这是我正在开发的另一款搜索工具!

Logo SeaGOAT

一款面向AI时代的代码搜索引擎。SeaGOAT是一款本地搜索工具,它利用向量嵌入技术,使您能够以语义方式搜索您的代码库。

开始使用

安装 SeaGOAT

为了安装 SeaGOAT,您需要在计算机上预先安装以下依赖项:

  • Python 3.11 或更高版本
  • ripgrep
  • bat(可选,强烈推荐)

bat 已经安装后,只要启用了颜色显示功能,就会用它来展示结果。如果 SeaGOAT 被用作管道的一部分,则会采用 grep 样式的输出格式。当启用了颜色显示但未安装 bat 时,SeaGOAT 将使用 pygments 对输出进行高亮显示。建议使用 bat

要使用 pipx 安装 SeaGOAT,请运行以下命令:

pipx install seagoat

系统要求

硬件

任何性能尚可的笔记本电脑都应该可以运行。

操作系统

SeaGOAT 设计为可在 Linux(已测试 ✅)、macOS(部分测试,寻求帮助)和 Windows(亟需帮助)上运行。

启动 SeaGOAT 服务器

要在您的项目中使用 SeaGOAT,您需要使用以下命令启动 SeaGOAT 服务器:

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

搜索您的仓库

如果服务器正在运行,您可以直接使用 gtseagoat 命令来查询您的仓库。例如:

gt "数字在哪里被四舍五入"

您还可以在查询中使用正则表达式,例如:

gt "处理税收的 calc_.* 函数"

停止服务器

您可以使用以下命令停止正在运行的服务器:

seagoat-server stop /path/to/your/repo

配置 SeaGOAT

SeaGOAT 可以通过 YAML 配置文件进行个性化设置,既可以全局配置,也可以针对特定项目使用 .seagoat.yml 文件。例如:

# .seagoat.yml

server:
  port: 31134  # 指定服务器端口

更多详细信息请参阅文档

开发

要求

安装依赖

克隆仓库后,使用以下命令安装依赖:

poetry install

运行测试

监视模式(推荐)

poetry run ptw

测试更改过的文件

poetry run pytest .  --testmon

测试所有文件

poetry run pytest .

手动测试

您可以在本地开发环境中手动测试任何 SeaGOAT 命令。例如,要测试 seagoat-server 命令的开发版本,您可以运行:

poetry run seagoat-server start ~/path/an/example/repository

常见问题解答

本 FAQ 中的内容仅用于说明 SeaGOAT 的工作原理,并不构成法律合同。SeaGOAT 采用开源许可证,如果您对 SeaGOAT 的隐私、安全性等方面存在疑虑,欢迎查阅源代码、提出您的关切,或创建拉取请求来修复问题。

SeaGOAT 是如何工作的?它会将我的数据发送给 ChatGPT 吗?

SeaGOAT 不依赖第三方 API 或任何远程 API,所有功能都在本地通过您自己机器上运行的 SeaGOAT 服务器执行。

它没有依赖 API 或“连接到 ChatGPT”,而是使用名为 ChromaDB 的向量数据库,结合本地向量嵌入引擎,并且默认情况下禁用了遥测功能。

除此之外,SeaGOAT 还使用基于正则表达式的代码搜索引擎 ripgrep,以便在“基于 AI”的匹配之外,提供基于正则表达式或关键词的匹配。

虽然当前版本的 SeaGOAT 不会将您的数据发送到远程服务器,但未来可能会有可选的功能支持这一操作,前提是这样做能带来进一步的改进。

为什么 SeaGOAT 需要一个服务器?

SeaGOAT 需要服务器是为了提供快速响应。SeaGOAT 大量依赖向量嵌入和向量数据库,而目前这些技术还无法通过即时处理文件的架构来替代。

值得注意的是,您可以完全在本地运行 SeaGOAT 服务器,即使没有互联网连接也能正常工作。在这种情况下,您无需与远程服务器共享数据,可以直接在本地使用自己的 SeaGOAT 服务器;当然,如果您愿意,也可以运行一个 SeaGOAT 服务器,并允许其他计算机连接到它。

SeaGOAT 是否会生成由 AI 生成的作品?SeaGOAT 符合伦理吗?

如果您担心使用 AI 工具可能带来的伦理问题,请记住,SeaGOAT 并非代码生成器,而是一个代码搜索引擎,因此它不会生成 AI 生成的作品。

不过,确实有一个语言模型被用来生成向量嵌入。目前,SeaGOAT 使用 ChromaDB 的默认模型来计算向量嵌入,我不认为这会带来伦理上的担忧。

支持哪些编程语言?

目前,SeaGOAT 被硬编码为仅处理以下格式的文件:

  • 文本文件 (*.txt)
  • Markdown (*.md)
  • Python (*.py)
  • C (*.c, *.h)
  • C++ (*.cpp, *.cc, *.cxx, *.hpp)
  • TypeScript (*.ts, *.tsx)
  • JavaScript (*.js, *.jsx)
  • HTML (*.html)
  • Go (*.go)
  • Java (*.java)
  • PHP (*.php)
  • Ruby (*.rb)

为什么 SeaGOAT 处理文件的速度很慢,但 CPU 占用率却很低?

由于处理大型代码库中的文件可能需要较长时间,SeaGOAT 的设计目标之一就是让您在文件处理过程中仍能正常使用电脑。这是有意为之的设计选择,旨在避免阻塞或拖慢您的计算机。

这一设计决策并不会影响查询的性能。

顺便说一句,您可以在 SeaGOAT 处理文件的同时查询您的仓库! 当您发起查询时,如果文件尚未处理完毕,系统会显示一条警告,告知您结果准确性的预估情况。此外,基于正则表达式或全文检索的结果会从一开始就显示出来!

支持哪些字符编码?

首选的字符编码是 UTF-8。大多数其他字符编码也应该可以正常工作。SeaGOAT 仅支持文本文件,会忽略二进制文件。

SeaGOAT 的数据库/缓存存储在何处?

SeaGOAT 数据库和缓存的具体存储位置取决于您的操作系统。为了方便起见,您可以使用 seagoat-server server-info 命令来查看这些文件在您系统上的存储路径。

我能否将 SeaGOAT 服务器部署在另一台计算机上?

可以。如果您不想在同一台计算机上运行 SeaGOAT 服务器,可以直接在另一台计算机或云端自托管 SeaGOAT 服务器,并通过互联网配置 seagoatgt 命令以连接到该远程服务器。

请注意,SeaGOAT 本身并不强制实施任何安全措施,因为它主要是为本地运行而设计的。如果您有不希望泄露的私密代码,必须确保只有受信任的人员才能访问 SeaGOAT 服务器。这可以通过将其仅通过一个仅供团队成员访问的 VPN 网络来实现。

我可以忽略某些文件或目录吗?

SeaGOAT 已经会自动忽略 .gitignore 文件中指定的所有文件和目录。如果您希望进一步忽略某些文件,但又想让它们保留在 Git 仓库中,可以在服务器配置中使用 ignorePatterns 属性。了解更多

版本历史

v0.54.172025/05/14
v0.54.162025/05/13
v0.54.152025/05/09
v0.54.142025/04/30
v0.54.132025/04/29
v0.54.122025/04/26
v0.54.112025/04/25
v0.54.102025/04/22
v0.54.92025/04/17
v0.54.82025/04/16
v0.54.72025/04/10
v0.54.62025/04/08
v0.54.52025/04/04
v0.54.42025/03/25
v0.54.32025/03/03
v0.54.22025/03/02
v0.54.12025/03/02
v0.54.02025/02/16
v0.53.12025/02/16
v0.53.02025/02/16

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

158.6k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|今天
Agent插件

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|6天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像