Graphify-Labs/graphify
コードも資料も1枚のつながりにして、読んだのか推測したのかを残す
どういうものか
リポジトリ、設計資料、SQLのスキーマ、設定ファイル、PDF、スクリーンショット——種類の違うファイルをまとめて読み込み、そこに出てくる概念を点、概念どうしの関係を線にした1枚のグラフを作る。作ったあとはコマンドラインから、ふつうの言葉で聞いて関係する範囲を切り出す(query)、2つの点のあいだの道をたどる(path)、ある点が何なのか説明させる(explain)といった聞き方ができる。--watch を付ければファイルの変更に追従し、--wiki でグラフから Markdown のウィキを書き出す。
読み方はファイルの種類で切り替わる。コードは tree-sitter で構文木にして、呼び出し関係もたどる(tree-sitter の文法37種、約40言語)。Markdown やテキストは LLM に概念を抜き出させ、画像もモデルに読ませる。読ませる先は、使っている AI アシスタントのモデルか、自分で設定した API キーの先になる。コード中の # WHY: のようなコメントや、ADR・RFC への参照は、それが説明している対象と結びついた別の点として取り込まれる。つまりコードの部分は機械的に、文章の部分はLLMで、と役割が分かれている。
この道具の姿勢がいちばん出ているのは、線の引き方を隠さないところ。1本1本の線に EXTRACTED(そのまま書いてあった)/ INFERRED(推測した)/ AMBIGUOUS(確信が持てない)のどれかが付く。つないだ根拠を文章で書いてくれるわけではないが、読み取ったものと推測したものが混ざらない。似ているかどうかの数値だけを返す作りをあえて避けており、ベクトルの保管場所も持たない。まとまりの検出には Leiden 法も使える(別に入れる必要があり、Python 3.13 未満向け)。--update を付けると、変わったファイルだけを読み直す。
どんなときに使うか
引き継いだコードと、そこに付いてきた資料が噛み合わないとき
コードだけ読んでも、設計資料だけ読んでも埋まらない部分がある。両方を同じグラフに入れると、「この資料の言葉は、どのコードのことなのか」を線としてたどれるようになる。path で2点のあいだの道を出せるので、関係があるらしいと分かった時点で、その道筋をたどれる。
生成された答えを、根拠まで戻って確かめたいとき
線ごとに、読み取ったのか推測したのかが残る。あとから「この2つは書いてあったのか、推測なのか」を分けて見られるので、出てきた答えを鵜呑みにできない場面で効いてくる作りになっている。
注意点
費用がかかるかは、何を読ませるかで変わる。 コードだけなら API キーは要らず、手元だけで完結する(--code-only でコードに絞れる)。費用が出るのは文書・PDF・画像の概念抜き出しで、こちらは LLM が担う。手元で動くモデルを指定する道も用意されている。
「意外なつながり」は、意外さの順に並べたものでしかない。 どれだけ予想外かで順位を付ける作りなので、そのまま意味のある関係とは読めない。出てきたグラフを結論として扱わないほうがよい(これは当サイトの見立てで、README にこの断りは無い)。
導入は pip を避けるよう案内されている。 README は uv tool install(または pipx)を勧めていて、pip だと参照する環境がずれて動かないことがあるとしている。入れた直後にコマンドが見つからない場合は uv tool update-shell を走らせる。PowerShell では先頭の / を付けずに打つ、という注意もある。
規模のわりに動きが速い。 2026年4月の公開から短い期間でスターを集め、リリースも頻繁に出ている。未解決の不具合や要望、修正依頼も多く残っている。伸びの理由までは当サイトでは確かめられていないが、まだ落ち着いた段階ではなさそうに見える。 ライセンスは Apache-2.0 で、使うぶんの制約は緩い。