// the find
kantord/SeaGOAT
local-first semantic code search engine
SeaGOAT is a local semantic code search engine that combines ChromaDB vector embeddings with ripgrep to let you search your codebase by meaning rather than exact text. It runs a persistent local server per repository and exposes a CLI. No data leaves your machine.
Hybrid search combining vector similarity with ripgrep regex is the right architecture — you get semantic results without losing the ability to anchor on exact identifiers. Fully local with ChromaDB and no external API dependency means it works offline and on proprietary codebases without concern. The incremental indexing design (usable while still processing, with accuracy warnings) is practical for large repos. MCP server support means it plugs into AI coding assistants as a tool.
Language support is hardcoded to about a dozen file types with no extension point — anything outside that list is silently ignored, which will bite anyone working in Rust, C#, Kotlin, or most other languages. The server-per-repo model gets awkward fast if you work across many repos simultaneously; there's no shared index or multi-repo search. Windows support is explicitly marked as needing help, so on anything but Linux it's a gamble. ChromaDB's default embedding model is not documented or configurable in the README, which means you can't swap in a better model without digging into the source.