A .NET developer CLI tool for keeping your workspace clean and organized.
dotnet tool install -g DotNetMateToolRequires .NET 10 runtime.
Recursively scans and removes build artifacts, temporary directories, and generated files. Displays cleanup statistics with total size reclaimed.
Directories removed:
| Pattern | Description |
|---|---|
bin/ |
Build output |
obj/ |
Intermediate build files |
.vs/ |
Visual Studio local settings |
.tmp/ |
Temporary directories |
TestResults/ |
Test result output |
*Installer-cache/ |
Installer cache directories |
.nuke/temp/ |
NUKE build system temp files |
Files removed:
| Pattern | Description |
|---|---|
*.binlog |
MSBuild binary logs |
*_wpftmp.csproj |
WPF temporary project files |
After deletion, empty directories left behind are automatically cleaned up.
When a file cannot be deleted because another process holds it open, mate clean reports the locking process (PID and name). Pass --kill (-k) to terminate those processes and retry the deletion. This is Windows-only (uses the Restart Manager) and fully non-interactive - without the flag it only reports the lock.
mate clean # clean current directory
mate clean --folder C:\repos # clean a specific directory
mate clean --include-worktrees # also clean bin/obj inside linked git worktrees
mate clean --kill # terminate processes locking files, then retry (Windows)Recursively removes empty directories. Directories containing only system/metadata files are treated as empty and removed along with those files.
System files considered as empty content:
desktop.ini, .DS_Store, Thumbs.db, metadata.opf, cover.jpg
.git directories are always protected and never deleted.
mate removeEmpty # current directory
mate removeEmpty --folder C:\repos # specific directoryAggregates git commit logs across multiple repositories into a single report. Useful for timesheets and activity reports.
mate gitlog --from 2025-01-01 # scan current directory
mate gitlog --root C:\repos --from 2025-01-01 # scan specific root
mate gitlog --from 2025-01-01 --exclude repo1,repo2 # exclude repos
mate gitlog --from 2025-01-01 --json # export to JSON
mate gitlog --from 2025-01-01 --csv # export to CSV
mate gitlog --from 2025-01-01 --with previous.json # merge with existing dataCleans ReSharper/Rider SolutionCaches directories under %LOCALAPPDATA%\JetBrains.
mate resharper cleanSorts entries in ReSharper .DotSettings files alphabetically by XAML key.
mate resharper config --sort MySettings.DotSettings