bSeaGOATb
A code search engine for the AI age. SeaGOAT is a local search tool that leverages vector embeddings to enable you to search your codebase semantically.
Getting Started
Install SeaGOAT
Before diving into the installation, ensure you have the following dependencies already installed on your machine:
- Python 3.11 or newer
- ripgrep
- bat (optional, but highly recommended)
When bat is installed, it displays results in color, enhancing your search experience. If you don’t have bat installed, SeaGOAT will still highlight the output using pygments, but using bat is recommended.
To install SeaGOAT using pipx, execute the following command:
pipx install seagoat
System Requirements
Hardware
SeaGOAT should work on any decent laptop.
Operating System
SeaGOAT is designed to work on:
- Linux (tested)
- macOS (partly tested, help needed)
- Windows (help required)
Starting the SeaGOAT Server
To use SeaGOAT in your project, you must start the server. Use the following command:
seagoat-server start pathtoyourrepo
Searching Your Repository
With the server running, you can query your repository using the gt or seagoat commands. For instance:
gt Where are the numbers rounded
You can also utilize Regular Expressions in your queries, enabling flexible search options. For example:
gt function calc_.* that deals with taxes
Stopping the Server
To stop the running server, utilize the command:
seagoat-server stop pathtoyourrepo
Configuring SeaGOAT
You can customize SeaGOAT using YAML configuration files, either globally or project-specifically with a .seagoat.yml file. For example:
server:
port: 31134 # Specify server port
Check out the documentation for extensive details!
Development Requirements
To contribute to SeaGOAT, you’ll need:
Running Tests
To run tests, especially in watch mode:
poetry run ptw
You can also test changed files or all files using:
poetry run pytest . --testmon
poetry run pytest .
Manual Testing
You can manually test any SeaGOAT command in your local development environment, for example:
poetry run seagoat-server start ~pathanexamplerepository
FAQ
How Does SeaGOAT Work? Does It Send My Data to ChatGPT?
SeaGOAT operates entirely locally using a self-hosted server called ChromaDB for vector embeddings — no remote APIs involved. It ensures your data remains confidential while providing keyword matches.
Why Does SeaGOAT Need a Server?
The server boosts response speed as it handles vector embeddings and databases efficiently. You can run this server locally without needing the internet, which means your data remains secure.
What Programming Languages Are Supported?
Currently, SeaGOAT supports the following file formats:
- Text Files (*.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)
Troubleshooting
If you encounter slow processing times while building large repositories, remember: SeaGOAT is designed to let you use your computer while processing happens in the background. Querying during this time is also possible, though results may vary in accuracy.
If your SeaGOAT server does not start, ensure you meet all dependencies and that your environment is correctly set up. For additional insights and to troubleshoot, feel free to reach out for support.
For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
Final Thoughts
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

