mTTCleaner is a comprehensive PowerShell 7+ based browser maintenance tool designed to keep your browsers running smoothly by cleaning caches, compacting databases, and removing unnecessary metrics files. It supports 28 browsers across Windows, macOS, and Linux with modern interactive UI, active browser detection, and enterprise-grade logging.
- Cross-Platform Support: Works on Windows, macOS, and Linux with PowerShell 7+
- 28 Browser Support: Supports 28 browsers including Chrome, Edge, Firefox, Brave, Opera, Vivaldi, Safari, and more
- Modern Interactive TUI: Spectre.Console-based UI with browser selection menu and operation options
- Active Browser Detection: Automatically detects installed browsers using platform-specific methods
- Cache Cleanup: Removes browser cache files to free up disk space
- Database Compaction: Uses SQLite VACUUM to compact browser databases and reclaim space
- Automatic SQLite3 Installation: Automatically downloads and installs SQLite3 on Windows (v2.1.1+)
- Metrics Removal: Deletes telemetry and metrics files
- Process Management: Automatically closes browser processes before cleanup
- Windows Event Log Integration: Enterprise monitoring via Windows Event Log (Windows only)
- Cross-Platform Shortcuts: Creates shortcuts on Desktop and Start Menu/Applications (all platforms)
- Cross-Platform Scheduling: Sets up monthly automated maintenance via Task Scheduler/launchd/cron (all platforms)
- Parallel Processing: Optional parallel browser processing for improved performance (PowerShell 7+)
- Enhanced Logging: myTech.Today logging module with markdown format and monthly archiving
- Safe Operation: Optional elevation with user confirmation
- -WhatIf Support: Test mode to preview changes without making them
mTTCleaner supports 28 browsers across Windows, macOS, and Linux platforms.
- Google Chrome
- Microsoft Edge
- Brave Browser
- Vivaldi
- Opera
- Opera GX
- Chromium
- Ungoogled Chromium
- Midori Browser
- Min Browser
- DuckDuckGo Browser
- SRWare Iron
- Maxthon Browser
- Slimjet Browser
- Orion Browser (macOS only)
- Arc Browser (macOS only)
- SigmaOS (macOS only)
- Mozilla Firefox
- LibreWolf
- Waterfox
- Pale Moon
- Tor Browser
- SeaMonkey
- Safari (macOS only)
- iCab (macOS only)
- Epiphany/GNOME Web (Linux only)
- Falkon Browser
- Konqueror (Linux only)
- Operating System: Windows 10/11, macOS 10.13+, or Linux (any modern distribution)
- PowerShell: Version 7.0 or later (PowerShell Core/7+)
- Privileges: Administrator/root rights recommended but optional
- Optional: SQLite3 for database compaction (script will skip if not available)
Windows:
# Using winget
winget install Microsoft.PowerShell
# Or download from: https://github.com/PowerShell/PowerShell/releasesmacOS:
# Using Homebrew
brew install powershell/tap/powershell
# Or download from: https://github.com/PowerShell/PowerShell/releasesLinux:
# Ubuntu/Debian
sudo apt update
sudo apt install -y powershell
# Fedora/RHEL/CentOS
sudo dnf install -y powershell
# Or follow instructions at: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-linuxSQLite3 is required for database compaction.
Windows:
- Automatic Installation: The script automatically downloads and installs SQLite3 on first run (v2.1.1+)
- No manual installation required!
- SQLite3 is installed to:
%LOCALAPPDATA%\myTech.Today\mTTCleaner\sqlite3\
macOS:
brew install sqlite3Linux:
# Ubuntu/Debian
sudo apt install sqlite3
# Fedora/RHEL/CentOS
sudo yum install sqlite
# Arch Linux
sudo pacman -S sqlite- Download the script files to a temporary location
- Open PowerShell 7+ (elevated/sudo recommended but optional)
- Execute the script:
Windows:
pwsh -File .\mTTCleaner.ps1macOS/Linux:
pwsh -File ./mTTCleaner.ps1The script will automatically:
- Detect your operating system
- Copy itself to the platform-specific installation directory
- Copy README files to the installation directory
- Re-launch from the installation location
Windows:
- Install:
%LOCALAPPDATA%\myTech.Today\mTTCleaner - Logs:
%LOCALAPPDATA%\myTech.Today\mTTCleaner\logs
macOS:
- Install:
~/Library/Application Support/myTech.Today/mTTCleaner - Logs:
~/Library/Logs/myTech.Today/mTTCleaner
Linux:
- Install:
~/.local/share/myTech.Today/mTTCleaner - Logs:
~/.local/state/myTech.Today/mTTCleaner/logs
Run cleanup for all installed browsers:
Windows:
pwsh -File .\mTTCleaner.ps1macOS/Linux:
pwsh -File ./mTTCleaner.ps1Clean only Google Chrome:
pwsh -File ./mTTCleaner.ps1 -Browser ChromePreview what would be cleaned without making changes:
pwsh -File ./mTTCleaner.ps1 -WhatIfRun without user confirmation prompt:
pwsh -File ./mTTCleaner.ps1 -SkipConfirmationClean cache and metrics but skip database compaction:
pwsh -File ./mTTCleaner.ps1 -SkipDatabaseCompactionCreate desktop and start menu/applications shortcuts:
Windows:
pwsh -File .\mTTCleaner.ps1 -CreateShortcutsmacOS/Linux:
pwsh -File ./mTTCleaner.ps1 -CreateShortcutsSet up monthly automated maintenance:
Windows:
pwsh -File .\mTTCleaner.ps1 -CreateScheduledTaskmacOS/Linux:
pwsh -File ./mTTCleaner.ps1 -CreateScheduledTaskRun in automated mode (for scheduled tasks):
pwsh -File ./mTTCleaner.ps1 -AutomatedCreate shortcuts, scheduled task, and run cleanup (Windows):
pwsh -File .\mTTCleaner.ps1 -CreateShortcuts -CreateScheduledTask| Parameter | Type | Description |
|---|---|---|
-Automated |
Switch | Run in automated mode (skip confirmation and browser selection) |
-SkipConfirmation |
Switch | Skip user confirmation prompt |
-NoParallel |
Switch | Disable parallel processing (use sequential mode) |
-Browser |
String | Target specific browser or 'All' (default: All) |
-SkipDatabaseCompaction |
Switch | Skip database compaction operations |
-CreateShortcuts |
Switch | Create desktop and start menu/applications shortcuts (cross-platform) |
-CreateScheduledTask |
Switch | Create monthly scheduled task (cross-platform) |
-WhatIf |
Switch | Show what would happen without making changes |
When you create a scheduled task using -CreateScheduledTask on Windows, the following task is created:
- Name: mTTCleaner
- Location:
\myTech.Today\ - Schedule: Monthly on the 15th at 1:00 PM
- User: Current logged-in user
- Privileges: Runs with highest privileges (Administrator)
- Conditions:
- Requires AC power
- Wakes computer to run
- Settings:
- Execution time limit: 2 hours
- Auto-restart on failure (up to 3 times, every 10 minutes)
The script automatically creates a launchd plist file at ~/Library/LaunchAgents/com.mytech.today.mttcleaner.plist with the following configuration:
- Label: com.mytech.today.mttcleaner
- Schedule: Monthly on the 15th at 1:00 PM
- Logs: ~/Library/Logs/mTTCleaner.log and mTTCleaner.error.log
The plist is automatically loaded after creation. To manually manage:
# Load the plist
launchctl load ~/Library/LaunchAgents/com.mytech.today.mttcleaner.plist
# Unload the plist
launchctl unload ~/Library/LaunchAgents/com.mytech.today.mttcleaner.plistThe script automatically adds a cron entry to your crontab:
# Run mTTCleaner on the 15th of each month at 1:00 PM
0 13 15 * * /usr/bin/pwsh ~/.local/share/myTech.Today/mTTCleaner/mTTCleaner.ps1 -AutomatedTo manually manage:
# Edit crontab
crontab -e
# View current crontab
crontab -lAll operations are logged to platform-specific locations:
Windows:
%LOCALAPPDATA%\myTech.Today\mTTCleaner\logs\mTTCleaner.log
macOS:
~/Library/Logs/myTech.Today/mTTCleaner/mTTCleaner.log
Linux:
~/.local/state/myTech.Today/mTTCleaner/logs/mTTCleaner.log
Logs include:
- Script start/end times
- Platform and elevation status
- Browser processes stopped
- Cache sizes cleared
- Database compaction results
- Metrics files removed
- Errors and warnings
- Summary statistics
Windows Event Log (Windows only):
- Events are logged to:
Applications and Services Logs → myTech.Today → mTTCleaner - Enhanced event messages with Problem/Context/Solution format
- Monthly log archiving with YYYY-MM naming
- Cyclical logging with 10MB size limit
- Chromium Browsers: Cache, Code Cache, GPU Cache, Service Worker Cache
- Firefox Browsers: cache2, startupCache, OfflineCache
- Chromium Browsers: History, Cookies, Web Data, Login Data
- Firefox Browsers: places.sqlite, favicons.sqlite, cookies.sqlite, formhistory.sqlite
- Files matching patterns:
*metrics*,*telemetry*,datareporting,saved-telemetry-pings
- Cross-Platform Privilege Detection: Detects elevation status on Windows, macOS, and Linux
- User Confirmation: Prompts for 'Yes' confirmation before proceeding (unless
-Automatedor-SkipConfirmation) - -WhatIf Support: Test mode to preview changes without making them
- Process Termination: Safely closes browser processes before cleanup
- Error Handling: Comprehensive try-catch blocks prevent script crashes
- Logging: All operations logged for audit trail
- Selective Cleanup: Can target specific browsers or skip certain operations
- Platform Detection: Automatically detects OS and uses appropriate paths
Windows:
- Ensure you're running PowerShell 7+ (
pwsh.exe, notpowershell.exe) - Check execution policy:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
macOS/Linux:
- Ensure PowerShell 7+ is installed:
pwsh --version - Make script executable:
chmod +x mTTCleaner.ps1 - Run with:
pwsh -File ./mTTCleaner.ps1
Install SQLite3 for your platform (see Requirements section above), or use -SkipDatabaseCompaction to skip this step.
- Close browser manually before running script
- Script will attempt to force-close processes
- On Linux, some browsers may have multiple process names (e.g.,
firefoxvsfirefox-bin)
- Ensure no browser processes are running
- Check file permissions in browser profile directories
- Run with elevated privileges (Administrator/sudo) if needed
- Verify task exists in Task Scheduler under
\myTech.Today\folder with task namemTTCleaner - Check task history for errors
- Ensure computer is on AC power (task requires AC power)
- Verify task is using
pwsh.exenotpowershell.exe
- Browser paths may vary by distribution
- Check if browser is installed:
which chromeorwhich firefox - Use
-Verboseto see which paths are being checked
# Run with elevated privileges
pwsh -File .\mTTCleaner.ps1 -CreateShortcuts -CreateScheduledTask
# This will:
# 1. Install script to %LOCALAPPDATA%\myTech.Today\mTTCleaner\
# 2. Create desktop shortcut
# 3. Create start menu shortcut
# 4. Create monthly scheduled task
# 5. Run cleanup for all browsers# Run the script
pwsh -File ./mTTCleaner.ps1
# Manually set up scheduling (see Scheduling sections above)# Clean all browsers without confirmation
pwsh -File ./mTTCleaner.ps1 -SkipConfirmation# Preview what would be cleaned
pwsh -File ./mTTCleaner.ps1 -WhatIf -Verbose# Clean only Firefox
pwsh -File ./mTTCleaner.ps1 -Browser Firefox -SkipConfirmation# Clean cache but skip database compaction
pwsh -File ./mTTCleaner.ps1 -SkipDatabaseCompactionTypical cleanup results (varies by usage):
- Cache Cleared: 500 MB - 5 GB per browser
- Database Space Saved: 10 MB - 100 MB per browser
- Metrics Files Removed: 50 - 500 files per browser
- Execution Time: 2-5 minutes for all browsers
# Delete the scheduled task
Unregister-ScheduledTask -TaskName "mTTCleaner" -TaskPath "\myTech.Today\" -Confirm:$false
# Delete shortcuts
Remove-Item "$env:USERPROFILE\Desktop\mTTCleaner.lnk" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\myTech.Today\mTTCleaner.lnk" -Force -ErrorAction SilentlyContinue
# Delete installation directory
Remove-Item "$env:LOCALAPPDATA\myTech.Today\mTTCleaner" -Recurse -Force# Unload launchd job (if configured)
launchctl unload ~/Library/LaunchAgents/com.mytech.today.mttcleaner.plist
rm ~/Library/LaunchAgents/com.mytech.today.mttcleaner.plist
# Delete installation directory
rm -rf ~/Library/Application\ Support/myTech.Today/mTTCleaner
rm -rf ~/Library/Logs/myTech.Today/mTTCleaner# Remove cron job (if configured)
crontab -e
# Remove the mTTCleaner line
# Delete installation directory
rm -rf ~/.local/share/myTech.Today/mTTCleaner
rm -rf ~/.local/state/myTech.Today/mTTCleaner- Automatic SQLite3 Installation: Windows users no longer need to manually install SQLite3
- Zero Configuration: Database compaction works out-of-the-box on Windows
- Self-Contained: SQLite3 automatically downloaded and installed to script directory
- Improved UX: Eliminated manual SQLite3 installation step for Windows users
- 22 Browser Support: Added Safari, DuckDuckGo, SRWare Iron, Maxthon, SeaMonkey, Slimjet, Falkon
- Modern TUI: Interactive UI with Spectre.Console (browser selection, operation options)
- Active Browser Detection: Platform-specific detection via registry/mdfind/which/flatpak/snap
- Windows Event Log Integration: Enterprise monitoring via myTech.Today logging module
- Cross-Platform Shortcuts: Desktop and Start Menu/Applications shortcuts on all platforms
- Cross-Platform Scheduling: Task Scheduler/launchd/cron support on all platforms
- Parallel Processing: Framework for parallel browser processing (PowerShell 7+)
- Enhanced Logging: myTech.Today module with markdown format and monthly archiving
- Cross-Platform Support: Full support for Windows, macOS, and Linux
- PowerShell 7+ Required: Updated from PowerShell 5.1 to PowerShell 7.0+
- Platform Detection: Automatic OS detection and platform-specific path resolution
- -WhatIf Support: Added test mode to preview changes
- Enhanced Logging: Self-contained cross-platform logging system
- Progress Indicators: Shows current browser being processed
- Improved Error Handling: Better error messages and recovery
- Initial Windows-only release
- Support for 15 browsers
- Cache cleanup functionality
- Database compaction with SQLite VACUUM
- Metrics file removal
- Desktop and start menu shortcuts
- Monthly scheduled task
- Comprehensive logging
- myTech.Today standards compliance
See CHANGELOG.md for detailed changes.
Copyright (c) 2025 myTech.Today. All rights reserved.
Kyle C. Rode myTech.Today Lake Zurich, IL
For issues, questions, or feature requests:
- Visit: https://mytech.today
- Email: support@mytech.today
- bookmarks.ps1: Manage browser bookmarks
- hosts.ps1: Manage Windows hosts file with ad-blocking
- install-gui.ps1: Application installer with GUI
- Manage-RestorePoints.ps1: Windows System Restore management
- Follows myTech.Today PowerShell development standards
- Cross-platform support using PowerShell 7+
- SQLite database compaction requires sqlite3 (optional)
Note: This tool is designed for personal and professional use. Always ensure you have backups of important browser data before running cleanup operations.