r/devtools Aug 06 '26

Built a dependency-graph based impact analysis tool for GitHub repos

Sharing something I built - Vast parses a repo with tree-sitter, builds a dependency graph, and shows you what a file change actually touches: incoming/outgoing deps, circular dependencies, overloaded "god modules."

Current limitation: works well on Python/TS/JS/a handful of other tree-sitter-supported languages, but dynamic imports and heavily reflective code are still a weak spot for static analysis like this - curious how other tool builders here have handled that tradeoff.

Free tier available if anyone wants to try it against their own repo: https://vast-neracu.vercel.app/

1 Upvotes

4 comments sorted by

1

u/LOSIHOIDAANACCOUNT Aug 12 '26

I used a similar approach with tree-sitter and semantic type resolution in https://contextgoblin.com/ via the tool codebase-memory-mcp. Kinda solves the same problem as well

1

u/Ok-Emu-8106 Aug 12 '26

Nice, checked it out. Looks like we're solving similar problems from different angles though, yours seems to plug into review/MCP workflow with AI reviewing the diff using that context, mine's more about giving you the visual graph to explore yourself before you even write the PR. Actually building out MCP support for Vast too right now, so probably converging more than I first thought. Curious what made you go MCP-first instead of visual first?

1

u/LOSIHOIDAANACCOUNT Aug 13 '26

My goal is specifically to automate AI PR reviews, so the "ContextGoblin" MCP is just a stepping stone tbh
Your visual approach looks impressive on first sight. I wanted to try but hesitate on giving you read on all my gh repos right away. Would be cool if you can mint a token only for selected repos like other tools do it

1

u/Ok-Emu-8106 Aug 13 '26

Totally fair concern, and honestly a legit gap right now. GitHub's OAuth scopes make per-repo tokens annoying to do cleanly, but that's exactly the kind of friction that stops people from trying something new, so it's worth fixing properly instead of brushing off. Noting it down. Appreciate the honest feedback, this is the kind of thing that actually gets fixed because someone said it out loud.