QuinntyneBrown.Complex.Cli
1.0.0
dotnet tool install --global QuinntyneBrown.Complex.Cli --version 1.0.0
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
dotnet tool install --local QuinntyneBrown.Complex.Cli --version 1.0.0
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=QuinntyneBrown.Complex.Cli&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package QuinntyneBrown.Complex.Cli --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Complex
A code repository complexity analyzer CLI tool that analyzes git repositories and generates comprehensive reports with complexity scores and team size estimates.
Features
- Multi-Language Support - Analyzes C#/.NET, TypeScript/Angular, Python, and C++ projects
- Multi-Repository Analysis - Analyze multiple repositories in a single run with comma-separated URLs
- Complexity Scoring - Scores based on lines of code, file count, technology stack, and file type diversity
- Team Size Estimation - Estimates recommended team size per project and across repositories
- Comprehensive Reports - Generates detailed Markdown reports with per-project breakdowns
- Plugin Architecture - Extensible language support through analyzer plugins
Installation
As a .NET Global Tool (Recommended)
dotnet tool install -g Complex.Cli
As a .NET Local Tool
dotnet new tool-manifest # if you don't have one already
dotnet tool install Complex.Cli
Build from Source
git clone https://github.com/QuinntyneBrown/Complex.git
cd Complex
dotnet build
Quick Start
Analyze a Single Repository
complex analyze --url https://github.com/dotnet/aspnetcore
Analyze Multiple Repositories
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"
Custom Output Path
complex analyze --url https://github.com/dotnet/aspnetcore --output reports/aspnetcore-analysis.md
Help
complex --help
complex analyze --help
CLI Reference
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
Report Structure
Single Repository Report
- Executive Summary - Total projects, complexity score, team size, technologies
- Project Analysis - Per-project metrics, technologies, file distribution, complexity assessment
- Recommendations - Team organization, technology standardization, code quality guidance
Multi-Repository Report
- Executive Summary - Aggregate metrics across all repositories
- Repository Comparison - Side-by-side comparison table
- Per-Repository Details - Full breakdown for each repository
- Cross-Repository Recommendations - Shared patterns and standardization advice
Complexity Scoring
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 |
Complexity Levels
| 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 |
Team Size Estimation
- Base: 1 developer per 10,000 lines of code
- Complexity adjustment: +1 at score > 100, +1 at > 200, +2 at > 500
- Technology adjustment: +1 when technology count > 5
Supported Languages
| Language | Detection |
|---|---|
| C# / .NET | .csproj files |
| TypeScript / Angular | package.json, angular.json |
| Python | setup.py, pyproject.toml, requirements.txt |
| C++ | CMakeLists.txt, Makefile |
Architecture
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
Technology Stack
- CLI Framework: System.CommandLine
- Dependency Injection: Microsoft.Extensions.DependencyInjection
- Logging: Microsoft.Extensions.Logging
- Git Operations: LibGit2Sharp
- Target Framework: .NET 9.0
Contributing
Contributions are welcome! See CONTRIBUTING.md for guidelines.
Documentation
License
This project is licensed under the MIT License - see the LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 129 | 2/6/2026 |