AIでリポジトリを可視化・分析するGitVizzを使ってみる

はじめに

新しいプロジェクトに参加したとき、大規模なOSSのコードを読むとき、リポジトリの全体像を把握するのに時間がかかった経験はないだろうか。
GitVizzは、AIを活用してGitHubリポジトリの構造を可視化・分析するツールである。
リポジトリのURLを入力するだけで、依存関係グラフの生成、コードの対話的な質問応答、LLM向けのコンテキスト生成などが行える。
今回は、このGitVizzを実際に使ってみる。

環境

Google Chrome
gitvizz.com(オンライン版)

※ ローカル環境で動かす場合は、Docker Composeを使用する方法もある。

GitVizzとは

GitVizzは、AIを活用したリポジトリ分析ツールである。
GitHubリポジトリのURLを入力するだけで、コードベースをインタラクティブに探索できる。

公式サイト: https://gitvizz.com/
GitHubリポジトリ: https://github.com/adithya-s-k/GitVizz

主な機能は以下の通りである。

機能説明
Graph Searchインタラクティブな依存関係グラフを検索できる
Graph Dependency Viewコード間の依存関係をハイライトし、視覚的にナビゲーションできる
Chat with Repositoryリポジトリに対してAIにチャットで質問できる
Code Viewerシンタックスハイライト付きのコードビューア
LLM Context BuilderLLMに渡すためのコンテキストを自動生成する
Documentation Generatorリポジトリからドキュメントを自動生成する

使い方

オンラインで使う(gitvizz.com)

最も手軽な方法は、gitvizz.comを使うことである。

  1. gitvizz.comにアクセスする
  2. 画面上部の入力欄に分析したいGitHubリポジトリのURLを入力する
  3. 「Vizzify」ボタンをクリックする
  4. 分析結果が表示される
gitvizz-01

分析が完了すると、リポジトリのファイル構造やコードの内容を確認できる画面が表示される。

gitvizz-01

機能について

依存関係グラフをインタラクティブに検索できる機能である。
ファイル間の依存関係が視覚的に表示されるため、プロジェクトの全体像をつかみやすい。

gitvizz-01

Graph Dependency View

特定のファイルやモジュールを選択すると、そのファイルが依存しているファイルや、逆に依存されているファイルがハイライト表示される。
コードの影響範囲を調べる際に便利である。

Code Viewer (Explorer)

シンタックスハイライト付きでコードを閲覧できる。
リポジトリ内のファイルを直接ブラウザ上で確認できるため、ローカルにクローンしなくてもコードリーディングが可能である。

LLM Context Builder

LLMに質問する際に必要なコンテキストを自動で構築してくれる機能である。
必要なファイルを選択すると、LLMに渡すためのプロンプトが生成される。
ChatGPTやClaudeなどに貼り付けて使うことができる。

ローカル環境で使う(Docker Compose)

ローカル環境で動かしたい場合は、Docker Composeを使用する。

# リポジトリをクローン
git clone https://github.com/adithya-s-k/gitvizz.git
cd gitvizz

# 環境変数ファイルをコピー
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env.local

# サービスを起動
docker-compose up --build

起動後、以下のURLでアクセスできる。

サービスURL
Frontendhttp://localhost:3000
Backend APIhttp://localhost:8003

※ AI機能(Chat with Repositoryなど)を使う場合は、backend/.envにOpenAIやAnthropicなどのAPIキーを設定する必要がある。
詳細は公式リポジトリのREADMEを参照してほしい。

参考

おわりに

GitVizzを使うことで、リポジトリの構造を視覚的に把握できるのが良い。
特に、依存関係グラフで全体像をつかめる点や、LLM Context Builderで必要なコンテキストをサッと生成できる点が便利だと感じた。
大規模なOSSのコードを読む際や、新しいプロジェクトにオンボーディングする際に活用できそうである。
今後も使っていきたい。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。