Repository files navigation

Mole

Deep clean and optimize your Mac.

StarsVersionLicenseCommitsTwitterTelegram

Mole - 95.50GB freed

Features

  • All-in-one toolkit: Combines CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus in a single binary
  • Deep cleaning: Removes caches, logs, browser leftovers, and orphaned app data to reclaim gigabytes of space
  • Smart uninstaller: Removes apps plus launch agents, preferences, and hidden remnants
  • Disk insights: Visualizes usage, finds large files, rebuilds caches, and refreshes system services
  • Live monitoring: Shows real-time CPU, GPU, memory, disk, and network stats

Quick Start

Install via Homebrew

brew install mole

Or via script

# Optional args: -s latest for main branch code, -s 1.17.0 for specific version
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

Note: Mole is built for macOS. An experimental Windows version is available in the windows branch for early adopters.

Run

mo # Interactive menu
mo clean # Deep cleanup + already-uninstalled app leftovers
mo uninstall # Remove installed apps + their leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer (or 'mo analyse')
mo status # Live system health dashboard
mo purge # Clean project build artifacts
mo installer # Find and remove installer files
mo touchid # Configure Touch ID for sudo
mo completion # Set up shell tab completion
mo update # Update Mole
mo update --nightly # Update to latest unreleased main build, script install only
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version

Preview safely

mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run
# Also works with: optimize, installer, remove, completion, touchid enable
mo clean --dry-run --debug # Preview + detailed logs
mo optimize --whitelist # Manage protected optimization rules
mo clean --whitelist # Manage protected caches
mo purge --paths # Configure project scan directories
mo analyze /Volumes # Analyze external drives only

Security & Safety Design

Mole is a local system maintenance tool, and some commands can perform destructive local operations.

Mole uses safety-first defaults: path validation, protected-directory rules, conservative cleanup boundaries, and explicit confirmation for higher-risk actions. When risk or uncertainty is high, Mole skips, refuses, or requires stronger confirmation rather than broadening deletion scope.

mo analyze is safer for ad hoc cleanup because it moves files to Trash through Finder instead of deleting them directly.

Review SECURITY.md and SECURITY_AUDIT.md for reporting guidance, safety boundaries, and current limitations.

Tips

  • Video tutorial: Watch the Mole tutorial video, thanks to PAPAYA ้›ป่…ฆๆ•™ๅฎค.
  • Safety and logs: clean, uninstall, purge, installer, and remove are destructive. Review with --dry-run first, and add --debug when needed. File operations are logged to ~/Library/Logs/mole/operations.log. Disable with MO_NO_OPLOG=1. Review SECURITY.md and SECURITY_AUDIT.md.
  • App leftovers: use mo clean when the app is already uninstalled, and mo uninstall when the app is still installed.
  • Navigation: Mole supports arrow keys and Vim bindings h/j/k/l.

Features in Detail

Deep System Cleanup

$ mo clean
Scanning cache directories...
โœ“ User app cache 45.2GB
โœ“ Browser cache (Chrome, Safari, Firefox) 10.5GB
โœ“ Developer tools (Xcode, Node.js, npm) 23.3GB
โœ“ System logs and temp files 3.8GB
โœ“ App-specific cache (Spotify, Dropbox, Slack) 8.4GB
โœ“ Trash 12.3GB
====================================================================
Space freed: 95.5GB | Free space now: 223.5GB
====================================================================

Note: In mo clean -> Developer tools, Mole removes unused CoreSimulator Volumes/Cryptex entries and skips IN_USE items.

Smart App Uninstaller

$ mo uninstall
Select Apps to Remove
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
โ–ถ โ˜‘ Photoshop 2024 (4.2G) | Old
โ˜ IntelliJ IDEA (2.8G) | Recent
โ˜ Premiere Pro (3.4G) | Recent
Uninstalling: Photoshop 2024
โœ“ Removed application
โœ“ Cleaned 52 related files across 12 locations
- Application Support, Caches, Preferences
- Logs, WebKit storage, Cookies
- Extensions, Plugins, Launch daemons
Note: On macOS 15 and later, Local Network permission entries can outlive app removal. Mole warns when an uninstalled app declares Local Network usage, but it does not auto-reset `/Volumes/Data/Library/Preferences/com.apple.networkextension*.plist` because that reset is global and requires Recovery mode.
====================================================================
Space freed: 12.8GB
====================================================================

System Optimization

$ mo optimize
System: 5/32 GB RAM | 333/460 GB Disk (72%) | Uptime 6d
โœ“ Rebuild system databases and clear caches
โœ“ Reset network services
โœ“ Refresh Finder and Dock
โœ“ Clean diagnostic and crash logs
โœ“ Remove swap files and restart dynamic pager
โœ“ Rebuild launch services and spotlight index
====================================================================
System optimization completed
====================================================================
Use `mo optimize --whitelist` to exclude specific optimizations.

Disk Space Analyzer

Note: By default, Mole skips external drives under /Volumes for faster startup. To inspect them, run mo analyze /Volumes or a specific mount path.

$ mo analyze
Analyze Disk ~/Documents | Total: 156.8GB
โ–ถ 1. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 48.2% | ๐Ÿ“ Library 75.4GB >6mo
2. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 22.1% | ๐Ÿ“ Downloads 34.6GB
3. โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 14.3% | ๐Ÿ“ Movies 22.4GB
4. โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 10.8% | ๐Ÿ“ Documents 16.9GB
5. โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 5.2% | ๐Ÿ“„ backup_2023.zip 8.2GB
โ†‘โ†“โ†โ†’ Navigate | O Open | F Show | โŒซ Delete | L Large files | Q Quit

Live System Status

Real-time dashboard with health score, hardware info, and performance metrics.

$ mo status
Mole Status Health โ— 92 MacBook Pro ยท M4 Pro ยท 32GB ยท macOS 14.5
โš™ CPU โ–ฆ Memory
Total โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 45.2% Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 58.4%
Load 0.82 / 1.05 / 1.23 (8 cores) Total 14.2 / 24.0 GB
Core 1 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 78.3% Free โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 41.6%
Core 2 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 62.1% Avail 9.8 GB
โ–ค Disk โšก Power
Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 67.2% Level โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%
Free 156.3 GB Status Charged
Read โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 2.1 MB/s Health Normal ยท 423 cycles
Write โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 18.3 MB/s Temp 58ยฐC ยท 1200 RPM
โ‡… Network โ–ถ Processes
Down โ–โ–โ–ˆโ–‚โ–โ–โ–โ–โ–โ–โ–โ–โ–‡โ–†โ–…โ–‚ 0.54 MB/s Code โ–ฎโ–ฎโ–ฎโ–ฎโ–ฏ 42.1%
Up โ–„โ–„โ–„โ–ƒโ–ƒโ–ƒโ–„โ–†โ–†โ–‡โ–ˆโ–โ–โ–โ–โ– 0.02 MB/s Chrome โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 28.3%
Proxy HTTP ยท 192.168.1.100 Terminal โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 12.5%

Health score is based on CPU, memory, disk, temperature, and I/O load, with color-coded ranges.

Shortcuts: In mo status, press k to toggle the cat and save the preference, and q to quit.

When enabled, mo status shows a read-only alert banner for processes that stay above the configured CPU threshold for a sustained window. Use --proc-cpu-threshold, --proc-cpu-window, or --proc-cpu-alerts=false to tune or disable it.

Machine-Readable Output

Both mo analyze and mo status support a --json flag for scripting and automation.

mo status also auto-detects when its output is piped (not a terminal) and switches to JSON automatically.

# Disk analysis as JSON
$ mo analyze --json ~/Documents
{
"path": "/Users/you/Documents",
"overview": false,
"entries": [
{ "name": "Library", "path": "...", "size": 80939438080, "is_dir": true },
...
],
"large_files": [
{ "name": "backup.zip", "path": "...", "size": 8796093022 }
],
"total_size": 168393441280,
"total_files": 42187
}
# System status as JSON
$ mo status --json
{
"host": "MacBook-Pro",
"health_score": 92,
"cpu": { "usage": 45.2, "logical_cpu": 8, ... },
"memory": { "total": 25769803776, "used": 15049334784, "used_percent": 58.4 },
"disks": [ ... ],
"uptime": "3d 12h 45m",
...
}
# Auto-detected JSON when piped
$ mo status | jq '.health_score'
92

Project Artifact Purge

Clean old build artifacts such as node_modules, target, .build, build, and dist to free up disk space.

mo purge
Select Categories to Clean - 18.5GB (8 selected)
โžค โ— my-react-app 3.2GB | node_modules
โ— old-project 2.8GB | node_modules
โ— rust-app 4.1GB | target
โ— next-blog 1.9GB | node_modules
โ—‹ current-work 856MB | node_modules | Recent
โ— django-api 2.3GB | venv
โ— vue-dashboard 1.7GB | node_modules
โ— backend-service 2.5GB | node_modules

Note: We recommend installing fd on macOS. brew install fd

Safety: This permanently deletes selected artifacts. Review carefully before confirming. Projects newer than 7 days are marked and unselected by default.

Custom Scan Paths

Run mo purge --paths to configure scan directories, or edit ~/.config/mole/purge_paths directly:

~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB

When custom paths are configured, Mole scans only those directories. Otherwise, it uses defaults like ~/Projects, ~/GitHub, and ~/dev.

Installer Cleanup

Find and remove large installer files across Downloads, Desktop, Homebrew caches, iCloud, and Mail. Each file is labeled by source.

mo installer
Select Installers to Remove - 3.8GB (5 selected)
โžค โ— Photoshop_2024.dmg 1.2GB | Downloads
โ— IntelliJ_IDEA.dmg 850.6MB | Downloads
โ— Illustrator_Setup.pkg 920.4MB | Downloads
โ— PyCharm_Pro.dmg 640.5MB | Homebrew
โ— Acrobat_Reader.dmg 220.4MB | Downloads
โ—‹ AppCode_Legacy.zip 410.6MB | Downloads

Quick Launchers

Launch Mole commands from Raycast or Alfred:

curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash

Adds 5 commands: Mole Clean, Mole Uninstall, Mole Optimize, Mole Analyze, Mole Status.

Raycast Setup

After running the script, complete these steps in Raycast:

  1. Open Raycast Settings (โŒ˜ + ,)
  2. Go to Extensions โ†’ Script Commands
  3. Click "Add Script Directory" (or "+")
  4. Add path: ~/Library/Application Support/Raycast/script-commands
  5. Search in Raycast for: "Reload Script Directories" and run it
  6. Done! Search for Mole Clean or clean, Mole Optimize, or Mole Status to use the commands

Note: The script creates the commands, but Raycast still requires a one-time manual script directory setup.

Terminal Detection

Mole auto-detects your terminal app. iTerm2 has known compatibility issues. We highly recommend Kaku. Other good options are Alacritty, kitty, WezTerm, Ghostty, and Warp. To override, set MO_LAUNCHER_APP=<name>.

Community Love

Thanks to everyone who helped build Mole. Go follow them. โค๏ธ



Real feedback from users who shared Mole on X.

Community feedback on Mole

Support

  • If Mole helped you, share it with friends or give it a star.
  • Got ideas or bugs? Open an issue or PR, feel free to contribute your best AI model.
  • I have two cats, TangYuan and Coke. If you think Mole delights your life, you can feed them canned food ๐Ÿฅฉ.

License

MIT License. Feel free to use Mole and contribute.

About

๐Ÿน Deep clean and optimize your Mac.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Mole

