I've been wanting something exactly like this for the "wait where does this even get called" moments. The handful of times I've tried to build mental maps of unfamiliar codebases, I end up with a browser full of GitHub tabs and a text file of orphaned function names, which is basically just externalizing my confusion.
What I'm curious about is how you're handling the clustering. Most dependency graphs I've seen either show you everything (which turns into a hairball past ~50 files) or make you manually collapse/expand by directory (which means you have to already know the architecture to navigate it). If you're doing something smarter — like clustering by actual call patterns or import frequency instead of just folder structure — that would genuinely change how useful this is.
Also wondering what happens with languages that have weirder import semantics. Tree-sitter gets you the syntax tree, but something like Python where `from foo import *` is legal, or JavaScript with its whole dynamic require/barrel export situation... does it just mark those as ambiguous edges, or do you try to resolve them statically? Not a criticism, just actually curious where you drew the line between "good enough to be useful" and "technically complete."
Either way, this feels like the right level of tool. Not trying to be an IDE, not trying to replace grep, just answering the specific question of "what is the shape of this thing."
I've been wanting something exactly like this for the "wait where does this even get called" moments. The handful of times I've tried to build mental maps of unfamiliar codebases, I end up with a browser full of GitHub tabs and a text file of orphaned function names, which is basically just externalizing my confusion.
What I'm curious about is how you're handling the clustering. Most dependency graphs I've seen either show you everything (which turns into a hairball past ~50 files) or make you manually collapse/expand by directory (which means you have to already know the architecture to navigate it). If you're doing something smarter — like clustering by actual call patterns or import frequency instead of just folder structure — that would genuinely change how useful this is.
Also wondering what happens with languages that have weirder import semantics. Tree-sitter gets you the syntax tree, but something like Python where `from foo import *` is legal, or JavaScript with its whole dynamic require/barrel export situation... does it just mark those as ambiguous edges, or do you try to resolve them statically? Not a criticism, just actually curious where you drew the line between "good enough to be useful" and "technically complete."
Either way, this feels like the right level of tool. Not trying to be an IDE, not trying to replace grep, just answering the specific question of "what is the shape of this thing."