VectorCode について
VectorCode は、コーディング向け LLM のプロンプトを改善するためにコードリポジトリをインデックス化するツールです。コマンドラインツールと、AI プラグイン開発用 API を備えた neovim プラグインを含み、現在はベータ版です。
主な機能
- 01リポジトリのインデックス作成と関連コードの検索
- 02選択時に .gitignore を考慮
- 03tree-sitter による構文を意識したチャンク分割
- 04検索結果のドキュメント選択を設定可能
- 05Lua API を備えた neovim プラグイン
- 06MCP を介した codecompanion.nvim との統合検索
活用シーン
- 01コーディング LLM のプロンプトにプロジェクト固有のコンテキストを追加する
- 02neovim の AI プラグインにリポジトリ検索を組み込む
- 03MCP クライアントからインデックス済みのローカルリポジトリを照会する
MCP 対応
VectorCode は codecompanion.nvim などの MCP クライアントと連携し、それらのクライアントから MCP 経由でリポジトリ検索機能を利用できるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
VectorCode
VectorCode は、コードリポジトリのインデックス作成ツールです。作業中のコードリポジトリに関する情報をインデックス化して提供することで、コーディング用 LLM のプロンプトを改善できます。このリポジトリには、AI プラグインの作成や機能強化に使える API セットを提供する対応する neovim プラグインと、人気のプラグイン向けの連携機能も含まれています。
メモ
このプロジェクトはベータ版の品質で、急速に反復開発が進められています。 改善の余地が多くあることは承知しており、どのようなご協力も歓迎します。
VectorCode を使う理由
LLM は通常、クローズドソースのプロジェクト、あまり知られていないプロジェクト、リリースに含まれていない最先端の開発について、理解が非常に限られています。これらのプロジェクトに対する能力もかなり限られています。VectorCode を使うと、プロジェクトからタスクに関連するコンテキストを簡単に(そしてプログラムで)プロンプトに追加できます。これにより、モデルの出力品質が大幅に向上し、ハルシネーションを減らせます。
ドキュメント
メモ
mainブランチのドキュメントは、最新のコミット時点のコードを反映しています。 使用中のバージョンに対応するドキュメントを確認するには、対応するタグを確認してください。
- コマンドラインツールのセットアップと使い方については、CLI ドキュメントを参照してください。
- neovim ユーザーは、CLI ドキュメントを確認してから、neovim プラグインのドキュメント(必要に応じて lua API リファレンス)を参照してください。
- その他のリソース:
このプロジェクトへの貢献をお考えの場合は、守るべき基本的なガイドラインや役立つヒントが記載された貢献ガイドをご覧ください。
バージョン管理について
このプロジェクトでは、独自に調整したセマンティックバージョニングを採用しています。
- 1.0.0 がリリースされるまでは、メジャーバージョン番号 は 0 のままです。これは、このプロジェクトがまだ初期段階にあり、機能やインターフェースが随時変更される可能性があることを示します。
- マイナーバージョン番号 は 破壊的変更 を示します。機能や設定オプションを削除する場合、実際の削除はマイナーバージョン番号を上げるタイミングで行います。そのため、動作中のセットアップに影響が及ぶのを避けたい場合は、
"vectorcode<0.7.0"のようなバージョン制約を指定できます。 - パッチバージョン番号 は 破壊的でない変更 を示します。新機能やバグ修正が含まれる場合があります。機能を非推奨にする場合は、パッチバージョン番号を上げた新しいリリースを作成します。マイナーバージョン番号が上がるまでは、非推奨の機能も引き続き動作しますが、警告が表示されます。新機能に対応するよう、セットアップを更新することをおすすめします。
TODO
-
ファイルパス除外パスでクエリを実行; - チャンク分割のサポート;
- ファイルのメタデータを追加;
- チャンクサイズの設定;
- py-tree-sitter と tree-sitter-language-pack を使用した、よりスマートなチャンク分割(セマンティクス/構文ベース)を実装;
- クエリ結果から選択するドキュメントを設定可能にする。
-
プロジェクトがインデックス化されていない場合に検索を省略するキャッシュ付き NeoVim Lua API代わりに空の配列を返す; - 非同期キャッシュ用のジョブプール;
- 永続クライアント;
- 適切なリモート Chromadbのサポート(認証など);
-
.gitignoreを尊重; - 自動的なプロジェクトルート検出を強化する、プロジェクトルートアンカー(
.gitやカスタムの.vectorcode.jsonなど)を実装。 プロジェクトレベルの.vectorcode/と.gitをルートアンカーとして実装 - コレクション内のファイルを表示および削除する機能;
- 統合検索(一部対応、codecompanion.nvim/MCP を使用);
- Nix のサポート(非公式パッケージはこちら);
- クエリの書き換え(#124)。
謝辞
- このプロジェクトがまだ初期段階だったころに支援してくださった @milanglacier 氏(および minuet-ai.nvim);
- このプロジェクトがツール呼び出しを初めて試みた際に、個人的に、また codecompanion.nvim を通じて支援してくださった @olimorris 氏;
- VectorCode と MCP の連携を支援してくださった @ravitemer 氏;
- Nix パッケージをメンテナンスしてくださっている Nix コミュニティ(特に @sarahec 氏と @GaetanLepage 氏)。
特別な感謝
Star の履歴
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。