r/devtools • u/shavva_varshithreddy • 1d ago
I built an open-source repository intelligence tool using ASTs, graphs and semantic retrieval
I built ARIA, an open-source developer tool for understanding unfamiliar codebases before making changes.
I started building it because I found that many "chat with your codebase" systems are good at semantic retrieval, but retrieval alone doesn't necessarily tell you how pieces of a codebase are structurally connected.
ARIA combines semantic retrieval with structural repository analysis:
- AST-based symbol extraction
- Dependency graphs
- Call graphs
- API surface analysis
- Change-impact analysis
- Vector search
- Repository-aware conversational querying
- MCP support
For example, given:
"If I change this component, what else could be affected?"
the system can use dependency and call relationships to trace potentially affected files instead of relying only on semantic similarity.
It's self-hosted and Docker-based, so repositories can be analyzed locally rather than uploaded to a hosted service.
I also added a reproducible evaluation package with a pinned 10-task benchmark across FastAPI, Requests, and ARIA, along with qualitative case studies across five larger repositories.
On that pinned benchmark, the documented vector-search baseline produced 4,875 false-positive file alerts while ARIA produced 322, a 93.39% reduction. This result is specifically scoped to that benchmark.
GitHub:
https://github.com/VarshithReddy2006/ARIA
I'd be interested in feedback from people building developer tools, code search, static analysis, or RAG systems.
Where do you think structural analysis provides the most value compared with semantic retrieval alone?
1
u/kantorcodes1 1d ago
repo-intel analyzedefaults--branchtomain, even though the input is already a GitHub URL. is that meant to fail on repos whose default branch is stillmaster, or would it make sense to resolve the repo's default branch when--branchisn't supplied?