A lightweight CLI tool to analyze and visualize dependency graphs in your codebase. Detect circular dependencies, unused imports, and generate visual dependency maps.
- 🔍 Detect circular dependencies in JavaScript/TypeScript and Python projects
- 📊 Generate ASCII dependency trees
- 🎯 Find unused imports
- 🚀 Fast and zero-config
- 🌳 Show dependency depth and complexity metrics
npm install -g depgraph
# or
pip install depgraphdepgraph analyze ./srcdepgraph circular ./srcdepgraph tree ./src/index.jsdepgraph unused ./srcAnalyzing dependency graph...
📦 ./src/index.js
├─ ./utils/logger.js
│ └─ ./config/settings.js
├─ ./api/routes.js
│ ├─ ./middleware/auth.js
│ └─ ./controllers/user.js
└─ ./database/connect.js
⚠️ Circular dependency detected:
./api/routes.js → ./middleware/auth.js → ./api/routes.js
📊 Metrics:
Total modules: 24
Max depth: 4
Circular dependencies: 1
Unused imports: 3
Create a .depgraphrc.json in your project root:
{
"ignore": ["node_modules", "dist", "build"],
"extensions": [".js", ".ts", ".jsx", ".tsx", ".py"],
"maxDepth": 10
}const { analyzeDependencies, findCircular } = require('depgraph');
const graph = analyzeDependencies('./src');
const circles = findCircular(graph);
console.log(circles);- Parses import/require statements using AST analysis
- Builds a directed graph of module dependencies
- Uses depth-first search to detect cycles
- Tracks import usage across the codebase
- JavaScript (ES6 imports, CommonJS require)
- TypeScript
- Python (import statements)
MIT
Pull requests welcome! Please read CONTRIBUTING.md first.
- Support for more languages (Go, Rust, Java)
- Interactive web UI visualization
- GitHub Action for CI/CD integration
- Export to JSON/GraphML/DOT formats
- Identify potential code splitting opportunities