dotnet-hotspots-tool
1.2.3
dotnet tool install --global dotnet-hotspots-tool --version 1.2.3
dotnet new tool-manifest
dotnet tool install --local dotnet-hotspots-tool --version 1.2.3
#tool dotnet:?package=dotnet-hotspots-tool&version=1.2.3
nuke :add-package dotnet-hotspots-tool --version 1.2.3
🔥 dotnet-hotspots
dotnet-hotspots is a .NET global tool that analyzes your Git repository's commit history to identify the most frequently changed files — often a sign of bug-prone areas, architectural bottlenecks, or critical business logic that needs extra attention.
📷 Example
Top 10 Hot Files — Code Files Only
================================================================================
Rank Changes File Path
--------------------------------------------------------------------------------
1 312 src/Services/UserService.cs
2 287 src/Data/ApplicationDbContext.cs
3 201 src/Controllers/AuthController.cs
4 198 src/Services/OrderService.cs
5 176 src/Models/User.cs
6 154 src/Services/PaymentService.cs
7 143 src/Controllers/OrderController.cs
8 121 src/Repositories/UserRepository.cs
9 115 src/Services/EmailService.cs
10 98 src/Models/Order.cs
================================================================================
Code files found: 143 | Total files in repo: 381 | Use --all to see everything
📚 Usage Examples
# Show top 10 hot files (--<number> accepts any positive integer: --10, --50, --100, ...)
dotnet-hotspots --10
# Show top 50 hot files
dotnet-hotspots --50
# No number? Defaults to top 30
dotnet-hotspots
# Show all files (including docs, configs, build artifacts, etc.)
dotnet-hotspots --all
# Get help
dotnet-hotspots --help
# Show version
dotnet-hotspots --version
📦 Installation Options
# Global Tool (Recommended)
dotnet tool install --global dotnet-hotspots-tool
# Update to Latest Version
dotnet tool update --global dotnet-hotspots-tool
# Uninstall
dotnet tool uninstall --global dotnet-hotspots-tool
# Local Installation (Per Project)
dotnet tool install dotnet-hotspots-tool
🧠 How It Works
dotnet-hotspots runs git log under the hood to:
- Extract file paths from all commits
- Count occurrences of each file across commits
- Rank files by frequency of changes
- Display results in a clean, readable format
The tool focuses on commit frequency rather than lines changed, giving you insight into which files require the most developer attention.
🔍 Smart Filtering
By default, non-code files are filtered out so the results focus on what matters. Use --all to disable filtering and see everything.
Excluded folders:
bin, obj, dist, build, publish, packages, .git, .vs, .idea, .nuget, .vscode, node_modules
Excluded extensions:
.md, .txt, .pdf, .log, .lock, .sum
Excluded files:
.gitignore, .gitattributes, .editorconfig, .csharpierignore, .dockerignore, .env, Makefile, LICENSE, Dockerfile (and Dockerfile.* variants)
📣 Issues or Suggestions
Please create an issue on GitHub or visit the repository for more information.
☕ Buy me a coffee
Donations are welcome to appreciate my work and to keep this project alive, but isn't required at all.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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 is compatible. 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. |
This package has no dependencies.