A code repository complexity analyzer CLI tool that analyzes git repositories and generates comprehensive reports with complexity scores and team size estimates. Supports multi-language analysis (C#, TypeScript, Python, C++) and comma-separated URLs for batch analysis.
$ dotnet add package QuinntyneBrown.Complex.CliA code repository complexity analyzer CLI tool that analyzes git repositories and generates comprehensive reports with complexity scores and team size estimates.
dotnet tool install -g Complex.Cli
dotnet new tool-manifest # if you don't have one already
dotnet tool install Complex.Cli
git clone https://github.com/QuinntyneBrown/Complex.git
cd Complex
dotnet build
complex analyze --url https://github.com/dotnet/aspnetcore
Pass a comma-separated list of URLs to analyze several repositories in one run:
complex analyze --url "https://github.com/dotnet/aspnetcore,https://github.com/angular/angular,https://github.com/pallets/flask"
complex analyze --url https://github.com/dotnet/aspnetcore --output reports/aspnetcore-analysis.md
complex --help
complex analyze --help
complex analyze [options]
Options:
-u, --url <url> URL of the git repository to analyze.
Supports comma-separated URLs for multi-repo analysis.
(Required)
-o, --output <path> Output path for the analysis report.
(Default: ./analysis-report.md)
-?, --help Show help and usage information
Complexity is calculated per project:
| Factor | Points |
|---|---|
| Lines of code | 1 per 100 lines |
| File count | 1 per 10 files |
| Technology count | 5 per technology |
| File type diversity | 2 per file type |
| Level | Score Range | Description |
|---|---|---|
| Low | < 50 | Easy to maintain, suitable for a small team |
| Medium | 50 - 149 | Requires experienced developers, small to medium team |
| High | 150 - 299 | Requires dedicated team with expertise |
| Very High | >= 300 | Requires large specialized team |
| Language | Detection |
|---|---|
| C# / .NET | .csproj files |
| TypeScript / Angular | package.json, angular.json |
| Python | setup.py, pyproject.toml, requirements.txt |
| C++ | CMakeLists.txt, Makefile |
Complex/
├── src/
│ ├── Complex.Cli/ # CLI application
│ │ ├── Commands/ # Command definitions
│ │ ├── Models/ # Data models
│ │ └── Services/ # Core services
│ ├── Complex.Abstractions/ # Plugin interfaces
│ ├── Complex.Plugin.DotNet/ # .NET analyzer
│ ├── Complex.Plugin.TypeScript/ # TypeScript/Angular analyzer
│ ├── Complex.Plugin.Python/ # Python analyzer
│ └── Complex.Plugin.Cpp/ # C++ analyzer
├── docs/ # User guides
├── CONTRIBUTING.md # Contribution guidelines
└── README.md
Contributions are welcome! See CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.