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
                    
if you are setting up this repo
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
                    
nuke :add-package QuinntyneBrown.Complex.Cli --version 1.0.0
                    

Complex

NuGet License: MIT

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

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 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