A semantic-code search engine
Project description
SeaGOAT
A code search engine for the AI age. SeaGOAT leverages vector embeddings to enable to search your codebase semantically.
🛟 Looking for someone to help me benchmark the accuracy of SeaGOAT. If you can help me make it happen, let me know!
Getting started
Install SeaGOAT
In order to install SeaGOAT, you need to have the following dependencies already installed on your computer:
- Python 3.11 or newer
- ripgrep
- https://github.com/sharkdp/bat (optional)
When bat
is installed,
it is used to display results as long as color is enabled. When SeaGOAT is
used as part of a pipeline, a grep-line output format is used. When color is
enabled, but bat
is not installed, SeaGOAT will highlight the output using
pygments. Using bat
is recommended.
To install SeaGOAT using pipx
, use the following command:
pipx install seagoat
Start SeaGOAT server
In order to use SeaGOAT in your project, you have to start the SeaGOAT server using the following command:
seagoat-server start /path/to/your/repo
Search your repository
If you have the server running, you can simply use the
gt
or seagoat
command to query your repository. For example:
gt "Where are the numbers rounded"
You can also use Regular Expressions in your queries, for example
gt "function calc_.* that deals with taxes"
Stopping the server
You can stop the running server using the following command:
seagoat-server stop /path/to/your/repo
Development
Requirements:
Install dependencies
After cloning the repository, install dependencies using the following command:
poetry install
Running tests
Watch mode (recommended)
poetry run ptw
Test changed files
poetry run pytest . --testmon
Test all files
poetry run pytest .
Manual testing
You can test any SeaGOAT command manually in your local development
environment. For example to test the development version of the
seagoat-server
command, you can run:
poetry run seagoat-server ~/path/an/example/repository
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.