MacCleanCLI
๐ MacCleanCLI is a sleek, powerful, and interactive command-line application designed specifically for macOS, providing efficient disk cleanup, system optimization, and an outstanding user experience directly from your terminal.
Install / Use
/learn @QDenka/MacCleanCLIREADME
๐ macOS Cleaner
<div align="center"> <img width="1737" alt="macOS Cleaner Interface" src="https://github.com/user-attachments/assets/fdeb8a4e-3d95-4408-9e4b-484ee47000a7" />A beautiful and powerful console application for cleaning and optimizing macOS systems
Features โข Installation โข Usage โข Documentation โข Contributing
</div>โจ Features
๐ Smart Scanning
- Multi-threaded intelligent file scanning across 19+ categories
- Real-time progress tracking with detailed statistics
- NEW: Preview detailed file list before cleaning with pagination
- Pattern-based file identification with safety checks
- Configurable minimum file size filters
๐งน Safe Cleaning
- Priority-based cleaning (HIGH, MEDIUM, LOW, OPTIONAL)
- Built-in protection for system-critical files
- Optional backup system with configurable retention
- NEW: Show exactly what will be deleted with file paths and sizes
- Batch operations with parallel processing
- Dry-run mode for safe preview
โก System Optimization
- Memory purging for performance boost
- DNS cache flushing for network optimization
- Startup items management (LaunchAgents/Daemons/LoginItems)
- Spotlight index rebuilding
- Disk verification utilities
๐จ Beautiful UI
- Rich console interface with colors and animations
- Interactive menu system with keyboard shortcuts
- Real-time progress bars and status updates
- Comprehensive scan results visualization
- User-friendly file detail preview with pagination
๐ก๏ธ Safety First
- Protected system paths and directories
- Confirmation prompts for destructive operations
- Automatic backup before deletion (configurable)
- Post-cleaning verification
- Comprehensive error handling and logging
๐ Supported Cleaning Categories
System Categories
- ๐๏ธ System Cache - System-level cache files (HIGH priority)
- ๐ค User Cache - User application cache files (HIGH priority)
- ๐ Temporary Files - System temporary files (HIGH priority)
- ๐ Log Files - System and application logs (MEDIUM priority)
- ๐๏ธ Trash - Empty system trash bin (MEDIUM priority)
Browser Data
- ๐ Browser Cache - Safari, Chrome, Firefox, Brave, Edge, Opera, Vivaldi (MEDIUM priority)
Developer Tools โก NEW
- ๐จ Xcode Derived Data - Build artifacts and indexes (HIGH priority)
- ๐๏ธ Xcode Archives - Old app archives (MEDIUM priority)
- ๐ณ Docker Data - Containers, images, volumes (MEDIUM priority)
- ๐บ Homebrew Cache - Package manager cache (MEDIUM priority)
- ๐ข Node.js Modules - node_modules directories (LOW priority)
- ๐ Python Cache - pycache and .pyc files (LOW priority)
File Management
- ๐ฅ Downloads - Old downloads folder files (OPTIONAL)
- ๐ Duplicate Files - Identical files detection (OPTIONAL)
- ๐ Large Files - Files over 100MB (OPTIONAL)
- ๐ฐ๏ธ Old Files - Files not accessed in 6+ months (OPTIONAL)
- ๐ฆ App Leftovers - Files from uninstalled apps (MEDIUM priority)
๐ Installation
Prerequisites
- macOS 10.15 (Catalina) or later
- Python 3.10 or higher
- pip package manager
Quick Install
# Clone the repository
git clone https://github.com/QDenka/MacCleanCLI.git
cd MacCleanCLI
# Install with pip (development mode)
pip install -e .
Verify Installation
# Check if commands are available
macos-cleaner --help
mclean --help
System Permissions
For full functionality, grant Terminal Full Disk Access:
- Open System Settings โ Privacy & Security โ Full Disk Access
- Click the + button and add your Terminal app
- Restart Terminal and rerun the application
๐ Usage
Interactive Mode (Recommended)
# Run with full interface
macos-cleaner
# Or use the short alias
mclean
Interactive Workflow:
- Scan System - Choose categories to scan
- Review Results - See detailed file list with sizes
- Clean Files - Select items to delete
- Optimize System - Run system optimizations
Command Line Options
# Scan only (no cleaning)
macos-cleaner --scan-only
# Automatic mode (clean recommended items)
macos-cleaner --auto
# Use custom config file
macos-cleaner --config ~/custom-config.json
# Enable verbose output
macos-cleaner --verbose
# Dry run mode (preview only)
macos-cleaner --dry-run
# Combine options
macos-cleaner --scan-only --verbose
Python Direct Execution
# Run directly with Python
python main.py
# With options
python main.py --scan-only
python main.py --auto --verbose
๐ฎ Interactive Menu Guide
Main Menu
[1] ๐ Scan System - Scan for cleanable files
[2] ๐งน Clean Files - Remove scanned files
[3] โก Optimize System - System optimization tasks
[4] โ๏ธ Settings - Configure application
[q] ๐ช Quit - Exit application
Scan Menu
[a] All Categories - Scan everything
[1-9] Specific Category - Select individual category
[q] Back - Return to main menu
New Feature: File Detail Preview โจ
When cleaning, you can now preview exactly what will be deleted:
Show detailed file list before cleaning? [Y/n]: y
๐ System Cache Files
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Path: ~/Library/Caches/com.apple.Safari/Cache.db โ
โ Size: 45.2 MB โ
โ Safe: โ
Yes โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ... (showing 1-20 of 156 files) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Continue to next page? [Y/n]:
โ๏ธ Configuration
Config File Location
~/.MacCleanCLI/config.json
Default Configuration
{
"dry_run": false,
"enable_backup": true,
"verify_cleaning": true,
"remove_empty_dirs": true,
"max_workers": 4,
"backup_retention_days": 7,
"min_file_size_mb": 0.001,
"scan_hidden_files": false,
"protected_extensions": [".dmg", ".pkg", ".app"],
"protected_directories": [
"/System",
"/Library/System",
"/private/var/db"
]
}
Configuration Options
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| dry_run | bool | false | Preview mode without deletion |
| enable_backup | bool | true | Backup files before cleaning |
| verify_cleaning | bool | true | Verify files are deleted |
| remove_empty_dirs | bool | true | Remove empty directories |
| max_workers | int | 4 | Parallel processing threads |
| backup_retention_days | int | 7 | Days to keep backups |
| min_file_size_mb | float | 0.001 | Minimum file size (1KB) |
| scan_hidden_files | bool | false | Include hidden files |
๐ก๏ธ Safety Features
Protected Paths
The following paths are never touched:
/System/*- System files/Library/System/*- System libraries/private/var/db/*- System databases/usr/bin/*,/usr/sbin/*- System binaries- User home directory root files
Safety Mechanisms
- โ Pre-flight safety checks
- โ User confirmation for all destructive operations
- โ Optional automatic backup system
- โ Post-cleaning verification
- โ Dry-run mode for risk-free preview
- โ Comprehensive error handling and logging
Backup System
# Backups stored in
~/.macos-cleaner/backups/
# Structure
backups/
โโโ 2024-10-06_170000/ # Timestamp-based folders
โ โโโ Caches/
โ โโโ manifest.json # Backup metadata
โโโ 2024-10-05_120000/
๐๏ธ Project Architecture
Directory Structure
MacCleanCLI/
โโโ main.py # Application entry point
โโโ core/ # Core business logic
โ โโโ scanner.py # Multi-threaded file scanning
โ โโโ cleaner.py # Safe file deletion engine
โ โโโ optimizer.py # System optimization utilities
โโโ models/ # Data models and types
โ โโโ scan_result.py # Result structures and enums
โโโ ui/ # User interface layer
โ โโโ interface.py # Interactive menu system
โ โโโ components.py # Reusable UI components
โโโ utils/ # Utility modules
โ โโโ config.py # Configuration management
โ โโโ logger.py # Logging system
โ โโโ backup.py # Backup management
โ โโโ exceptions.py # Custom exceptions
โโโ tests/ # Test suite (87 tests)
โโโ test_scanner.py
โโโ test_cleaner.py
โโโ test_integration.py
โโโ test_optimizer.py
โโโ test_new_categories.py
Design Principles
- SOLID Principles - Clean, maintainable code architecture
- Type Safety - Full type hints with dataclasses
- Error Handling - Comprehensive exception handling
- Testing - 87 tests with 41% coverage
- Performance - Multi-threaded parallel processing
- Safety - Multiple layers of protection
๐ง Development
Setup Development Environment
# Clone and navigate
git clone https://github.com/QDenka/MacCleanCLI.git
cd MacCleanCLI
# Create virtual environment (recommended