Deep clean and optimize your Mac.

StarsVersionLicenseCommitsTwitterTelegram

Mole - 95.50GB freed

Features

  • All-in-one toolkit: Combines CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus in a single binary
  • Deep cleaning: Removes caches, logs, browser leftovers, and orphaned app data to reclaim gigabytes of space
  • Smart uninstaller: Removes apps plus launch agents, preferences, and hidden remnants
  • Disk insights: Visualizes usage, finds large files, rebuilds caches, and refreshes system services
  • Live monitoring: Shows real-time CPU, GPU, memory, disk, and network stats

Quick Start

Install via Homebrew

brew install mole

Or via script

# Optional args: -s latest for main branch code, -s 1.17.0 for specific version
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

Note: Mole is built for macOS. An experimental Windows version is available in the windows branch for early adopters.

Run

mo # Interactive menu
mo clean # Deep cleanup + already-uninstalled app leftovers
mo uninstall # Remove installed apps + their leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer (or 'mo analyse')
mo status # Live system health dashboard
mo purge # Clean project build artifacts
mo installer # Find and remove installer files
mo touchid # Configure Touch ID for sudo
mo completion # Set up shell tab completion
mo update # Update Mole
mo update --nightly # Update to latest unreleased main build, script install only
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version

Preview safely

mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run
# Also works with: optimize, installer, remove, completion, touchid enable
mo clean --dry-run --debug # Preview + detailed logs
mo optimize --whitelist # Manage protected optimization rules
mo clean --whitelist # Manage protected caches
mo purge --paths # Configure project scan directories
mo analyze /Volumes # Analyze external drives only

Security & Safety Design

Mole is a local system maintenance tool, and some commands can perform destructive local operations.

Mole uses safety-first defaults: path validation, protected-directory rules, conservative cleanup boundaries, and explicit confirmation for higher-risk actions. When risk or uncertainty is high, Mole skips, refuses, or requires stronger confirmation rather than broadening deletion scope.

mo analyze is safer for ad hoc cleanup because it moves files to Trash through Finder instead of deleting them directly.

Review SECURITY.md and SECURITY_AUDIT.md for reporting guidance, safety boundaries, and current limitations.

Tips

  • Video tutorial: Watch the Mole tutorial video, thanks to PAPAYA ้›ป่…ฆๆ•™ๅฎค.
  • Safety and logs: clean, uninstall, purge, installer, and remove are destructive. Review with --dry-run first, and add --debug when needed. File operations are logged to ~/Library/Logs/mole/operations.log. Disable with MO_NO_OPLOG=1. Review SECURITY.md and SECURITY_AUDIT.md.
  • App leftovers: use mo clean when the app is already uninstalled, and mo uninstall when the app is still installed.
  • Navigation: Mole supports arrow keys and Vim bindings h/j/k/l.

Features in Detail

Deep System Cleanup

$ mo clean
Scanning cache directories...
โœ“ User app cache 45.2GB
โœ“ Browser cache (Chrome, Safari, Firefox) 10.5GB
โœ“ Developer tools (Xcode, Node.js, npm) 23.3GB
โœ“ System logs and temp files 3.8GB
โœ“ App-specific cache (Spotify, Dropbox, Slack) 8.4GB
โœ“ Trash 12.3GB
====================================================================
Space freed: 95.5GB | Free space now: 223.5GB
====================================================================

Note: In mo clean -> Developer tools, Mole removes unused CoreSimulator Volumes/Cryptex entries and skips IN_USE items.

Smart App Uninstaller

$ mo uninstall
Select Apps to Remove
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
โ–ถ โ˜‘ Photoshop 2024 (4.2G) | Old
โ˜ IntelliJ IDEA (2.8G) | Recent
โ˜ Premiere Pro (3.4G) | Recent
Uninstalling: Photoshop 2024
โœ“ Removed application
โœ“ Cleaned 52 related files across 12 locations
- Application Support, Caches, Preferences
- Logs, WebKit storage, Cookies
- Extensions, Plugins, Launch daemons
Note: On macOS 15 and later, Local Network permission entries can outlive app removal. Mole warns when an uninstalled app declares Local Network usage, but it does not auto-reset `/Volumes/Data/Library/Preferences/com.apple.networkextension*.plist` because that reset is global and requires Recovery mode.
====================================================================
Space freed: 12.8GB
====================================================================

System Optimization

$ mo optimize
System: 5/32 GB RAM | 333/460 GB Disk (72%) | Uptime 6d
โœ“ Rebuild system databases and clear caches
โœ“ Reset network services
โœ“ Refresh Finder and Dock
โœ“ Clean diagnostic and crash logs
โœ“ Remove swap files and restart dynamic pager
โœ“ Rebuild launch services and spotlight index
====================================================================
System optimization completed
====================================================================
Use `mo optimize --whitelist` to exclude specific optimizations.

Disk Space Analyzer

Note: By default, Mole skips external drives under /Volumes for faster startup. To inspect them, run mo analyze /Volumes or a specific mount path.

$ mo analyze
Analyze Disk ~/Documents | Total: 156.8GB
โ–ถ 1. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 48.2% | ๐Ÿ“ Library 75.4GB >6mo
2. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 22.1% | ๐Ÿ“ Downloads 34.6GB
3. โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 14.3% | ๐Ÿ“ Movies 22.4GB
4. โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 10.8% | ๐Ÿ“ Documents 16.9GB
5. โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 5.2% | ๐Ÿ“„ backup_2023.zip 8.2GB
โ†‘โ†“โ†โ†’ Navigate | O Open | F Show | โŒซ Delete | L Large files | Q Quit

Live System Status

Real-time dashboard with health score, hardware info, and performance metrics.

$ mo status
Mole Status Health โ— 92 MacBook Pro ยท M4 Pro ยท 32GB ยท macOS 14.5
โš™ CPU โ–ฆ Memory
Total โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 45.2% Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 58.4%
Load 0.82 / 1.05 / 1.23 (8 cores) Total 14.2 / 24.0 GB
Core 1 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 78.3% Free โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 41.6%
Core 2 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 62.1% Avail 9.8 GB
โ–ค Disk โšก Power
Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 67.2% Level โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%
Free 156.3 GB Status Charged
Read โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 2.1 MB/s Health Normal ยท 423 cycles
Write โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 18.3 MB/s Temp 58ยฐC ยท 1200 RPM
โ‡… Network โ–ถ Processes
Down โ–โ–โ–ˆโ–‚โ–โ–โ–โ–โ–โ–โ–โ–โ–‡โ–†โ–…โ–‚ 0.54 MB/s Code โ–ฎโ–ฎโ–ฎโ–ฎโ–ฏ 42.1%
Up โ–„โ–„โ–„โ–ƒโ–ƒโ–ƒโ–„โ–†โ–†โ–‡โ–ˆโ–โ–โ–โ–โ– 0.02 MB/s Chrome โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 28.3%
Proxy HTTP ยท 192.168.1.100 Terminal โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 12.5%

Health score is based on CPU, memory, disk, temperature, and I/O load, with color-coded ranges.

Shortcuts: In mo status, press k to toggle the cat and save the preference, and q to quit.

When enabled, mo status shows a read-only alert banner for processes that stay above the configured CPU threshold for a sustained window. Use --proc-cpu-threshold, --proc-cpu-window, or --proc-cpu-alerts=false to tune or disable it.

Machine-Readable Output

Both mo analyze and mo status support a --json flag for scripting and automation.

mo status also auto-detects when its output is piped (not a terminal) and switches to JSON automatically.

# Disk analysis as JSON
$ mo analyze --json ~/Documents
{
"path": "/Users/you/Documents",
"overview": false,
"entries": [
{ "name": "Library", "path": "...", "size": 80939438080, "is_dir": true },
...
],
"large_files": [
{ "name": "backup.zip", "path": "...", "size": 8796093022 }
],
"total_size": 168393441280,
"total_files": 42187
}
# System status as JSON
$ mo status --json
{
"host": "MacBook-Pro",
"health_score": 92,
"cpu": { "usage": 45.2, "logical_cpu": 8, ... },
"memory": { "total": 25769803776, "used": 15049334784, "used_percent": 58.4 },
"disks": [ ... ],
"uptime": "3d 12h 45m",
...
}
# Auto-detected JSON when piped
$ mo status | jq '.health_score'
92

Project Artifact Purge

Clean old build artifacts such as node_modules, target, .build, build, and dist to free up disk space.

mo purge
Select Categories to Clean - 18.5GB (8 selected)
โžค โ— my-react-app 3.2GB | node_modules
โ— old-project 2.8GB | node_modules
โ— rust-app 4.1GB | target
โ— next-blog 1.9GB | node_modules
โ—‹ current-work 856MB | node_modules | Recent
โ— django-api 2.3GB | venv
โ— vue-dashboard 1.7GB | node_modules
โ— backend-service 2.5GB | node_modules

Note: We recommend installing fd on macOS. brew install fd

Safety: This permanently deletes selected artifacts. Review carefully before confirming. Projects newer than 7 days are marked and unselected by default.

Custom Scan Paths

Run mo purge --paths to configure scan directories, or edit ~/.config/mole/purge_paths directly:

~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB

When custom paths are configured, Mole scans only those directories. Otherwise, it uses defaults like ~/Projects, ~/GitHub, and ~/dev.

Installer Cleanup

Find and remove large installer files across Downloads, Desktop, Homebrew caches, iCloud, and Mail. Each file is labeled by source.

mo installer
Select Installers to Remove - 3.8GB (5 selected)
โžค โ— Photoshop_2024.dmg 1.2GB | Downloads
โ— IntelliJ_IDEA.dmg 850.6MB | Downloads
โ— Illustrator_Setup.pkg 920.4MB | Downloads
โ— PyCharm_Pro.dmg 640.5MB | Homebrew
โ— Acrobat_Reader.dmg 220.4MB | Downloads
โ—‹ AppCode_Legacy.zip 410.6MB | Downloads

Quick Launchers

Launch Mole commands from Raycast or Alfred:

curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash

Adds 5 commands: Mole Clean, Mole Uninstall, Mole Optimize, Mole Analyze, Mole Status.

Raycast Setup

After running the script, complete these steps in Raycast:

  1. Open Raycast Settings (โŒ˜ + ,)
  2. Go to Extensions โ†’ Script Commands
  3. Click "Add Script Directory" (or "+")
  4. Add path: ~/Library/Application Support/Raycast/script-commands
  5. Search in Raycast for: "Reload Script Directories" and run it
  6. Done! Search for Mole Clean or clean, Mole Optimize, or Mole Status to use the commands

Note: The script creates the commands, but Raycast still requires a one-time manual script directory setup.

Terminal Detection

Mole auto-detects your terminal app. iTerm2 has known compatibility issues. We highly recommend Kaku. Other good options are Alacritty, kitty, WezTerm, Ghostty, and Warp. To override, set MO_LAUNCHER_APP=<name>.

Community Love

Thanks to everyone who helped build Mole. Go follow them. โค๏ธ



Real feedback from users who shared Mole on X.

Community feedback on Mole

Support

  • If Mole helped you, share it with friends or give it a star.
  • Got ideas or bugs? Open an issue or PR, feel free to contribute your best AI model.
  • I have two cats, TangYuan and Coke. If you think Mole delights your life, you can feed them canned food ๐Ÿฅฉ.

License

MIT License. Feel free to use Mole and contribute.

About

๐Ÿน Deep clean and optimize your Mac.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mole

Deep clean and optimize your Mac.

StarsVersionLicenseCommitsTwitterTelegram

Mole - 95.50GB freed

Features

  • All-in-one toolkit: Combines CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus in a single binary
  • Deep cleaning: Removes caches, logs, browser leftovers, and orphaned app data to reclaim gigabytes of space
  • Smart uninstaller: Removes apps plus launch agents, preferences, and hidden remnants
  • Disk insights: Visualizes usage, finds large files, rebuilds caches, and refreshes system services
  • Live monitoring: Shows real-time CPU, GPU, memory, disk, and network stats

Quick Start

Install via Homebrew

brew install mole

Or via script

# Optional args: -s latest for main branch code, -s 1.17.0 for specific version
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

Note: Mole is built for macOS. An experimental Windows version is available in the windows branch for early adopters.

Run

mo # Interactive menu
mo clean # Deep cleanup + already-uninstalled app leftovers
mo uninstall # Remove installed apps + their leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer (or 'mo analyse')
mo status # Live system health dashboard
mo purge # Clean project build artifacts
mo installer # Find and remove installer files
mo touchid # Configure Touch ID for sudo
mo completion # Set up shell tab completion
mo update # Update Mole
mo update --nightly # Update to latest unreleased main build, script install only
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version

Preview safely

mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run
# Also works with: optimize, installer, remove, completion, touchid enable
mo clean --dry-run --debug # Preview + detailed logs
mo optimize --whitelist # Manage protected optimization rules
mo clean --whitelist # Manage protected caches
mo purge --paths # Configure project scan directories
mo analyze /Volumes # Analyze external drives only

Security & Safety Design

Mole is a local system maintenance tool, and some commands can perform destructive local operations.

Mole uses safety-first defaults: path validation, protected-directory rules, conservative cleanup boundaries, and explicit confirmation for higher-risk actions. When risk or uncertainty is high, Mole skips, refuses, or requires stronger confirmation rather than broadening deletion scope.

mo analyze is safer for ad hoc cleanup because it moves files to Trash through Finder instead of deleting them directly.

Review SECURITY.md and SECURITY_AUDIT.md for reporting guidance, safety boundaries, and current limitations.

Tips

  • Video tutorial: Watch the Mole tutorial video, thanks to PAPAYA ้›ป่…ฆๆ•™ๅฎค.
  • Safety and logs: clean, uninstall, purge, installer, and remove are destructive. Review with --dry-run first, and add --debug when needed. File operations are logged to ~/Library/Logs/mole/operations.log. Disable with MO_NO_OPLOG=1. Review SECURITY.md and SECURITY_AUDIT.md.
  • App leftovers: use mo clean when the app is already uninstalled, and mo uninstall when the app is still installed.
  • Navigation: Mole supports arrow keys and Vim bindings h/j/k/l.

Features in Detail

Deep System Cleanup

$ mo clean
Scanning cache directories...
โœ“ User app cache 45.2GB
โœ“ Browser cache (Chrome, Safari, Firefox) 10.5GB
โœ“ Developer tools (Xcode, Node.js, npm) 23.3GB
โœ“ System logs and temp files 3.8GB
โœ“ App-specific cache (Spotify, Dropbox, Slack) 8.4GB
โœ“ Trash 12.3GB
====================================================================
Space freed: 95.5GB | Free space now: 223.5GB
====================================================================

Note: In mo clean -> Developer tools, Mole removes unused CoreSimulator Volumes/Cryptex entries and skips IN_USE items.

Smart App Uninstaller

$ mo uninstall
Select Apps to Remove
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
โ–ถ โ˜‘ Photoshop 2024 (4.2G) | Old
โ˜ IntelliJ IDEA (2.8G) | Recent
โ˜ Premiere Pro (3.4G) | Recent
Uninstalling: Photoshop 2024
โœ“ Removed application
โœ“ Cleaned 52 related files across 12 locations
- Application Support, Caches, Preferences
- Logs, WebKit storage, Cookies
- Extensions, Plugins, Launch daemons
Note: On macOS 15 and later, Local Network permission entries can outlive app removal. Mole warns when an uninstalled app declares Local Network usage, but it does not auto-reset `/Volumes/Data/Library/Preferences/com.apple.networkextension*.plist` because that reset is global and requires Recovery mode.
====================================================================
Space freed: 12.8GB
====================================================================

System Optimization

$ mo optimize
System: 5/32 GB RAM | 333/460 GB Disk (72%) | Uptime 6d
โœ“ Rebuild system databases and clear caches
โœ“ Reset network services
โœ“ Refresh Finder and Dock
โœ“ Clean diagnostic and crash logs
โœ“ Remove swap files and restart dynamic pager
โœ“ Rebuild launch services and spotlight index
====================================================================
System optimization completed
====================================================================
Use `mo optimize --whitelist` to exclude specific optimizations.

Disk Space Analyzer

Note: By default, Mole skips external drives under /Volumes for faster startup. To inspect them, run mo analyze /Volumes or a specific mount path.

$ mo analyze
Analyze Disk ~/Documents | Total: 156.8GB
โ–ถ 1. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 48.2% | ๐Ÿ“ Library 75.4GB >6mo
2. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 22.1% | ๐Ÿ“ Downloads 34.6GB
3. โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 14.3% | ๐Ÿ“ Movies 22.4GB
4. โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 10.8% | ๐Ÿ“ Documents 16.9GB
5. โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 5.2% | ๐Ÿ“„ backup_2023.zip 8.2GB
โ†‘โ†“โ†โ†’ Navigate | O Open | F Show | โŒซ Delete | L Large files | Q Quit

Live System Status

Real-time dashboard with health score, hardware info, and performance metrics.

$ mo status
Mole Status Health โ— 92 MacBook Pro ยท M4 Pro ยท 32GB ยท macOS 14.5
โš™ CPU โ–ฆ Memory
Total โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 45.2% Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 58.4%
Load 0.82 / 1.05 / 1.23 (8 cores) Total 14.2 / 24.0 GB
Core 1 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 78.3% Free โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 41.6%
Core 2 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 62.1% Avail 9.8 GB
โ–ค Disk โšก Power
Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 67.2% Level โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%
Free 156.3 GB Status Charged
Read โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 2.1 MB/s Health Normal ยท 423 cycles
Write โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 18.3 MB/s Temp 58ยฐC ยท 1200 RPM
โ‡… Network โ–ถ Processes
Down โ–โ–โ–ˆโ–‚โ–โ–โ–โ–โ–โ–โ–โ–โ–‡โ–†โ–…โ–‚ 0.54 MB/s Code โ–ฎโ–ฎโ–ฎโ–ฎโ–ฏ 42.1%
Up โ–„โ–„โ–„โ–ƒโ–ƒโ–ƒโ–„โ–†โ–†โ–‡โ–ˆโ–โ–โ–โ–โ– 0.02 MB/s Chrome โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 28.3%
Proxy HTTP ยท 192.168.1.100 Terminal โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 12.5%

Health score is based on CPU, memory, disk, temperature, and I/O load, with color-coded ranges.

Shortcuts: In mo status, press k to toggle the cat and save the preference, and q to quit.

When enabled, mo status shows a read-only alert banner for processes that stay above the configured CPU threshold for a sustained window. Use --proc-cpu-threshold, --proc-cpu-window, or --proc-cpu-alerts=false to tune or disable it.

Machine-Readable Output

Both mo analyze and mo status support a --json flag for scripting and automation.

mo status also auto-detects when its output is piped (not a terminal) and switches to JSON automatically.

# Disk analysis as JSON
$ mo analyze --json ~/Documents
{
"path": "/Users/you/Documents",
"overview": false,
"entries": [
{ "name": "Library", "path": "...", "size": 80939438080, "is_dir": true },
...
],
"large_files": [
{ "name": "backup.zip", "path": "...", "size": 8796093022 }
],
"total_size": 168393441280,
"total_files": 42187
}
# System status as JSON
$ mo status --json
{
"host": "MacBook-Pro",
"health_score": 92,
"cpu": { "usage": 45.2, "logical_cpu": 8, ... },
"memory": { "total": 25769803776, "used": 15049334784, "used_percent": 58.4 },
"disks": [ ... ],
"uptime": "3d 12h 45m",
...
}
# Auto-detected JSON when piped
$ mo status | jq '.health_score'
92

Project Artifact Purge

Clean old build artifacts such as node_modules, target, .build, build, and dist to free up disk space.

mo purge
Select Categories to Clean - 18.5GB (8 selected)
โžค โ— my-react-app 3.2GB | node_modules
โ— old-project 2.8GB | node_modules
โ— rust-app 4.1GB | target
โ— next-blog 1.9GB | node_modules
โ—‹ current-work 856MB | node_modules | Recent
โ— django-api 2.3GB | venv
โ— vue-dashboard 1.7GB | node_modules
โ— backend-service 2.5GB | node_modules

Note: We recommend installing fd on macOS. brew install fd

Safety: This permanently deletes selected artifacts. Review carefully before confirming. Projects newer than 7 days are marked and unselected by default.

Custom Scan Paths

Run mo purge --paths to configure scan directories, or edit ~/.config/mole/purge_paths directly:

~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB

When custom paths are configured, Mole scans only those directories. Otherwise, it uses defaults like ~/Projects, ~/GitHub, and ~/dev.

Installer Cleanup

Find and remove large installer files across Downloads, Desktop, Homebrew caches, iCloud, and Mail. Each file is labeled by source.

mo installer
Select Installers to Remove - 3.8GB (5 selected)
โžค โ— Photoshop_2024.dmg 1.2GB | Downloads
โ— IntelliJ_IDEA.dmg 850.6MB | Downloads
โ— Illustrator_Setup.pkg 920.4MB | Downloads
โ— PyCharm_Pro.dmg 640.5MB | Homebrew
โ— Acrobat_Reader.dmg 220.4MB | Downloads
โ—‹ AppCode_Legacy.zip 410.6MB | Downloads

Quick Launchers

Launch Mole commands from Raycast or Alfred:

curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash

Adds 5 commands: Mole Clean, Mole Uninstall, Mole Optimize, Mole Analyze, Mole Status.

Raycast Setup

After running the script, complete these steps in Raycast:

  1. Open Raycast Settings (โŒ˜ + ,)
  2. Go to Extensions โ†’ Script Commands
  3. Click "Add Script Directory" (or "+")
  4. Add path: ~/Library/Application Support/Raycast/script-commands
  5. Search in Raycast for: "Reload Script Directories" and run it
  6. Done! Search for Mole Clean or clean, Mole Optimize, or Mole Status to use the commands

Note: The script creates the commands, but Raycast still requires a one-time manual script directory setup.

Terminal Detection

Mole auto-detects your terminal app. iTerm2 has known compatibility issues. We highly recommend Kaku. Other good options are Alacritty, kitty, WezTerm, Ghostty, and Warp. To override, set MO_LAUNCHER_APP=<name>.

Community Love

Thanks to everyone who helped build Mole. Go follow them. โค๏ธ



Real feedback from users who shared Mole on X.

Community feedback on Mole

Support

  • If Mole helped you, share it with friends or give it a star.
  • Got ideas or bugs? Open an issue or PR, feel free to contribute your best AI model.
  • I have two cats, TangYuan and Coke. If you think Mole delights your life, you can feed them canned food ๐Ÿฅฉ.

License

MIT License. Feel free to use Mole and contribute.

About

๐Ÿน Deep clean and optimize your Mac.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mole

Deep clean and optimize your Mac.

StarsVersionLicenseCommitsTwitterTelegram

Mole - 95.50GB freed

Features

  • All-in-one toolkit: Combines CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus in a single binary
  • Deep cleaning: Removes caches, logs, browser leftovers, and orphaned app data to reclaim gigabytes of space
  • Smart uninstaller: Removes apps plus launch agents, preferences, and hidden remnants
  • Disk insights: Visualizes usage, finds large files, rebuilds caches, and refreshes system services
  • Live monitoring: Shows real-time CPU, GPU, memory, disk, and network stats

Quick Start

Install via Homebrew

brew install mole

Or via script

# Optional args: -s latest for main branch code, -s 1.17.0 for specific version
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

Note: Mole is built for macOS. An experimental Windows version is available in the windows branch for early adopters.

Run

mo # Interactive menu
mo clean # Deep cleanup + already-uninstalled app leftovers
mo uninstall # Remove installed apps + their leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer (or 'mo analyse')
mo status # Live system health dashboard
mo purge # Clean project build artifacts
mo installer # Find and remove installer files
mo touchid # Configure Touch ID for sudo
mo completion # Set up shell tab completion
mo update # Update Mole
mo update --nightly # Update to latest unreleased main build, script install only
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version

Preview safely

mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run
# Also works with: optimize, installer, remove, completion, touchid enable
mo clean --dry-run --debug # Preview + detailed logs
mo optimize --whitelist # Manage protected optimization rules
mo clean --whitelist # Manage protected caches
mo purge --paths # Configure project scan directories
mo analyze /Volumes # Analyze external drives only

Security & Safety Design

Mole is a local system maintenance tool, and some commands can perform destructive local operations.

Mole uses safety-first defaults: path validation, protected-directory rules, conservative cleanup boundaries, and explicit confirmation for higher-risk actions. When risk or uncertainty is high, Mole skips, refuses, or requires stronger confirmation rather than broadening deletion scope.

mo analyze is safer for ad hoc cleanup because it moves files to Trash through Finder instead of deleting them directly.

Review SECURITY.md and SECURITY_AUDIT.md for reporting guidance, safety boundaries, and current limitations.

Tips

  • Video tutorial: Watch the Mole tutorial video, thanks to PAPAYA ้›ป่…ฆๆ•™ๅฎค.
  • Safety and logs: clean, uninstall, purge, installer, and remove are destructive. Review with --dry-run first, and add --debug when needed. File operations are logged to ~/Library/Logs/mole/operations.log. Disable with MO_NO_OPLOG=1. Review SECURITY.md and SECURITY_AUDIT.md.
  • App leftovers: use mo clean when the app is already uninstalled, and mo uninstall when the app is still installed.
  • Navigation: Mole supports arrow keys and Vim bindings h/j/k/l.

Features in Detail

Deep System Cleanup

$ mo clean
Scanning cache directories...
โœ“ User app cache 45.2GB
โœ“ Browser cache (Chrome, Safari, Firefox) 10.5GB
โœ“ Developer tools (Xcode, Node.js, npm) 23.3GB
โœ“ System logs and temp files 3.8GB
โœ“ App-specific cache (Spotify, Dropbox, Slack) 8.4GB
โœ“ Trash 12.3GB
====================================================================
Space freed: 95.5GB | Free space now: 223.5GB
====================================================================

Note: In mo clean -> Developer tools, Mole removes unused CoreSimulator Volumes/Cryptex entries and skips IN_USE items.

Smart App Uninstaller

$ mo uninstall
Select Apps to Remove
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
โ–ถ โ˜‘ Photoshop 2024 (4.2G) | Old
โ˜ IntelliJ IDEA (2.8G) | Recent
โ˜ Premiere Pro (3.4G) | Recent
Uninstalling: Photoshop 2024
โœ“ Removed application
โœ“ Cleaned 52 related files across 12 locations
- Application Support, Caches, Preferences
- Logs, WebKit storage, Cookies
- Extensions, Plugins, Launch daemons
Note: On macOS 15 and later, Local Network permission entries can outlive app removal. Mole warns when an uninstalled app declares Local Network usage, but it does not auto-reset `/Volumes/Data/Library/Preferences/com.apple.networkextension*.plist` because that reset is global and requires Recovery mode.
====================================================================
Space freed: 12.8GB
====================================================================

System Optimization

$ mo optimize
System: 5/32 GB RAM | 333/460 GB Disk (72%) | Uptime 6d
โœ“ Rebuild system databases and clear caches
โœ“ Reset network services
โœ“ Refresh Finder and Dock
โœ“ Clean diagnostic and crash logs
โœ“ Remove swap files and restart dynamic pager
โœ“ Rebuild launch services and spotlight index
====================================================================
System optimization completed
====================================================================
Use `mo optimize --whitelist` to exclude specific optimizations.

Disk Space Analyzer

Note: By default, Mole skips external drives under /Volumes for faster startup. To inspect them, run mo analyze /Volumes or a specific mount path.

$ mo analyze
Analyze Disk ~/Documents | Total: 156.8GB
โ–ถ 1. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 48.2% | ๐Ÿ“ Library 75.4GB >6mo
2. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 22.1% | ๐Ÿ“ Downloads 34.6GB
3. โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 14.3% | ๐Ÿ“ Movies 22.4GB
4. โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 10.8% | ๐Ÿ“ Documents 16.9GB
5. โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 5.2% | ๐Ÿ“„ backup_2023.zip 8.2GB
โ†‘โ†“โ†โ†’ Navigate | O Open | F Show | โŒซ Delete | L Large files | Q Quit

Live System Status

Real-time dashboard with health score, hardware info, and performance metrics.

$ mo status
Mole Status Health โ— 92 MacBook Pro ยท M4 Pro ยท 32GB ยท macOS 14.5
โš™ CPU โ–ฆ Memory
Total โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 45.2% Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 58.4%
Load 0.82 / 1.05 / 1.23 (8 cores) Total 14.2 / 24.0 GB
Core 1 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 78.3% Free โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 41.6%
Core 2 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 62.1% Avail 9.8 GB
โ–ค Disk โšก Power
Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 67.2% Level โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%
Free 156.3 GB Status Charged
Read โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 2.1 MB/s Health Normal ยท 423 cycles
Write โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 18.3 MB/s Temp 58ยฐC ยท 1200 RPM
โ‡… Network โ–ถ Processes
Down โ–โ–โ–ˆโ–‚โ–โ–โ–โ–โ–โ–โ–โ–โ–‡โ–†โ–…โ–‚ 0.54 MB/s Code โ–ฎโ–ฎโ–ฎโ–ฎโ–ฏ 42.1%
Up โ–„โ–„โ–„โ–ƒโ–ƒโ–ƒโ–„โ–†โ–†โ–‡โ–ˆโ–โ–โ–โ–โ– 0.02 MB/s Chrome โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 28.3%
Proxy HTTP ยท 192.168.1.100 Terminal โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 12.5%

Health score is based on CPU, memory, disk, temperature, and I/O load, with color-coded ranges.

Shortcuts: In mo status, press k to toggle the cat and save the preference, and q to quit.

When enabled, mo status shows a read-only alert banner for processes that stay above the configured CPU threshold for a sustained window. Use --proc-cpu-threshold, --proc-cpu-window, or --proc-cpu-alerts=false to tune or disable it.

Machine-Readable Output

Both mo analyze and mo status support a --json flag for scripting and automation.

mo status also auto-detects when its output is piped (not a terminal) and switches to JSON automatically.

# Disk analysis as JSON
$ mo analyze --json ~/Documents
{
"path": "/Users/you/Documents",
"overview": false,
"entries": [
{ "name": "Library", "path": "...", "size": 80939438080, "is_dir": true },
...
],
"large_files": [
{ "name": "backup.zip", "path": "...", "size": 8796093022 }
],
"total_size": 168393441280,
"total_files": 42187
}
# System status as JSON
$ mo status --json
{
"host": "MacBook-Pro",
"health_score": 92,
"cpu": { "usage": 45.2, "logical_cpu": 8, ... },
"memory": { "total": 25769803776, "used": 15049334784, "used_percent": 58.4 },
"disks": [ ... ],
"uptime": "3d 12h 45m",
...
}
# Auto-detected JSON when piped
$ mo status | jq '.health_score'
92

Project Artifact Purge

Clean old build artifacts such as node_modules, target, .build, build, and dist to free up disk space.

mo purge
Select Categories to Clean - 18.5GB (8 selected)
โžค โ— my-react-app 3.2GB | node_modules
โ— old-project 2.8GB | node_modules
โ— rust-app 4.1GB | target
โ— next-blog 1.9GB | node_modules
โ—‹ current-work 856MB | node_modules | Recent
โ— django-api 2.3GB | venv
โ— vue-dashboard 1.7GB | node_modules
โ— backend-service 2.5GB | node_modules

Note: We recommend installing fd on macOS. brew install fd

Safety: This permanently deletes selected artifacts. Review carefully before confirming. Projects newer than 7 days are marked and unselected by default.

Custom Scan Paths

Run mo purge --paths to configure scan directories, or edit ~/.config/mole/purge_paths directly:

~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB

When custom paths are configured, Mole scans only those directories. Otherwise, it uses defaults like ~/Projects, ~/GitHub, and ~/dev.

Installer Cleanup

Find and remove large installer files across Downloads, Desktop, Homebrew caches, iCloud, and Mail. Each file is labeled by source.

mo installer
Select Installers to Remove - 3.8GB (5 selected)
โžค โ— Photoshop_2024.dmg 1.2GB | Downloads
โ— IntelliJ_IDEA.dmg 850.6MB | Downloads
โ— Illustrator_Setup.pkg 920.4MB | Downloads
โ— PyCharm_Pro.dmg 640.5MB | Homebrew
โ— Acrobat_Reader.dmg 220.4MB | Downloads
โ—‹ AppCode_Legacy.zip 410.6MB | Downloads

Quick Launchers

Launch Mole commands from Raycast or Alfred:

curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash

Adds 5 commands: Mole Clean, Mole Uninstall, Mole Optimize, Mole Analyze, Mole Status.

Raycast Setup

After running the script, complete these steps in Raycast:

  1. Open Raycast Settings (โŒ˜ + ,)
  2. Go to Extensions โ†’ Script Commands
  3. Click "Add Script Directory" (or "+")
  4. Add path: ~/Library/Application Support/Raycast/script-commands
  5. Search in Raycast for: "Reload Script Directories" and run it
  6. Done! Search for Mole Clean or clean, Mole Optimize, or Mole Status to use the commands

Note: The script creates the commands, but Raycast still requires a one-time manual script directory setup.

Terminal Detection

Mole auto-detects your terminal app. iTerm2 has known compatibility issues. We highly recommend Kaku. Other good options are Alacritty, kitty, WezTerm, Ghostty, and Warp. To override, set MO_LAUNCHER_APP=<name>.

Community Love

Thanks to everyone who helped build Mole. Go follow them. โค๏ธ



Real feedback from users who shared Mole on X.

Community feedback on Mole

Support

  • If Mole helped you, share it with friends or give it a star.
  • Got ideas or bugs? Open an issue or PR, feel free to contribute your best AI model.
  • I have two cats, TangYuan and Coke. If you think Mole delights your life, you can feed them canned food ๐Ÿฅฉ.

License

MIT License. Feel free to use Mole and contribute.

About

๐Ÿน Deep clean and optimize your Mac.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Mole

Deep clean and optimize your Mac.

StarsVersionLicenseCommitsTwitterTelegram

Mole - 95.50GB freed

Features

  • All-in-one toolkit: Combines CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus in a single binary
  • Deep cleaning: Removes caches, logs, browser leftovers, and orphaned app data to reclaim gigabytes of space
  • Smart uninstaller: Removes apps plus launch agents, preferences, and hidden remnants
  • Disk insights: Visualizes usage, finds large files, rebuilds caches, and refreshes system services
  • Live monitoring: Shows real-time CPU, GPU, memory, disk, and network stats

Quick Start

Install via Homebrew

brew install mole

Or via script

# Optional args: -s latest for main branch code, -s 1.17.0 for specific version
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

Note: Mole is built for macOS. An experimental Windows version is available in the windows branch for early adopters.

Run

mo # Interactive menu
mo clean # Deep cleanup + already-uninstalled app leftovers
mo uninstall # Remove installed apps + their leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer (or 'mo analyse')
mo status # Live system health dashboard
mo purge # Clean project build artifacts
mo installer # Find and remove installer files
mo touchid # Configure Touch ID for sudo
mo completion # Set up shell tab completion
mo update # Update Mole
mo update --nightly # Update to latest unreleased main build, script install only
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version

Preview safely

mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run
# Also works with: optimize, installer, remove, completion, touchid enable
mo clean --dry-run --debug # Preview + detailed logs
mo optimize --whitelist # Manage protected optimization rules
mo clean --whitelist # Manage protected caches
mo purge --paths # Configure project scan directories
mo analyze /Volumes # Analyze external drives only

Security & Safety Design

Mole is a local system maintenance tool, and some commands can perform destructive local operations.

Mole uses safety-first defaults: path validation, protected-directory rules, conservative cleanup boundaries, and explicit confirmation for higher-risk actions. When risk or uncertainty is high, Mole skips, refuses, or requires stronger confirmation rather than broadening deletion scope.

mo analyze is safer for ad hoc cleanup because it moves files to Trash through Finder instead of deleting them directly.

Review SECURITY.md and SECURITY_AUDIT.md for reporting guidance, safety boundaries, and current limitations.

Tips

  • Video tutorial: Watch the Mole tutorial video, thanks to PAPAYA ้›ป่…ฆๆ•™ๅฎค.
  • Safety and logs: clean, uninstall, purge, installer, and remove are destructive. Review with --dry-run first, and add --debug when needed. File operations are logged to ~/Library/Logs/mole/operations.log. Disable with MO_NO_OPLOG=1. Review SECURITY.md and SECURITY_AUDIT.md.
  • App leftovers: use mo clean when the app is already uninstalled, and mo uninstall when the app is still installed.
  • Navigation: Mole supports arrow keys and Vim bindings h/j/k/l.

Features in Detail

Deep System Cleanup

$ mo clean
Scanning cache directories...
โœ“ User app cache 45.2GB
โœ“ Browser cache (Chrome, Safari, Firefox) 10.5GB
โœ“ Developer tools (Xcode, Node.js, npm) 23.3GB
โœ“ System logs and temp files 3.8GB
โœ“ App-specific cache (Spotify, Dropbox, Slack) 8.4GB
โœ“ Trash 12.3GB
====================================================================
Space freed: 95.5GB | Free space now: 223.5GB
====================================================================

Note: In mo clean -> Developer tools, Mole removes unused CoreSimulator Volumes/Cryptex entries and skips IN_USE items.

Smart App Uninstaller

$ mo uninstall
Select Apps to Remove
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
โ–ถ โ˜‘ Photoshop 2024 (4.2G) | Old
โ˜ IntelliJ IDEA (2.8G) | Recent
โ˜ Premiere Pro (3.4G) | Recent
Uninstalling: Photoshop 2024
โœ“ Removed application
โœ“ Cleaned 52 related files across 12 locations
- Application Support, Caches, Preferences
- Logs, WebKit storage, Cookies
- Extensions, Plugins, Launch daemons
Note: On macOS 15 and later, Local Network permission entries can outlive app removal. Mole warns when an uninstalled app declares Local Network usage, but it does not auto-reset `/Volumes/Data/Library/Preferences/com.apple.networkextension*.plist` because that reset is global and requires Recovery mode.
====================================================================
Space freed: 12.8GB
====================================================================

System Optimization

$ mo optimize
System: 5/32 GB RAM | 333/460 GB Disk (72%) | Uptime 6d
โœ“ Rebuild system databases and clear caches
โœ“ Reset network services
โœ“ Refresh Finder and Dock
โœ“ Clean diagnostic and crash logs
โœ“ Remove swap files and restart dynamic pager
โœ“ Rebuild launch services and spotlight index
====================================================================
System optimization completed
====================================================================
Use `mo optimize --whitelist` to exclude specific optimizations.

Disk Space Analyzer

Note: By default, Mole skips external drives under /Volumes for faster startup. To inspect them, run mo analyze /Volumes or a specific mount path.

$ mo analyze
Analyze Disk ~/Documents | Total: 156.8GB
โ–ถ 1. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 48.2% | ๐Ÿ“ Library 75.4GB >6mo
2. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 22.1% | ๐Ÿ“ Downloads 34.6GB
3. โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 14.3% | ๐Ÿ“ Movies 22.4GB
4. โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 10.8% | ๐Ÿ“ Documents 16.9GB
5. โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 5.2% | ๐Ÿ“„ backup_2023.zip 8.2GB
โ†‘โ†“โ†โ†’ Navigate | O Open | F Show | โŒซ Delete | L Large files | Q Quit

Live System Status

Real-time dashboard with health score, hardware info, and performance metrics.

$ mo status
Mole Status Health โ— 92 MacBook Pro ยท M4 Pro ยท 32GB ยท macOS 14.5
โš™ CPU โ–ฆ Memory
Total โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 45.2% Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 58.4%
Load 0.82 / 1.05 / 1.23 (8 cores) Total 14.2 / 24.0 GB
Core 1 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 78.3% Free โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 41.6%
Core 2 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 62.1% Avail 9.8 GB
โ–ค Disk โšก Power
Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 67.2% Level โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%
Free 156.3 GB Status Charged
Read โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 2.1 MB/s Health Normal ยท 423 cycles
Write โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 18.3 MB/s Temp 58ยฐC ยท 1200 RPM
โ‡… Network โ–ถ Processes
Down โ–โ–โ–ˆโ–‚โ–โ–โ–โ–โ–โ–โ–โ–โ–‡โ–†โ–…โ–‚ 0.54 MB/s Code โ–ฎโ–ฎโ–ฎโ–ฎโ–ฏ 42.1%
Up โ–„โ–„โ–„โ–ƒโ–ƒโ–ƒโ–„โ–†โ–†โ–‡โ–ˆโ–โ–โ–โ–โ– 0.02 MB/s Chrome โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 28.3%
Proxy HTTP ยท 192.168.1.100 Terminal โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 12.5%

Health score is based on CPU, memory, disk, temperature, and I/O load, with color-coded ranges.

Shortcuts: In mo status, press k to toggle the cat and save the preference, and q to quit.

When enabled, mo status shows a read-only alert banner for processes that stay above the configured CPU threshold for a sustained window. Use --proc-cpu-threshold, --proc-cpu-window, or --proc-cpu-alerts=false to tune or disable it.

Machine-Readable Output

Both mo analyze and mo status support a --json flag for scripting and automation.

mo status also auto-detects when its output is piped (not a terminal) and switches to JSON automatically.

# Disk analysis as JSON
$ mo analyze --json ~/Documents
{
"path": "/Users/you/Documents",
"overview": false,
"entries": [
{ "name": "Library", "path": "...", "size": 80939438080, "is_dir": true },
...
],
"large_files": [
{ "name": "backup.zip", "path": "...", "size": 8796093022 }
],
"total_size": 168393441280,
"total_files": 42187
}
# System status as JSON
$ mo status --json
{
"host": "MacBook-Pro",
"health_score": 92,
"cpu": { "usage": 45.2, "logical_cpu": 8, ... },
"memory": { "total": 25769803776, "used": 15049334784, "used_percent": 58.4 },
"disks": [ ... ],
"uptime": "3d 12h 45m",
...
}
# Auto-detected JSON when piped
$ mo status | jq '.health_score'
92

Project Artifact Purge

Clean old build artifacts such as node_modules, target, .build, build, and dist to free up disk space.

mo purge
Select Categories to Clean - 18.5GB (8 selected)
โžค โ— my-react-app 3.2GB | node_modules
โ— old-project 2.8GB | node_modules
โ— rust-app 4.1GB | target
โ— next-blog 1.9GB | node_modules
โ—‹ current-work 856MB | node_modules | Recent
โ— django-api 2.3GB | venv
โ— vue-dashboard 1.7GB | node_modules
โ— backend-service 2.5GB | node_modules

Note: We recommend installing fd on macOS. brew install fd

Safety: This permanently deletes selected artifacts. Review carefully before confirming. Projects newer than 7 days are marked and unselected by default.

Custom Scan Paths

Run mo purge --paths to configure scan directories, or edit ~/.config/mole/purge_paths directly:

~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB

When custom paths are configured, Mole scans only those directories. Otherwise, it uses defaults like ~/Projects, ~/GitHub, and ~/dev.

Installer Cleanup

Find and remove large installer files across Downloads, Desktop, Homebrew caches, iCloud, and Mail. Each file is labeled by source.

mo installer
Select Installers to Remove - 3.8GB (5 selected)
โžค โ— Photoshop_2024.dmg 1.2GB | Downloads
โ— IntelliJ_IDEA.dmg 850.6MB | Downloads
โ— Illustrator_Setup.pkg 920.4MB | Downloads
โ— PyCharm_Pro.dmg 640.5MB | Homebrew
โ— Acrobat_Reader.dmg 220.4MB | Downloads
โ—‹ AppCode_Legacy.zip 410.6MB | Downloads

Quick Launchers

Launch Mole commands from Raycast or Alfred:

curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash

Adds 5 commands: Mole Clean, Mole Uninstall, Mole Optimize, Mole Analyze, Mole Status.

Raycast Setup

After running the script, complete these steps in Raycast:

  1. Open Raycast Settings (โŒ˜ + ,)
  2. Go to Extensions โ†’ Script Commands
  3. Click "Add Script Directory" (or "+")
  4. Add path: ~/Library/Application Support/Raycast/script-commands
  5. Search in Raycast for: "Reload Script Directories" and run it
  6. Done! Search for Mole Clean or clean, Mole Optimize, or Mole Status to use the commands

Note: The script creates the commands, but Raycast still requires a one-time manual script directory setup.

Terminal Detection

Mole auto-detects your terminal app. iTerm2 has known compatibility issues. We highly recommend Kaku. Other good options are Alacritty, kitty, WezTerm, Ghostty, and Warp. To override, set MO_LAUNCHER_APP=<name>.

Community Love

Thanks to everyone who helped build Mole. Go follow them. โค๏ธ



Real feedback from users who shared Mole on X.

Community feedback on Mole

Support

  • If Mole helped you, share it with friends or give it a star.
  • Got ideas or bugs? Open an issue or PR, feel free to contribute your best AI model.
  • I have two cats, TangYuan and Coke. If you think Mole delights your life, you can feed them canned food ๐Ÿฅฉ.

License

MIT License. Feel free to use Mole and contribute.

About

๐Ÿน Deep clean and optimize your Mac.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mole

Deep clean and optimize your Mac.

StarsVersionLicenseCommitsTwitterTelegram

Mole - 95.50GB freed

Features

  • All-in-one toolkit: Combines CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus in a single binary
  • Deep cleaning: Removes caches, logs, browser leftovers, and orphaned app data to reclaim gigabytes of space
  • Smart uninstaller: Removes apps plus launch agents, preferences, and hidden remnants
  • Disk insights: Visualizes usage, finds large files, rebuilds caches, and refreshes system services
  • Live monitoring: Shows real-time CPU, GPU, memory, disk, and network stats

Quick Start

Install via Homebrew

brew install mole

Or via script

# Optional args: -s latest for main branch code, -s 1.17.0 for specific version
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

Note: Mole is built for macOS. An experimental Windows version is available in the windows branch for early adopters.

Run

mo # Interactive menu
mo clean # Deep cleanup + already-uninstalled app leftovers
mo uninstall # Remove installed apps + their leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer (or 'mo analyse')
mo status # Live system health dashboard
mo purge # Clean project build artifacts
mo installer # Find and remove installer files
mo touchid # Configure Touch ID for sudo
mo completion # Set up shell tab completion
mo update # Update Mole
mo update --nightly # Update to latest unreleased main build, script install only
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version

Preview safely

mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run
# Also works with: optimize, installer, remove, completion, touchid enable
mo clean --dry-run --debug # Preview + detailed logs
mo optimize --whitelist # Manage protected optimization rules
mo clean --whitelist # Manage protected caches
mo purge --paths # Configure project scan directories
mo analyze /Volumes # Analyze external drives only

Security & Safety Design

Mole is a local system maintenance tool, and some commands can perform destructive local operations.

Mole uses safety-first defaults: path validation, protected-directory rules, conservative cleanup boundaries, and explicit confirmation for higher-risk actions. When risk or uncertainty is high, Mole skips, refuses, or requires stronger confirmation rather than broadening deletion scope.

mo analyze is safer for ad hoc cleanup because it moves files to Trash through Finder instead of deleting them directly.

Review SECURITY.md and SECURITY_AUDIT.md for reporting guidance, safety boundaries, and current limitations.

Tips

  • Video tutorial: Watch the Mole tutorial video, thanks to PAPAYA ้›ป่…ฆๆ•™ๅฎค.
  • Safety and logs: clean, uninstall, purge, installer, and remove are destructive. Review with --dry-run first, and add --debug when needed. File operations are logged to ~/Library/Logs/mole/operations.log. Disable with MO_NO_OPLOG=1. Review SECURITY.md and SECURITY_AUDIT.md.
  • App leftovers: use mo clean when the app is already uninstalled, and mo uninstall when the app is still installed.
  • Navigation: Mole supports arrow keys and Vim bindings h/j/k/l.

Features in Detail

Deep System Cleanup

$ mo clean
Scanning cache directories...
โœ“ User app cache 45.2GB
โœ“ Browser cache (Chrome, Safari, Firefox) 10.5GB
โœ“ Developer tools (Xcode, Node.js, npm) 23.3GB
โœ“ System logs and temp files 3.8GB
โœ“ App-specific cache (Spotify, Dropbox, Slack) 8.4GB
โœ“ Trash 12.3GB
====================================================================
Space freed: 95.5GB | Free space now: 223.5GB
====================================================================

Note: In mo clean -> Developer tools, Mole removes unused CoreSimulator Volumes/Cryptex entries and skips IN_USE items.

Smart App Uninstaller

$ mo uninstall
Select Apps to Remove
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
โ–ถ โ˜‘ Photoshop 2024 (4.2G) | Old
โ˜ IntelliJ IDEA (2.8G) | Recent
โ˜ Premiere Pro (3.4G) | Recent
Uninstalling: Photoshop 2024
โœ“ Removed application
โœ“ Cleaned 52 related files across 12 locations
- Application Support, Caches, Preferences
- Logs, WebKit storage, Cookies
- Extensions, Plugins, Launch daemons
Note: On macOS 15 and later, Local Network permission entries can outlive app removal. Mole warns when an uninstalled app declares Local Network usage, but it does not auto-reset `/Volumes/Data/Library/Preferences/com.apple.networkextension*.plist` because that reset is global and requires Recovery mode.
====================================================================
Space freed: 12.8GB
====================================================================

System Optimization

$ mo optimize
System: 5/32 GB RAM | 333/460 GB Disk (72%) | Uptime 6d
โœ“ Rebuild system databases and clear caches
โœ“ Reset network services
โœ“ Refresh Finder and Dock
โœ“ Clean diagnostic and crash logs
โœ“ Remove swap files and restart dynamic pager
โœ“ Rebuild launch services and spotlight index
====================================================================
System optimization completed
====================================================================
Use `mo optimize --whitelist` to exclude specific optimizations.

Disk Space Analyzer

Note: By default, Mole skips external drives under /Volumes for faster startup. To inspect them, run mo analyze /Volumes or a specific mount path.

$ mo analyze
Analyze Disk ~/Documents | Total: 156.8GB
โ–ถ 1. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 48.2% | ๐Ÿ“ Library 75.4GB >6mo
2. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 22.1% | ๐Ÿ“ Downloads 34.6GB
3. โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 14.3% | ๐Ÿ“ Movies 22.4GB
4. โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 10.8% | ๐Ÿ“ Documents 16.9GB
5. โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 5.2% | ๐Ÿ“„ backup_2023.zip 8.2GB
โ†‘โ†“โ†โ†’ Navigate | O Open | F Show | โŒซ Delete | L Large files | Q Quit

Live System Status

Real-time dashboard with health score, hardware info, and performance metrics.

$ mo status
Mole Status Health โ— 92 MacBook Pro ยท M4 Pro ยท 32GB ยท macOS 14.5
โš™ CPU โ–ฆ Memory
Total โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 45.2% Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 58.4%
Load 0.82 / 1.05 / 1.23 (8 cores) Total 14.2 / 24.0 GB
Core 1 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 78.3% Free โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 41.6%
Core 2 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 62.1% Avail 9.8 GB
โ–ค Disk โšก Power
Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 67.2% Level โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%
Free 156.3 GB Status Charged
Read โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 2.1 MB/s Health Normal ยท 423 cycles
Write โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 18.3 MB/s Temp 58ยฐC ยท 1200 RPM
โ‡… Network โ–ถ Processes
Down โ–โ–โ–ˆโ–‚โ–โ–โ–โ–โ–โ–โ–โ–โ–‡โ–†โ–…โ–‚ 0.54 MB/s Code โ–ฎโ–ฎโ–ฎโ–ฎโ–ฏ 42.1%
Up โ–„โ–„โ–„โ–ƒโ–ƒโ–ƒโ–„โ–†โ–†โ–‡โ–ˆโ–โ–โ–โ–โ– 0.02 MB/s Chrome โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 28.3%
Proxy HTTP ยท 192.168.1.100 Terminal โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 12.5%

Health score is based on CPU, memory, disk, temperature, and I/O load, with color-coded ranges.

Shortcuts: In mo status, press k to toggle the cat and save the preference, and q to quit.

When enabled, mo status shows a read-only alert banner for processes that stay above the configured CPU threshold for a sustained window. Use --proc-cpu-threshold, --proc-cpu-window, or --proc-cpu-alerts=false to tune or disable it.

Machine-Readable Output

Both mo analyze and mo status support a --json flag for scripting and automation.

mo status also auto-detects when its output is piped (not a terminal) and switches to JSON automatically.

# Disk analysis as JSON
$ mo analyze --json ~/Documents
{
"path": "/Users/you/Documents",
"overview": false,
"entries": [
{ "name": "Library", "path": "...", "size": 80939438080, "is_dir": true },
...
],
"large_files": [
{ "name": "backup.zip", "path": "...", "size": 8796093022 }
],
"total_size": 168393441280,
"total_files": 42187
}
# System status as JSON
$ mo status --json
{
"host": "MacBook-Pro",
"health_score": 92,
"cpu": { "usage": 45.2, "logical_cpu": 8, ... },
"memory": { "total": 25769803776, "used": 15049334784, "used_percent": 58.4 },
"disks": [ ... ],
"uptime": "3d 12h 45m",
...
}
# Auto-detected JSON when piped
$ mo status | jq '.health_score'
92

Project Artifact Purge

Clean old build artifacts such as node_modules, target, .build, build, and dist to free up disk space.

mo purge
Select Categories to Clean - 18.5GB (8 selected)
โžค โ— my-react-app 3.2GB | node_modules
โ— old-project 2.8GB | node_modules
โ— rust-app 4.1GB | target
โ— next-blog 1.9GB | node_modules
โ—‹ current-work 856MB | node_modules | Recent
โ— django-api 2.3GB | venv
โ— vue-dashboard 1.7GB | node_modules
โ— backend-service 2.5GB | node_modules

Note: We recommend installing fd on macOS. brew install fd

Safety: This permanently deletes selected artifacts. Review carefully before confirming. Projects newer than 7 days are marked and unselected by default.

Custom Scan Paths

Run mo purge --paths to configure scan directories, or edit ~/.config/mole/purge_paths directly:

~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB

When custom paths are configured, Mole scans only those directories. Otherwise, it uses defaults like ~/Projects, ~/GitHub, and ~/dev.

Installer Cleanup

Find and remove large installer files across Downloads, Desktop, Homebrew caches, iCloud, and Mail. Each file is labeled by source.

mo installer
Select Installers to Remove - 3.8GB (5 selected)
โžค โ— Photoshop_2024.dmg 1.2GB | Downloads
โ— IntelliJ_IDEA.dmg 850.6MB | Downloads
โ— Illustrator_Setup.pkg 920.4MB | Downloads
โ— PyCharm_Pro.dmg 640.5MB | Homebrew
โ— Acrobat_Reader.dmg 220.4MB | Downloads
โ—‹ AppCode_Legacy.zip 410.6MB | Downloads

Quick Launchers

Launch Mole commands from Raycast or Alfred:

curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash

Adds 5 commands: Mole Clean, Mole Uninstall, Mole Optimize, Mole Analyze, Mole Status.

Raycast Setup

After running the script, complete these steps in Raycast:

  1. Open Raycast Settings (โŒ˜ + ,)
  2. Go to Extensions โ†’ Script Commands
  3. Click "Add Script Directory" (or "+")
  4. Add path: ~/Library/Application Support/Raycast/script-commands
  5. Search in Raycast for: "Reload Script Directories" and run it
  6. Done! Search for Mole Clean or clean, Mole Optimize, or Mole Status to use the commands

Note: The script creates the commands, but Raycast still requires a one-time manual script directory setup.

Terminal Detection

Mole auto-detects your terminal app. iTerm2 has known compatibility issues. We highly recommend Kaku. Other good options are Alacritty, kitty, WezTerm, Ghostty, and Warp. To override, set MO_LAUNCHER_APP=<name>.

Community Love

Thanks to everyone who helped build Mole. Go follow them. โค๏ธ



Real feedback from users who shared Mole on X.

Community feedback on Mole

Support

  • If Mole helped you, share it with friends or give it a star.
  • Got ideas or bugs? Open an issue or PR, feel free to contribute your best AI model.
  • I have two cats, TangYuan and Coke. If you think Mole delights your life, you can feed them canned food ๐Ÿฅฉ.

License

MIT License. Feel free to use Mole and contribute.

About

๐Ÿน Deep clean and optimize your Mac.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mole

Deep clean and optimize your Mac.

StarsVersionLicenseCommitsTwitterTelegram

Mole - 95.50GB freed

Features

  • All-in-one toolkit: Combines CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus in a single binary
  • Deep cleaning: Removes caches, logs, browser leftovers, and orphaned app data to reclaim gigabytes of space
  • Smart uninstaller: Removes apps plus launch agents, preferences, and hidden remnants
  • Disk insights: Visualizes usage, finds large files, rebuilds caches, and refreshes system services
  • Live monitoring: Shows real-time CPU, GPU, memory, disk, and network stats

Quick Start

Install via Homebrew

brew install mole

Or via script

# Optional args: -s latest for main branch code, -s 1.17.0 for specific version
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

Note: Mole is built for macOS. An experimental Windows version is available in the windows branch for early adopters.

Run

mo # Interactive menu
mo clean # Deep cleanup + already-uninstalled app leftovers
mo uninstall # Remove installed apps + their leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer (or 'mo analyse')
mo status # Live system health dashboard
mo purge # Clean project build artifacts
mo installer # Find and remove installer files
mo touchid # Configure Touch ID for sudo
mo completion # Set up shell tab completion
mo update # Update Mole
mo update --nightly # Update to latest unreleased main build, script install only
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version

Preview safely

mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run
# Also works with: optimize, installer, remove, completion, touchid enable
mo clean --dry-run --debug # Preview + detailed logs
mo optimize --whitelist # Manage protected optimization rules
mo clean --whitelist # Manage protected caches
mo purge --paths # Configure project scan directories
mo analyze /Volumes # Analyze external drives only

Security & Safety Design

Mole is a local system maintenance tool, and some commands can perform destructive local operations.

Mole uses safety-first defaults: path validation, protected-directory rules, conservative cleanup boundaries, and explicit confirmation for higher-risk actions. When risk or uncertainty is high, Mole skips, refuses, or requires stronger confirmation rather than broadening deletion scope.

mo analyze is safer for ad hoc cleanup because it moves files to Trash through Finder instead of deleting them directly.

Review SECURITY.md and SECURITY_AUDIT.md for reporting guidance, safety boundaries, and current limitations.

Tips

  • Video tutorial: Watch the Mole tutorial video, thanks to PAPAYA ้›ป่…ฆๆ•™ๅฎค.
  • Safety and logs: clean, uninstall, purge, installer, and remove are destructive. Review with --dry-run first, and add --debug when needed. File operations are logged to ~/Library/Logs/mole/operations.log. Disable with MO_NO_OPLOG=1. Review SECURITY.md and SECURITY_AUDIT.md.
  • App leftovers: use mo clean when the app is already uninstalled, and mo uninstall when the app is still installed.
  • Navigation: Mole supports arrow keys and Vim bindings h/j/k/l.

Features in Detail

Deep System Cleanup

$ mo clean
Scanning cache directories...
โœ“ User app cache 45.2GB
โœ“ Browser cache (Chrome, Safari, Firefox) 10.5GB
โœ“ Developer tools (Xcode, Node.js, npm) 23.3GB
โœ“ System logs and temp files 3.8GB
โœ“ App-specific cache (Spotify, Dropbox, Slack) 8.4GB
โœ“ Trash 12.3GB
====================================================================
Space freed: 95.5GB | Free space now: 223.5GB
====================================================================

Note: In mo clean -> Developer tools, Mole removes unused CoreSimulator Volumes/Cryptex entries and skips IN_USE items.

Smart App Uninstaller

$ mo uninstall
Select Apps to Remove
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
โ–ถ โ˜‘ Photoshop 2024 (4.2G) | Old
โ˜ IntelliJ IDEA (2.8G) | Recent
โ˜ Premiere Pro (3.4G) | Recent
Uninstalling: Photoshop 2024
โœ“ Removed application
โœ“ Cleaned 52 related files across 12 locations
- Application Support, Caches, Preferences
- Logs, WebKit storage, Cookies
- Extensions, Plugins, Launch daemons
Note: On macOS 15 and later, Local Network permission entries can outlive app removal. Mole warns when an uninstalled app declares Local Network usage, but it does not auto-reset `/Volumes/Data/Library/Preferences/com.apple.networkextension*.plist` because that reset is global and requires Recovery mode.
====================================================================
Space freed: 12.8GB
====================================================================

System Optimization

$ mo optimize
System: 5/32 GB RAM | 333/460 GB Disk (72%) | Uptime 6d
โœ“ Rebuild system databases and clear caches
โœ“ Reset network services
โœ“ Refresh Finder and Dock
โœ“ Clean diagnostic and crash logs
โœ“ Remove swap files and restart dynamic pager
โœ“ Rebuild launch services and spotlight index
====================================================================
System optimization completed
====================================================================
Use `mo optimize --whitelist` to exclude specific optimizations.

Disk Space Analyzer

Note: By default, Mole skips external drives under /Volumes for faster startup. To inspect them, run mo analyze /Volumes or a specific mount path.

$ mo analyze
Analyze Disk ~/Documents | Total: 156.8GB
โ–ถ 1. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 48.2% | ๐Ÿ“ Library 75.4GB >6mo
2. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 22.1% | ๐Ÿ“ Downloads 34.6GB
3. โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 14.3% | ๐Ÿ“ Movies 22.4GB
4. โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 10.8% | ๐Ÿ“ Documents 16.9GB
5. โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 5.2% | ๐Ÿ“„ backup_2023.zip 8.2GB
โ†‘โ†“โ†โ†’ Navigate | O Open | F Show | โŒซ Delete | L Large files | Q Quit

Live System Status

Real-time dashboard with health score, hardware info, and performance metrics.

$ mo status
Mole Status Health โ— 92 MacBook Pro ยท M4 Pro ยท 32GB ยท macOS 14.5
โš™ CPU โ–ฆ Memory
Total โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 45.2% Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 58.4%
Load 0.82 / 1.05 / 1.23 (8 cores) Total 14.2 / 24.0 GB
Core 1 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 78.3% Free โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 41.6%
Core 2 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 62.1% Avail 9.8 GB
โ–ค Disk โšก Power
Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 67.2% Level โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%
Free 156.3 GB Status Charged
Read โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 2.1 MB/s Health Normal ยท 423 cycles
Write โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 18.3 MB/s Temp 58ยฐC ยท 1200 RPM
โ‡… Network โ–ถ Processes
Down โ–โ–โ–ˆโ–‚โ–โ–โ–โ–โ–โ–โ–โ–โ–‡โ–†โ–…โ–‚ 0.54 MB/s Code โ–ฎโ–ฎโ–ฎโ–ฎโ–ฏ 42.1%
Up โ–„โ–„โ–„โ–ƒโ–ƒโ–ƒโ–„โ–†โ–†โ–‡โ–ˆโ–โ–โ–โ–โ– 0.02 MB/s Chrome โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 28.3%
Proxy HTTP ยท 192.168.1.100 Terminal โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 12.5%

Health score is based on CPU, memory, disk, temperature, and I/O load, with color-coded ranges.

Shortcuts: In mo status, press k to toggle the cat and save the preference, and q to quit.

When enabled, mo status shows a read-only alert banner for processes that stay above the configured CPU threshold for a sustained window. Use --proc-cpu-threshold, --proc-cpu-window, or --proc-cpu-alerts=false to tune or disable it.

Machine-Readable Output

Both mo analyze and mo status support a --json flag for scripting and automation.

mo status also auto-detects when its output is piped (not a terminal) and switches to JSON automatically.

# Disk analysis as JSON
$ mo analyze --json ~/Documents
{
"path": "/Users/you/Documents",
"overview": false,
"entries": [
{ "name": "Library", "path": "...", "size": 80939438080, "is_dir": true },
...
],
"large_files": [
{ "name": "backup.zip", "path": "...", "size": 8796093022 }
],
"total_size": 168393441280,
"total_files": 42187
}
# System status as JSON
$ mo status --json
{
"host": "MacBook-Pro",
"health_score": 92,
"cpu": { "usage": 45.2, "logical_cpu": 8, ... },
"memory": { "total": 25769803776, "used": 15049334784, "used_percent": 58.4 },
"disks": [ ... ],
"uptime": "3d 12h 45m",
...
}
# Auto-detected JSON when piped
$ mo status | jq '.health_score'
92

Project Artifact Purge

Clean old build artifacts such as node_modules, target, .build, build, and dist to free up disk space.

mo purge
Select Categories to Clean - 18.5GB (8 selected)
โžค โ— my-react-app 3.2GB | node_modules
โ— old-project 2.8GB | node_modules
โ— rust-app 4.1GB | target
โ— next-blog 1.9GB | node_modules
โ—‹ current-work 856MB | node_modules | Recent
โ— django-api 2.3GB | venv
โ— vue-dashboard 1.7GB | node_modules
โ— backend-service 2.5GB | node_modules

Note: We recommend installing fd on macOS. brew install fd

Safety: This permanently deletes selected artifacts. Review carefully before confirming. Projects newer than 7 days are marked and unselected by default.

Custom Scan Paths

Run mo purge --paths to configure scan directories, or edit ~/.config/mole/purge_paths directly:

~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB

When custom paths are configured, Mole scans only those directories. Otherwise, it uses defaults like ~/Projects, ~/GitHub, and ~/dev.

Installer Cleanup

Find and remove large installer files across Downloads, Desktop, Homebrew caches, iCloud, and Mail. Each file is labeled by source.

mo installer
Select Installers to Remove - 3.8GB (5 selected)
โžค โ— Photoshop_2024.dmg 1.2GB | Downloads
โ— IntelliJ_IDEA.dmg 850.6MB | Downloads
โ— Illustrator_Setup.pkg 920.4MB | Downloads
โ— PyCharm_Pro.dmg 640.5MB | Homebrew
โ— Acrobat_Reader.dmg 220.4MB | Downloads
โ—‹ AppCode_Legacy.zip 410.6MB | Downloads

Quick Launchers

Launch Mole commands from Raycast or Alfred:

curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash

Adds 5 commands: Mole Clean, Mole Uninstall, Mole Optimize, Mole Analyze, Mole Status.

Raycast Setup

After running the script, complete these steps in Raycast:

  1. Open Raycast Settings (โŒ˜ + ,)
  2. Go to Extensions โ†’ Script Commands
  3. Click "Add Script Directory" (or "+")
  4. Add path: ~/Library/Application Support/Raycast/script-commands
  5. Search in Raycast for: "Reload Script Directories" and run it
  6. Done! Search for Mole Clean or clean, Mole Optimize, or Mole Status to use the commands

Note: The script creates the commands, but Raycast still requires a one-time manual script directory setup.

Terminal Detection

Mole auto-detects your terminal app. iTerm2 has known compatibility issues. We highly recommend Kaku. Other good options are Alacritty, kitty, WezTerm, Ghostty, and Warp. To override, set MO_LAUNCHER_APP=<name>.

Community Love

Thanks to everyone who helped build Mole. Go follow them. โค๏ธ



Real feedback from users who shared Mole on X.

Community feedback on Mole

Support

  • If Mole helped you, share it with friends or give it a star.
  • Got ideas or bugs? Open an issue or PR, feel free to contribute your best AI model.
  • I have two cats, TangYuan and Coke. If you think Mole delights your life, you can feed them canned food ๐Ÿฅฉ.

License

MIT License. Feel free to use Mole and contribute.

About

๐Ÿน Deep clean and optimize your Mac.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Mole

Deep clean and optimize your Mac.

StarsVersionLicenseCommitsTwitterTelegram

Mole - 95.50GB freed

Features

  • All-in-one toolkit: Combines CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus in a single binary
  • Deep cleaning: Removes caches, logs, browser leftovers, and orphaned app data to reclaim gigabytes of space
  • Smart uninstaller: Removes apps plus launch agents, preferences, and hidden remnants
  • Disk insights: Visualizes usage, finds large files, rebuilds caches, and refreshes system services
  • Live monitoring: Shows real-time CPU, GPU, memory, disk, and network stats

Quick Start

Install via Homebrew

brew install mole

Or via script

# Optional args: -s latest for main branch code, -s 1.17.0 for specific version
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

Note: Mole is built for macOS. An experimental Windows version is available in the windows branch for early adopters.

Run

mo # Interactive menu
mo clean # Deep cleanup + already-uninstalled app leftovers
mo uninstall # Remove installed apps + their leftovers
mo optimize # Refresh caches & services
mo analyze # Visual disk explorer (or 'mo analyse')
mo status # Live system health dashboard
mo purge # Clean project build artifacts
mo installer # Find and remove installer files
mo touchid # Configure Touch ID for sudo
mo completion # Set up shell tab completion
mo update # Update Mole
mo update --nightly # Update to latest unreleased main build, script install only
mo remove # Remove Mole from system
mo --help # Show help
mo --version # Show installed version

Preview safely

mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run
# Also works with: optimize, installer, remove, completion, touchid enable
mo clean --dry-run --debug # Preview + detailed logs
mo optimize --whitelist # Manage protected optimization rules
mo clean --whitelist # Manage protected caches
mo purge --paths # Configure project scan directories
mo analyze /Volumes # Analyze external drives only

Security & Safety Design

Mole is a local system maintenance tool, and some commands can perform destructive local operations.

Mole uses safety-first defaults: path validation, protected-directory rules, conservative cleanup boundaries, and explicit confirmation for higher-risk actions. When risk or uncertainty is high, Mole skips, refuses, or requires stronger confirmation rather than broadening deletion scope.

mo analyze is safer for ad hoc cleanup because it moves files to Trash through Finder instead of deleting them directly.

Review SECURITY.md and SECURITY_AUDIT.md for reporting guidance, safety boundaries, and current limitations.

Tips

  • Video tutorial: Watch the Mole tutorial video, thanks to PAPAYA ้›ป่…ฆๆ•™ๅฎค.
  • Safety and logs: clean, uninstall, purge, installer, and remove are destructive. Review with --dry-run first, and add --debug when needed. File operations are logged to ~/Library/Logs/mole/operations.log. Disable with MO_NO_OPLOG=1. Review SECURITY.md and SECURITY_AUDIT.md.
  • App leftovers: use mo clean when the app is already uninstalled, and mo uninstall when the app is still installed.
  • Navigation: Mole supports arrow keys and Vim bindings h/j/k/l.

Features in Detail

Deep System Cleanup

$ mo clean
Scanning cache directories...
โœ“ User app cache 45.2GB
โœ“ Browser cache (Chrome, Safari, Firefox) 10.5GB
โœ“ Developer tools (Xcode, Node.js, npm) 23.3GB
โœ“ System logs and temp files 3.8GB
โœ“ App-specific cache (Spotify, Dropbox, Slack) 8.4GB
โœ“ Trash 12.3GB
====================================================================
Space freed: 95.5GB | Free space now: 223.5GB
====================================================================

Note: In mo clean -> Developer tools, Mole removes unused CoreSimulator Volumes/Cryptex entries and skips IN_USE items.

Smart App Uninstaller

$ mo uninstall
Select Apps to Remove
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
โ–ถ โ˜‘ Photoshop 2024 (4.2G) | Old
โ˜ IntelliJ IDEA (2.8G) | Recent
โ˜ Premiere Pro (3.4G) | Recent
Uninstalling: Photoshop 2024
โœ“ Removed application
โœ“ Cleaned 52 related files across 12 locations
- Application Support, Caches, Preferences
- Logs, WebKit storage, Cookies
- Extensions, Plugins, Launch daemons
Note: On macOS 15 and later, Local Network permission entries can outlive app removal. Mole warns when an uninstalled app declares Local Network usage, but it does not auto-reset `/Volumes/Data/Library/Preferences/com.apple.networkextension*.plist` because that reset is global and requires Recovery mode.
====================================================================
Space freed: 12.8GB
====================================================================

System Optimization

$ mo optimize
System: 5/32 GB RAM | 333/460 GB Disk (72%) | Uptime 6d
โœ“ Rebuild system databases and clear caches
โœ“ Reset network services
โœ“ Refresh Finder and Dock
โœ“ Clean diagnostic and crash logs
โœ“ Remove swap files and restart dynamic pager
โœ“ Rebuild launch services and spotlight index
====================================================================
System optimization completed
====================================================================
Use `mo optimize --whitelist` to exclude specific optimizations.

Disk Space Analyzer

Note: By default, Mole skips external drives under /Volumes for faster startup. To inspect them, run mo analyze /Volumes or a specific mount path.

$ mo analyze
Analyze Disk ~/Documents | Total: 156.8GB
โ–ถ 1. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 48.2% | ๐Ÿ“ Library 75.4GB >6mo
2. โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 22.1% | ๐Ÿ“ Downloads 34.6GB
3. โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 14.3% | ๐Ÿ“ Movies 22.4GB
4. โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 10.8% | ๐Ÿ“ Documents 16.9GB
5. โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 5.2% | ๐Ÿ“„ backup_2023.zip 8.2GB
โ†‘โ†“โ†โ†’ Navigate | O Open | F Show | โŒซ Delete | L Large files | Q Quit

Live System Status

Real-time dashboard with health score, hardware info, and performance metrics.

$ mo status
Mole Status Health โ— 92 MacBook Pro ยท M4 Pro ยท 32GB ยท macOS 14.5
โš™ CPU โ–ฆ Memory
Total โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 45.2% Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 58.4%
Load 0.82 / 1.05 / 1.23 (8 cores) Total 14.2 / 24.0 GB
Core 1 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘ 78.3% Free โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 41.6%
Core 2 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 62.1% Avail 9.8 GB
โ–ค Disk โšก Power
Used โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 67.2% Level โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100%
Free 156.3 GB Status Charged
Read โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 2.1 MB/s Health Normal ยท 423 cycles
Write โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 18.3 MB/s Temp 58ยฐC ยท 1200 RPM
โ‡… Network โ–ถ Processes
Down โ–โ–โ–ˆโ–‚โ–โ–โ–โ–โ–โ–โ–โ–โ–‡โ–†โ–…โ–‚ 0.54 MB/s Code โ–ฎโ–ฎโ–ฎโ–ฎโ–ฏ 42.1%
Up โ–„โ–„โ–„โ–ƒโ–ƒโ–ƒโ–„โ–†โ–†โ–‡โ–ˆโ–โ–โ–โ–โ– 0.02 MB/s Chrome โ–ฎโ–ฎโ–ฎโ–ฏโ–ฏ 28.3%
Proxy HTTP ยท 192.168.1.100 Terminal โ–ฎโ–ฏโ–ฏโ–ฏโ–ฏ 12.5%

Health score is based on CPU, memory, disk, temperature, and I/O load, with color-coded ranges.

Shortcuts: In mo status, press k to toggle the cat and save the preference, and q to quit.

When enabled, mo status shows a read-only alert banner for processes that stay above the configured CPU threshold for a sustained window. Use --proc-cpu-threshold, --proc-cpu-window, or --proc-cpu-alerts=false to tune or disable it.

Machine-Readable Output

Both mo analyze and mo status support a --json flag for scripting and automation.

mo status also auto-detects when its output is piped (not a terminal) and switches to JSON automatically.

# Disk analysis as JSON
$ mo analyze --json ~/Documents
{
"path": "/Users/you/Documents",
"overview": false,
"entries": [
{ "name": "Library", "path": "...", "size": 80939438080, "is_dir": true },
...
],
"large_files": [
{ "name": "backup.zip", "path": "...", "size": 8796093022 }
],
"total_size": 168393441280,
"total_files": 42187
}
# System status as JSON
$ mo status --json
{
"host": "MacBook-Pro",
"health_score": 92,
"cpu": { "usage": 45.2, "logical_cpu": 8, ... },
"memory": { "total": 25769803776, "used": 15049334784, "used_percent": 58.4 },
"disks": [ ... ],
"uptime": "3d 12h 45m",
...
}
# Auto-detected JSON when piped
$ mo status | jq '.health_score'
92

Project Artifact Purge

Clean old build artifacts such as node_modules, target, .build, build, and dist to free up disk space.

mo purge
Select Categories to Clean - 18.5GB (8 selected)
โžค โ— my-react-app 3.2GB | node_modules
โ— old-project 2.8GB | node_modules
โ— rust-app 4.1GB | target
โ— next-blog 1.9GB | node_modules
โ—‹ current-work 856MB | node_modules | Recent
โ— django-api 2.3GB | venv
โ— vue-dashboard 1.7GB | node_modules
โ— backend-service 2.5GB | node_modules

Note: We recommend installing fd on macOS. brew install fd

Safety: This permanently deletes selected artifacts. Review carefully before confirming. Projects newer than 7 days are marked and unselected by default.

Custom Scan Paths

Run mo purge --paths to configure scan directories, or edit ~/.config/mole/purge_paths directly:

~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB

When custom paths are configured, Mole scans only those directories. Otherwise, it uses defaults like ~/Projects, ~/GitHub, and ~/dev.

Installer Cleanup

Find and remove large installer files across Downloads, Desktop, Homebrew caches, iCloud, and Mail. Each file is labeled by source.

mo installer
Select Installers to Remove - 3.8GB (5 selected)
โžค โ— Photoshop_2024.dmg 1.2GB | Downloads
โ— IntelliJ_IDEA.dmg 850.6MB | Downloads
โ— Illustrator_Setup.pkg 920.4MB | Downloads
โ— PyCharm_Pro.dmg 640.5MB | Homebrew
โ— Acrobat_Reader.dmg 220.4MB | Downloads
โ—‹ AppCode_Legacy.zip 410.6MB | Downloads

Quick Launchers

Launch Mole commands from Raycast or Alfred:

curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash

Adds 5 commands: Mole Clean, Mole Uninstall, Mole Optimize, Mole Analyze, Mole Status.

Raycast Setup

After running the script, complete these steps in Raycast:

  1. Open Raycast Settings (โŒ˜ + ,)
  2. Go to Extensions โ†’ Script Commands
  3. Click "Add Script Directory" (or "+")
  4. Add path: ~/Library/Application Support/Raycast/script-commands
  5. Search in Raycast for: "Reload Script Directories" and run it
  6. Done! Search for Mole Clean or clean, Mole Optimize, or Mole Status to use the commands

Note: The script creates the commands, but Raycast still requires a one-time manual script directory setup.

Terminal Detection

Mole auto-detects your terminal app. iTerm2 has known compatibility issues. We highly recommend Kaku. Other good options are Alacritty, kitty, WezTerm, Ghostty, and Warp. To override, set MO_LAUNCHER_APP=<name>.

Community Love

Thanks to everyone who helped build Mole. Go follow them. โค๏ธ



Real feedback from users who shared Mole on X.

Community feedback on Mole

Support

  • If Mole helped you, share it with friends or give it a star.
  • Got ideas or bugs? Open an issue or PR, feel free to contribute your best AI model.
  • I have two cats, TangYuan and Coke. If you think Mole delights your life, you can feed them canned food ๐Ÿฅฉ.

License

MIT License. Feel free to use Mole and contribute.

About

๐Ÿน Deep clean and optimize your Mac.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages