Mole is a single-binary command-line toolkit that cleans, uninstalls, analyzes, optimizes, and monitors macOS — all from your terminal. It rolls the jobs you would normally spread across CleanMyMac, AppCleaner, DaisyDisk, and iStat Menus into one fast, safety-first tool. This guide covers everything you need to install Mole, use every command, and recover from common problems.
Note
Mole is built for macOS. An experimental Windows build lives on a separate
windowsbranch, but the stable tool documented here targets macOS only.
Table of Contents
- Quick Start
- Installation
- The Interactive Menu
- Everyday Commands
- Setup & Maintenance Commands
- Previewing Safely with
--dry-run - Scripting with JSON Output
- Quick Launchers (Raycast & Alfred)
- How Mole Keeps You Safe
- Configuration & Environment Variables
- Troubleshooting
- Frequently Asked Questions
- Command & Flag Reference
1. Quick Start
Install Mole, then run it. The fastest path on most Macs:
brew install mole
mo
mo (a short alias for mole) with no arguments opens the interactive menu. From there you can reach the five most common tools with the arrow keys. If you prefer to jump straight to a task:
mo clean # Reclaim disk space from caches, logs, and leftovers
mo uninstall # Remove an app and everything it left behind
mo analyze # Browse what is using your disk
mo status # Live CPU / memory / disk / network dashboard
mo optimize # Rebuild caches and refresh system services
Tip
Every destructive command supports
--dry-run. Runmo clean --dry-runthe first time to see exactly what would be removed without touching a single file. See Section 6.
2. Installation
Mole ships as a small bash CLI plus two compiled Go helper binaries (analyze and status). You can install it through Homebrew or with the official install script.
2.1 Install with Homebrew (recommended)
Homebrew
brew install mole
Install script
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash
Both methods install two executables to /usr/local/bin:
| Executable | Purpose |
|---|---|
mole |
The full command name |
mo |
A convenience alias that runs mole |
Supporting libraries and the compiled helper binaries are placed under ~/.config/mole/.
2.2 Install a specific version or the bleeding edge
The install script accepts an optional version token. Pass it through the piped script using -s:
# Latest unreleased main-branch code ("edge"/nightly build)
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash -s latest
# A specific tagged release
curl -fsSL https://raw.githubusercontent.com/tw93/mole/main/install.sh | bash -s 1.17.0
Note
latestandmaininstall the nightly channel (newest main-branch commit). A bare version number such as1.17.0installs that exact tagged release on the stable channel. Seemo updatefor switching channels later.
2.3 Verify the installation
mo --version
Mole version 1.42.0
macOS: 14.5
Architecture: arm64
Kernel: 23.5.0
SIP: Enabled
Disk Free: 223.5 GB
Install: Homebrew
Shell: /bin/zsh
If mo is not found, your install directory is not on PATH. The installer prints the exact export PATH=... line to add to your ~/.zshrc or ~/.bash_profile when this happens.
2.4 Requirements & optional tools
| Tool | Required? | Used for |
|---|---|---|
| macOS | Required | Mole is macOS-only |
curl or wget |
Required | Downloading updates and the installer |
Homebrew (brew) |
Optional | Homebrew installs and updates |
fd |
Recommended for purge |
Faster project scanning (brew install fd) |
trash CLI |
Optional | Faster Trash moves during uninstall (falls back to Finder) |
gh (GitHub CLI) |
Optional | Verifies release build-provenance attestations |
go toolchain |
Optional | Building the helper binaries from source |
3. The Interactive Menu
Running mo with no arguments shows a banner and a five-item menu:
__ __ _
| \/ | ___ | | ___
| |\/| |/ _ \| |/ _ \
| | | | (_) | | __/ https://github.com/tw93/mole
|_| |_|\___/|_|\___| Deep clean and optimize your Mac.
1. Clean Free up disk space
2. Uninstall Remove apps completely
3. Optimize Refresh caches and services
4. Analyze Explore disk usage
5. Status Monitor system health
↑↓ | Enter | M More | V Version | T TouchID | Q Quit
| Key | Action |
|---|---|
↑ / ↓ |
Move the selection |
1–5 |
Jump directly to that tool |
Enter |
Launch the highlighted tool |
M |
Show the full help (all commands) |
V |
Show version and system info |
T |
Configure Touch ID (only shown when not yet enabled) |
U |
Update Mole (only shown when an update is available) |
Q |
Quit |
Tip
Mole supports both arrow keys and Vim-style navigation (
hjkl) across its interactive screens.
4. Everyday Commands
4.1 clean — Free up disk space
mo clean removes regenerable junk: user and browser caches, developer tool caches (Xcode, Node, npm), system logs and temp files, the Trash, and leftover files from apps you have already uninstalled.
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
====================================================================
Options
| Option | Description |
|---|---|
--dry-run, -n |
Preview the cleanup without deleting anything |
--external PATH |
Clean macOS metadata (e.g. .DS_Store, ._*) from a mounted external volume at PATH |
--whitelist |
Open the protected-paths manager so specific caches are never cleaned |
--debug |
Show detailed per-operation logs |
-h, --help |
Show command help |
Examples
mo clean --dry-run # Preview everything that would be removed
mo clean --dry-run --debug # Preview with full operation detail
mo clean --whitelist # Manage caches that should be protected
mo clean --external /Volumes/MyDrive # Strip OS cruft from an external disk
Important
Use
mo cleanfor leftovers from apps that are already gone. To remove an app that is still installed plus its files, usemo uninstallinstead.
Note
System caches require administrator rights. If you want a complete preview that includes those, prime your sudo session first:
sudo -v && mo clean --dry-run.
4.2 uninstall — Remove apps completely
mo uninstall removes an application and the trail it leaves behind: launch agents, preferences, caches, logs, WebKit storage, cookies, containers, and more.
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
====================================================================
Space freed: 12.8GB
====================================================================
Run it with no arguments for the interactive selector, or name one or more apps to remove them directly.
Options
| Option | Description |
|---|---|
--list |
List installed apps with the exact names mo uninstall accepts |
--dry-run, -n |
Preview the uninstall without removing anything |
--permanent |
Skip the macOS Trash and delete immediately with rm -rf |
--debug |
Show detailed per-operation logs |
-h, --help |
Show command help |
Examples
mo uninstall # Open the interactive app selector
mo uninstall slack # Uninstall Slack
mo uninstall slack zoom # Uninstall Slack and Zoom together
mo uninstall --dry-run slack # Preview removing Slack
mo uninstall --list # See exactly what names are accepted
Caution
By default, removed files go to the macOS Trash so you can recover them.
--permanentbypasses the Trash and deletes immediately — there is no undo. Use it only when you are certain.
Note
--whitelistis not supported foruninstall(you explicitly chose to remove the app). Whitelisting applies tocleanandoptimize.
4.3 optimize — Refresh caches and services
mo optimize runs system maintenance: rebuilding databases, resetting network services, refreshing Finder and Dock, clearing diagnostic and crash logs, removing swap files, and rebuilding Launch Services and the Spotlight index.
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
====================================================================
Options
| Option | Description |
|---|---|
--dry-run |
Preview the optimizations without applying them |
--whitelist |
Exclude specific optimizations (path patterns supported) |
--debug |
Show detailed per-operation logs |
-h, --help |
Show command help |
Tip
mo optimize --whitelistaccepts path patterns, so a long-lived mounted disk image such as/Volumes/mailcan be kept from showing up as a detach candidate.
4.4 analyze — Explore disk usage
mo analyze opens an interactive disk-space explorer. It shows where your space is going as a ranked, bar-charted tree you can navigate, and lets you open or delete items in place. Deletions here go through Finder to the Trash, which makes it the safest way to do ad-hoc cleanup.
mo analyze # Explore from a system overview
mo analyze ~/Documents # Explore a specific folder
mo analyze /Volumes # Explore external drives only
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
↑↓←→ Navigate | O Open | F Show | ⌫ Delete | L Large files | Q Quit
| Key | Action |
|---|---|
↑ ↓ ← → |
Navigate the tree (enter/leave folders) |
O |
Open the selected item |
F |
Reveal the selected item in Finder |
⌫ (Delete) |
Move the selected item to the Trash |
L |
Toggle the large-files view |
Q |
Quit |
Options
| Option | Description |
|---|---|
--json |
Print the analysis as JSON instead of opening the UI |
-h, --help |
Show command help |
Note
By default Mole skips external drives under
/Volumesfor a faster start. Pass an explicit path (e.g.mo analyze /Volumes) to inspect them. You can also set the target through theMO_ANALYZE_PATHenvironment variable.
4.5 status — Monitor system health
mo status is a live dashboard: an overall health score plus real-time CPU, GPU, memory, disk I/O, network, power, and top-process metrics. It refreshes once per second.
mo status
Mole Status Health ● 92 MacBook Pro · M4 Pro · 32GB · macOS 14.5
⚙ CPU ▦ Memory
Total ████████████░░░░░░░ 45.2% Used ███████████░░░░░░░ 58.4%
▤ Disk ⚡ Power
⇅ Network ▶ Processes
| Key | Action |
|---|---|
k |
Toggle the cat mascot (preference is saved) |
q / esc / Ctrl-C |
Quit |
The health score blends CPU, memory, disk, temperature, and I/O load, with color-coded ranges.
High-CPU process alerts. When enabled, mo status shows a read-only banner for any process that stays above a CPU threshold for a sustained window. Tune or disable it:
| Option | Default | Description |
|---|---|---|
--json |
off | Output a one-shot metrics snapshot as JSON and exit |
--proc-cpu-threshold N |
100 |
Alert when a process stays above N% CPU |
--proc-cpu-window DURATION |
5m |
How long it must stay above the threshold (e.g. 30s, 2m) |
--proc-cpu-alerts=false |
enabled | Disable the high-CPU alert banner |
Tip
mo statusautomatically switches to JSON when its output is piped (not a terminal), somo status | jq '.health_score'just works without--json.
4.6 purge — Remove old project artifacts
mo purge finds and removes heavy, regenerable build directories across your projects — node_modules, target, .build, build, dist, venv, and similar — then lets you pick which to delete.
mo purge
Select Categories to Clean - 18.5GB (8 selected)
➤ ● my-react-app 3.2GB | node_modules
● rust-app 4.1GB | target
○ current-work 856MB | node_modules | Recent
● django-api 2.3GB | venv
Options
| Option | Description |
|---|---|
--paths |
Edit the list of directories to scan |
--dry-run, -n |
Preview the purge without deleting anything |
--include-empty |
Include empty artifact directories in the results |
--debug |
Show detailed per-operation logs |
-h, --help |
Show command help |
Custom scan paths. Run mo purge --paths (or edit ~/.config/mole/purge_paths directly), one directory per line:
~/Documents/MyProjects
~/Work/ClientA
~/Work/ClientB
When custom paths are set, Mole scans only those. Otherwise it uses defaults such as ~/Projects, ~/GitHub, and ~/dev.
Warning
mo purgepermanently deletes the selected artifacts. Review the selection carefully before confirming. Projects modified in the last 7 days are flagged and left unselected by default.
Tip
Install
fdfor much faster scanning:brew install fd.
4.7 installer — Find and remove installer files
mo installer locates large installer files (.dmg, .pkg, .iso, .xip, .zip) across Downloads, Desktop, Homebrew caches, iCloud, and Mail, labels each by source, and lets you remove them.
mo installer
Select Installers to Remove - 3.8GB (5 selected)
➤ ● Photoshop_2024.dmg 1.2GB | Downloads
● PyCharm_Pro.dmg 640.5MB | Homebrew
● Acrobat_Reader.dmg 220.4MB | Downloads
Options
| Option | Description |
|---|---|
--dry-run, -n |
Preview the cleanup without deleting anything |
--debug |
Show detailed per-operation logs |
-h, --help |
Show command help |
4.8 history — Review past activity
Every destructive operation Mole performs is logged. mo history shows the recent record so you can audit what was removed.
mo history # Most recent activity (20 entries by default)
mo history --limit 50 # Show the 50 most recent entries
mo history --json # Machine-readable output
Options
| Option | Description |
|---|---|
--json |
Output history as JSON |
--limit N |
Show the most recent N entries (1–200; default 20) |
-h, --help |
Show command help |
Note
Operation logging is on by default and writes to
~/Library/Logs/mole/operations.log. Disable it by settingMO_NO_OPLOG=1. Uninstall/Trash deletions are additionally recorded in~/Library/Logs/mole/deletions.log.
5. Setup & Maintenance Commands
5.1 touchid — Touch ID for sudo
mo touchid configures macOS so you can authorize sudo prompts (which several Mole commands need) with Touch ID instead of typing your password. It edits the PAM sudo configuration to add the pam_tid.so module (using /etc/pam.d/sudo_local on macOS Sonoma and later).
mo touchid # Interactive menu
mo touchid enable # Enable Touch ID for sudo
mo touchid disable # Disable it
mo touchid status # Show whether it is configured
Options
| Option | Description |
|---|---|
--dry-run |
Preview the change without modifying the sudo config |
-h, --help |
Show command help |
5.2 completion — Shell tab completion
mo completion sets up tab completion for mo/mole in your shell. It supports bash, zsh, and fish, completing both subcommands and their options.
mo completion # Set up completion for your shell
mo completion --dry-run # Preview the shell-config changes first
5.3 update — Update Mole
mo update upgrades Mole in place. It detects whether you installed via Homebrew or the script and uses the right mechanism automatically.
mo update # Update to the latest stable release
mo update --force # Force-reinstall the latest stable version
mo update --nightly # Install the latest unreleased main-branch build
Options
| Option | Description |
|---|---|
--force, -f |
Reinstall even if you are already on the latest version |
--nightly |
Switch to / update the nightly (main-branch) build |
Note
--nightlyis only available for script installations. Homebrew installs follow stable releases — reinstall via the script if you want nightly builds. When a nightly update is available, Mole shows a notice likeNew nightly commit abc1234 available, run mo update --nightly.
5.4 remove — Uninstall Mole itself
mo remove detects every Mole installation (Homebrew and manual) and removes the binaries along with ~/.config/mole, ~/.cache/mole, and ~/Library/Logs/mole.
mo remove # Remove Mole (asks for confirmation)
mo remove --dry-run # Show exactly what would be removed
Options
| Option | Description |
|---|---|
--dry-run, -n |
Preview the removal without deleting anything |
6. Previewing Safely with --dry-run
The destructive commands — clean, uninstall, purge, installer, and remove — all support --dry-run. In dry-run mode Mole performs the full scan and prints exactly what it would remove, but deletes nothing.
mo clean --dry-run
mo uninstall --dry-run
mo purge --dry-run
mo installer --dry-run
mo remove --dry-run
Add --debug to any of them for the full, per-path operation log:
mo clean --dry-run --debug
optimize, completion, and touchid enable also accept --dry-run.
Tip
Make
--dry-runyour default first move on any new machine. Once you trust the selection, re-run without it.
7. Scripting with JSON Output
Two commands emit structured JSON for automation:
mo analyze --json ~/Documents
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"
}
mo status also auto-detects a piped (non-terminal) output stream and switches to JSON on its own:
mo status | jq '.health_score'
92
mo history --json likewise gives you a machine-readable activity record.
8. Quick Launchers (Raycast & Alfred)
You can trigger Mole's main tools from Raycast or Alfred. Install the launcher script:
curl -fsSL https://raw.githubusercontent.com/tw93/Mole/main/scripts/setup-quick-launchers.sh | bash
This adds five commands: Mole Clean, Mole Uninstall, Mole Optimize, Mole Analyze, and Mole Status.
For Raycast, finish the one-time setup:
- Open Raycast Settings (
⌘ + ,) - Go to Extensions → Script Commands
- Click Add Script Directory
- Add the path
~/Library/Application Support/Raycast/script-commands - Run Reload Script Directories from Raycast
- Search for
Mole Clean(orclean,Mole Status, etc.) to launch
Note
Mole auto-detects your terminal app. iTerm2 has known compatibility issues; Kaku, Alacritty, kitty, WezTerm, Ghostty, and Warp work well. Override detection with
MO_LAUNCHER_APP=<name>.
9. How Mole Keeps You Safe
Mole performs destructive local operations, so it is built around safety-first defaults. As a user, the practical guarantees are:
- Protected directories are never touched. System Settings, Control Center, Finder, Dock, Keychains, Mail, Contacts, Calendars, iCloud Drive, and a long list of app data (password managers, dev tools, VPN configs, audio plug-in licenses) are protected from cleanup.
- Path validation. Mole refuses to delete the filesystem root, system directories (
/System,/usr,/bin,/etc, …), anything reached via..path traversal, or paths containing control characters. - Trash by default for uninstall. Removed app files go to the macOS Trash so you can restore them. Only
--permanentbypasses this. mo analyzeis the gentlest cleanup path — it moves items to the Trash through Finder rather than deleting directly.- Everything destructive is logged to
~/Library/Logs/mole/and reviewable withmo history. - Verified updates. Release binaries are checked against a published
SHA256SUMSfile, and (when theghCLI is available) against a Sigstore build-provenance attestation before installation.
Important
For the deepest cleans, macOS may require Full Disk Access for your terminal so Mole can see protected cache locations. If a clean reports many permission-denied skips, grant Full Disk Access to your terminal in System Settings → Privacy & Security.
10. Configuration & Environment Variables
Mole keeps its state in three predictable locations:
| Location | Contents |
|---|---|
~/.config/mole/ |
install_channel, purge_paths, status_prefs, whitelist, whitelist_optimize, plus the installed libraries and helper binaries |
~/.cache/mole/ |
Update-check cache (version_check, update_message) |
~/Library/Logs/mole/ |
mole.log, operations.log, deletions.log |
The user-facing environment variables:
| Variable | Effect |
|---|---|
NO_COLOR |
Any non-empty value disables ANSI colors (honors no-color.org) |
MO_NO_OPLOG=1 |
Disable operation logging |
MO_DEBUG=1 |
Enable verbose debug logging (same as --debug) |
MO_LAUNCHER_APP=<name> |
Override terminal auto-detection for quick launchers |
MO_ANALYZE_PATH=<path> |
Set the default target for mo analyze |
MOLE_REQUIRE_ATTESTATION=1 |
Fail an update unless its build-provenance attestation verifies |
MOLE_VERSION=<token> |
Used by the installer to select main, dev, or a version tag |
11. Troubleshooting
Each entry below uses the format Error → Cause → Solution → Prevention.
Scan stalls on "Project artifacts" or a particular folder
- Cause: A very large directory tree, or a path that no longer exists, can make a scan appear frozen (see community issues #1053, #1049).
- Solution: Press
qto quit and re-run. Forpurge, installfd(brew install fd) for far faster, more robust scanning. - Prevention: Narrow the scope — e.g.
mo analyze ~/Documentsinstead of a full-system scan, or configure specificmo purge --paths.
Error: protected path cannot be deleted
- Cause: You targeted a path on Mole's protection list (system component, Keychain, app data, etc.).
- Solution: This is intentional — Mole is refusing an unsafe delete. If you genuinely want to remove a still-installed app, use
mo uninstall <app>. - Prevention: Use
mo analyzefor ad-hoc removals of your own files; letclean/optimizehandle system caches.
Error: du timeout / unable to measure directory size with fast methods
- Cause: Measuring an extremely large or slow (e.g. network/external) directory exceeded the internal timeout.
- Solution: Re-run; transient I/O pressure usually clears. For external volumes, scope the command to that volume.
- Prevention: Avoid running heavy scans while another disk-intensive task is in progress.
Uninstall fails or an app cannot be fully removed
- Cause: Some vendors require their own uninstaller, or files are protected by SIP/MDM (community issues #1052, #1028).
- Solution: Run
mo uninstall --dry-run <app>to see what Mole plans to remove; follow the vendor's official uninstaller when prompted. Enable Touch ID / provide admin rights for protected files. - Prevention: Keep Full Disk Access granted to your terminal so Mole can reach all of an app's files.
"sudo password prompt" seems skipped
- Cause: A reported edge case where the sudo prompt did not pause for input (#1059).
- Solution: Prime your sudo session first with
sudo -v, then re-run the command. Configuring Touch ID (mo touchid enable) avoids password timing issues entirely. - Prevention: Run
sudo -v && mo cleanwhen you know admin-only caches are involved.
Bundled analyzer binary not found (or status binary not found)
- Cause: The compiled
analyze-go/status-gohelper is missing from~/.config/mole/bin. - Solution: Run
mo updateto restore the binaries, or reinstall Mole. - Prevention: Avoid manually deleting files under
~/.config/mole.
Authentication failed during a removal
- Cause: Incorrect credentials, or Touch ID is not set up.
- Solution: Mole suggests
mo touchidto enable fingerprint auth; otherwise re-enter your password or restart your terminal. - Prevention: Configure Touch ID once with
mo touchid enable.
mo is not found after install
- Cause: The install directory is not on your
PATH. - Solution: Add the line the installer printed (e.g.
export PATH="/usr/local/bin:$PATH") to~/.zshrcor~/.bash_profile, then open a new terminal. - Prevention: Install to a directory already on
PATH(the default/usr/local/binusually is).
Temperature / fan / battery details missing in mo status
- Cause: Some sensors are unavailable on certain Mac models or require
system_profilerdata that did not return (community issues #1058, #1066). - Solution: This is hardware-dependent; the rest of the dashboard continues to work.
- Prevention: None needed — Mole degrades gracefully when a sensor is unavailable.
12. Frequently Asked Questions
Q: What is the difference between mo and mole?
They are the same program. mo is a short alias that simply runs mole. Use whichever you prefer.
Q: Is Mole free? Yes — the CLI documented here is free and open source under the MIT license. A separate paid native Mac app (Mole for Mac) exists with a graphical experience, but it is not required.
Q: Does Mole work on Linux or Windows? No. Mole targets macOS. An experimental Windows build exists on a separate branch but is not the supported tool.
Q: When should I use clean vs uninstall?
Use uninstall when the app is still installed and you want it (and its files) gone. Use clean to sweep up leftovers from apps that are already removed, plus general caches and logs.
Q: Can I undo a cleanup?
mo uninstall sends files to the Trash by default, so those are recoverable until you empty it. mo clean, mo purge, and mo installer remove regenerable files directly. Always run --dry-run first if you are unsure.
Q: How do I see what Mole removed?
Run mo history (add --limit 200 for more, or --json for scripts). Logs live in ~/Library/Logs/mole/.
Q: How do I stop Mole from cleaning a specific cache?
Run mo clean --whitelist (or mo optimize --whitelist) to add it to the protected list, stored in ~/.config/mole/whitelist.
Q: Does mo clean need administrator access?
User-level caches do not. System caches do — run sudo -v first, or enable Touch ID, for a complete clean.
Q: How do I update Mole?
mo update for stable, mo update --nightly for the newest main-branch build (script installs only).
Q: How do I completely remove Mole?
mo remove deletes the binaries plus ~/.config/mole, ~/.cache/mole, and ~/Library/Logs/mole.
Q: Why are colors not showing?
You likely have NO_COLOR set, or your terminal does not support ANSI. Unset NO_COLOR to restore colors.
Q: Can I script Mole?
Yes — mo analyze --json, mo status --json (also auto-JSON when piped), and mo history --json give machine-readable output.
Q: My terminal misbehaves with Mole's UI. What should I use? iTerm2 has known issues. Kaku, Alacritty, kitty, WezTerm, Ghostty, and Warp are recommended.
13. Command & Flag Reference
| Command | Purpose | Key options |
|---|---|---|
mo |
Open the interactive menu | — |
mo clean |
Free up disk space | --dry-run/-n, --external PATH, --whitelist, --debug |
mo uninstall [APP…] |
Remove apps + leftovers | --list, --dry-run/-n, --permanent, --debug |
mo optimize |
Refresh caches & services | --dry-run, --whitelist, --debug |
mo analyze [PATH] |
Explore disk usage | --json |
mo status |
Live system dashboard | --json, --proc-cpu-threshold N, --proc-cpu-window DUR, --proc-cpu-alerts=false |
mo purge |
Remove project build artifacts | --paths, --dry-run/-n, --include-empty, --debug |
mo installer |
Find & remove installer files | --dry-run/-n, --debug |
mo history |
Review past activity | --json, --limit N |
mo touchid [enable|disable|status] |
Touch ID for sudo | --dry-run |
mo completion |
Shell tab completion | --dry-run |
mo update |
Update Mole | --force/-f, --nightly |
mo remove |
Uninstall Mole itself | --dry-run/-n |
mo --help |
Show all commands | — |
mo --version |
Show version & system info | — |
Global flag: --debug enables detailed logging on any command that performs operations.