Repolode
kantord

kantord/SeaGOAT

ベクトル埋め込みとripgrepを組み合わせ、自然言語でコードベースを検索できるローカル優先のセマンティック検索エンジンです。

スター
1,317
フォーク
97
未解決の Issue
36
最終コミット
一昨日

これは何?

SeaGOATは、完全一致するキーワードではなく、コードの意味をもとに検索できるコマンドラインツールです。リポジトリをベクトル埋め込みでインデックス化するローカルサーバーを起動し、ChromaDBに保存したデータから意味的に一致する結果を探します。同時に、ripgrepで正規表現やキーワードに一致する結果も検索します。「数値を丸めている箇所はどこ?」のような文章で質問したり、正規表現を組み合わせたりできます。

このツールはすべて自分のマシン上で動作し、デフォルトでは外部APIを呼び出しません。インデックス作成はバックグラウンドで行われるため、ファイルの処理中でも検索できます。初期の検索結果はripgrepから得られ、警告にはセマンティックインデックスの完成度の推定値が表示されます。.gitignoreの除外ルールを尊重し、YAML設定ファイルで追加のパターンを指定することもできます。

オプションの--generativeフラグを指定すると、検索結果をLLMに渡して回答を補強できます。デフォルトではローカルのOllamaサーバーを使用します。代わりにOpenAIやMiniMaxを設定することもできますが、クラウドプロバイダーにはコードスニペットが送信されるため、明示的に有効にする必要があります。

主な機能

  • 01ベクトル埋め込みを使い、ローカルのコードを自然言語でセマンティック検索
  • 02セマンティック検索の結果と、ripgrepによる正規表現・キーワード検索の結果を組み合わせる
  • 03ローカルサーバーとして動作し、デフォルトでは外部APIを呼び出さない
  • 04インデックス作成中も検索でき、インデックスの完成度を推定して表示
  • 05.gitignoreを尊重し、YAML設定で追加の除外パターンを指定可能
  • 06Ollama、OpenAI、MiniMaxを使ったLLMによる結果の補強に対応(オプション)

ユースケース

  • 関数名が分からないときに、ある動作が実装されている場所を見つける
  • 自然な言葉で質問し、慣れていないコードベースを調べる
  • プライベートなコードをサードパーティのサービスに送らずに検索する
  • プライベートネットワーク上でチーム向けの共有コード検索サーバーを運用する

クイックスタート

  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月4日 です。
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

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト