mole-mac-cleaner

Deep clean and optimize your Mac using the Mole CLI tool

Skill file

Preview skill file
---
name: mole-mac-cleaner
description: Deep clean and optimize your Mac using the Mole CLI tool
triggers:
  - clean up my Mac disk space
  - remove app leftovers on macOS
  - optimize my Mac with mole
  - uninstall apps and hidden files mac
  - free up space on mac cli
  - analyze disk usage mac terminal
  - purge node_modules and build artifacts mac
  - monitor mac system stats terminal
---

# Mole Mac Cleaner

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.

Mole (`mo`) is an all-in-one macOS maintenance CLI that combines deep cleaning, smart app uninstallation, disk analysis, system optimization, live monitoring, and project artifact purging into a single binary.

## Installation

```bash
# Via Homebrew (recommended)
brew install mole

# Via install script (supports version pinning)
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash

# Specific version
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash -s 1.17.0

# Latest main branch (nightly)
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash -s latest
```

## Core Commands

```bash
mo                    # Interactive menu (arrow keys or vim h/j/k/l)
mo clean              # Deep system cache + browser + dev tool cleanup
mo uninstall          # Remove apps plus all hidden remnants
mo optimize           # Rebuild caches, reset network, refresh Finder/Dock
mo analyze            # Visual disk space explorer
mo status             # Live real-time system health dashboard
mo purge              # Remove project build artifacts (node_modules, target, dist)
mo installer          # Find and remove installer .dmg/.pkg 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 build (script install only)
mo remove             # Uninstall Mole itself
mo --help
mo --version
```

## Safe Preview Before Deleting

Always dry-run destructive commands first:

```bash
mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run

# Combine with debug for detailed output
mo clean --dry-run --debug
mo optimize --dry-run --debug
```

## Key Command Details

### `mo clean` — Deep Cleanup

Cleans user app caches, browser caches (Chrome, Safari, Firefox), developer tool caches (Xcode, Node.js, npm), system logs, temp files, app-specific caches (Spotify, Dropbox, Slack), and Trash.

```bash
mo clean                  # Interactive cleanup
mo clean --dry-run        # Preview what would be removed
mo clean --whitelist      # Manage protected caches (exclude from cleanup)
```

Whitelist config lives at `~/.config/mole/`. Edit it to protect paths you want to keep.

### `mo uninstall` — Smart App Removal

Finds apps, shows size and last-used date, then removes the app bundle plus all related files:
- Application Support, Caches, Preferences
- Logs, WebKit storage, Cookies
- Extensions, Plugins, Launch Daemons

```bash
mo uninstall              # Interactive multi-select list
mo uninstall --dry-run    # Preview removals
```

### `mo optimize` — System Refresh

```bash
mo optimize               # Run all optimizations
mo optimize --dry-run     # Preview
mo optimize --whitelist   # Exclude specific optimizations
```

Optimizations include:
- 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

### `mo analyze` — Disk Explorer

```bash
mo analyze                # Analyze home directory (skips /Volumes by default)
mo analyze ~/Downloads    # Analyze specific path
mo analyze /Volumes       # Include external drives explicitly

# Machine-readable output for scripting
mo analyze --json ~/Documents
```

**JSON output example:**
```json
{
  "path": "/Users/you/Documents",
  "entries": [
    { "name": "Library", "path": "...", "size": 80939438080, "is_dir": true }
  ],
  "total_size": 168393441280,
  "total_files": 42187
}
```

**Navigator shortcuts inside `mo analyze`:**
| Key | Action |
|-----|--------|
| `↑↓` or `j/k` | Navigate list |
| `←→` or `h/l` | Go back / Enter directory |
| `O` | Open in Finder |
| `F` | Reveal in Finder |
| `⌫` | Move to Trash (via Finder, safer than direct delete) |
| `L` | Show large files |
| `Q` | Quit |

### `mo status` — Live Dashboard

```bash
mo status                 # Real-time CPU, GPU, memory, disk, network, processes
mo status --json          # JSON output for scripting
mo status | jq '.health_score'   # Auto-detects pipe → outputs JSON
```

**JSON output example:**
```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"
}
```

Shortcuts inside `mo status`: `k` toggles the cat mascot, `q` quits.

### `mo purge` — Project Artifact Cleanup

Scans for `node_modules`, `target`, `build`, `dist`, `venv`, and similar directories. Projects newer than 7 days are unselected by default.

```bash
mo purge                  # Interactive multi-select
mo purge --dry-run        # Preview
mo purge --paths          # Configure custom scan directories
```

**Configure custom scan paths** (`~/.config/mole/purge_paths`):
```
~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB
```

When this file exists, Mole uses only those paths. Otherwise it defaults to `~/Projects`, `~/GitHub`, `~/dev`.

> Install `fd` for faster scanning: `brew install fd`

### `mo installer` — Installer File Cleanup

```bash
mo installer              # Find .dmg/.pkg files in Downloads, Desktop, Homebrew cache, iCloud, Mail
mo installer --dry-run    # Preview removals
```

## Configuration Files

All config lives in `~/.config/mole/`:

| File | Purpose |
|------|---------|
| `purge_paths` | Custom directories for `mo purge` to scan |
| `operations.log` | Log of all file operations |

**Disable operation logging:**
```bash
export MO_NO_OPLOG=1
mo clean
```

## Shell Tab Completion

```bash
mo completion             # Interactive setup for bash/zsh/fish
```

## Touch ID for sudo

```bash
mo touchid                # Enable Touch ID authentication for sudo commands
mo touchid enable --dry-run
```

## Scripting & Automation Patterns

### Check disk health in a script

```bash
#!/bin/bash
health=$(mo status --json | jq -r '.health_score')
if [ "$health" -lt 70 ]; then
  echo "Health score low: $health — running cleanup"
  mo clean --dry-run  # swap to `mo clean` when ready
fi
```

### Get largest directories as JSON and process with jq

```bash
mo analyze --json ~/Downloads | jq '.entries | sort_by(-.size) | .[0:5] | .[] | {name, size_gb: (.size / 1073741824 | . * 100 | round / 100)}'
```

### Automated project purge in CI teardown

```bash
#!/bin/bash
# Non-interactive purge of build artifacts after CI
MO_NO_OPLOG=1 mo purge --dry-run   # always preview first in scripts
```

### Raycast / Alfred quick launchers

```bash
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash
# Then bind `mo clean`, `mo status`, `mo analyze` as script commands in Raycast
```

## Safety Boundaries

- `mo analyze` moves files to Trash via Finder (recoverable) instead of direct deletion — prefer it for ad hoc cleanup
- `clean`, `uninstall`, `purge`, `installer`, and `remove` are **permanently destructive** — always `--dry-run` first
- Mole validates paths and enforces protected-directory rules; it skips or refuses high-risk operations
- Operation log: `~/.config/mole/operations.log` — disable with `MO_NO_OPLOG=1`
- Review [SECURITY.md](https://github.com/tw93/Mole/blob/main/SECURITY.md) and [SECURITY_AUDIT.md](https://github.com/tw93/Mole/blob/main/SECURITY_AUDIT.md) before using in automated pipelines

## Troubleshooting

| Problem | Solution |
|---------|----------|
| `mo: command not found` | Run `brew install mole` or re-run install script; check `$PATH` |
| Purge scan is slow | Install `fd`: `brew install fd` |
| External drives not appearing in analyze | Run `mo analyze /Volumes` explicitly |
| Want to protect a cache from being cleaned | Run `mo clean --whitelist` to add it |
| Need to exclude an optimization step | Run `mo optimize --whitelist` |
| Script getting interactive prompts | Use `--dry-run` flag; check for `MO_NO_OPLOG=1` env var |
| Nightly update not working | Nightly updates (`--nightly`) only work with script install, not Homebrew |

## Update & Remove

```bash
mo update                 # Update to latest stable
mo update --nightly       # Update to latest main (script install only)
mo remove                 # Uninstall Mole completely
mo remove --dry-run       # Preview what remove would delete
```

Source

Creator's repository · aradotso/trending-skills

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
What this skill can do
Reads your filesConnects to the internetRuns code on your machine
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk