Search iThub

Search tools, categories and collections. Type at least two characters.

Explore all tools
↑ ↓ to explore resultsEnter to open · Esc to close

Mole

Open-source CLI that cleans caches, removes app leftovers, maps disk usage and monitors your Mac

Visit website Save

Mole is a free GPL-3.0 command-line toolkit (mo) for cleaning caches, removing apps with their leftovers, purging build artifacts, exploring disk usage and watching live system status on macOS, with separate Windows and early Linux CLIs.

Pricing
Freemium
Deployment
Windows / macOS / Linux app
Platforms
Windows, macOS, Linux
74,138stars2,649forks
3views
Updated

What is Mole?

Mole is a free, open-source command-line toolkit for cleaning, uninstalling, maintaining, analyzing and monitoring a computer. Its command is mo. It is written by the independent developer Tw93 and published under GPL-3.0 in the tw93/Mole repository. The macOS version groups jobs that Mac users often split between a cache cleaner, an app uninstaller, a disk-space visualizer and a system monitor into one terminal program, with an interactive menu and subcommands such as mo clean, mo uninstall, mo optimize, mo analyze and mo status.

The repository holds three separate code lines. The main branch is the macOS CLI, which requires macOS 12 or newer on Intel or Apple Silicon and installs through Homebrew, an install script or a Nix flake. The windows branch targets Windows 10 and 11 with the built-in Windows PowerShell 5.1 and installs through Scoop or a PowerShell script. The linux branch is labelled an early version: it is built first for Omarchy and other Arch-based systems and covers Debian and Ubuntu through apt and Snap. The project states that it is distributed only through Homebrew, Scoop, the GitHub repository and mole.fit, and names several lookalike domains that are not affiliated.

The current macOS release is V1.69.0, published November 4, 2026. It lists APFS snapshots left by other backup tools such as Synology Active Backup and Carbon Copy Cloner in mo clean, shows hidden .app backups under their real names in mo uninstall, and aligns size units in mo analyze with Finder. V1.68.0, released a day earlier, made the sudo Touch ID prompt appear once, sent antivirus and remote-access apps to their own uninstallers and cut one measured mo clean --dry-run from 54.8 to 43.6 seconds. Windows and Linux are versioned separately; at the time of checking they were at V1.42.0-windows and V0.4.0-linux.

The macOS CLI is mostly shell scripts. The disk explorer and the status dashboard are Go programs, shipped as prebuilt darwin amd64 and arm64 binaries with each release together with a SHA256SUMS file. The repository carries a shell and Go test suite, ShellCheck and golangci-lint configuration, CodeQL and secret-scanning workflows, a security policy and a separate security audit document that records deletion boundaries. An agent skill and Claude Code and Codex plugin manifests are published from the same repository.

Mole for Mac and Mole for Windows, sold at mole.fit, are separate proprietary native apps by the same author, not builds of this repository. According to the official CLI and app comparison, the Mac app is a Swift reimplementation that shares the CLI's whitelist and operations log on disk but uses its own scanner. This profile covers the GPL CLI and mentions the paid apps where they change the choice. Mole provides no server component, fleet console or hosted API, and it is neither antivirus nor backup software.

Inside the application

Mole screenshots

Explore the interface. Open a screenshot to view it at full size.

Mole logo beside four terminal summaries from Mole dry-run and cleanup runs showing freed space and file counts
Mole screenshot 1

Official README figure combining one dry-run summary and three cleanup summaries from the macOS CLI; sizes depend on each Mac.

Mole CLI for Windows main menu in Windows PowerShell with Clean, Uninstall, Optimize, Analyze and Status
Windows CLI menu

Official screenshot of the Windows CLI interactive menu from the windows branch README.

Mole for Mac Clean tab showing 154.19 GB found in 136 items and a Review results button
Mac app Clean tab

Clean tab of the separate paid Mole for Mac app after a scan, from mole.fit; the CLI equivalent is mo clean.

Mole for Mac Apps tab listing Visual Studio Code with its application bundle, caches and storage paths ready to remove
Mac app uninstall review

Uninstall review in the paid Mac app, listing each path and size before removal; the CLI equivalent is mo uninstall.

Mole for Mac Analyze tab with a treemap of a home folder and a sidebar of the largest folders
Mac app disk treemap

Treemap disk view in the paid Mac app; the CLI offers a terminal disk explorer through mo analyze.

Mole for Mac Status tab with health score, CPU, GPU, memory, battery, disk, network and fan cards above a process list
Mac app status dashboard

Live status dashboard in the paid Mac app; mo status shows similar metrics in the terminal.

Source: official Mole project page.

Key capabilities

  • macOS install through Homebrew or script brew install mole installs the CLI only, not the paid app. The script install writes to /usr/local/bin and may ask for an administrator password; passing --prefix "$HOME/.local/bin" keeps later mo update runs password-free. A specific release tag, or main for unreleased code, can be pinned. The CLI requires macOS 12 or newer on Intel or Apple Silicon.
  • Nix flake Nix users on macOS can run nix profile install github:tw93/mole/main#mole or add the flake as an input. The flake follows main, so it contains unreleased changes. mo update and mo remove leave Nix-managed installations alone; upgrade and remove them through Nix.
  • Windows CLI The Windows branch installs with scoop install mole or a PowerShell quick-install script on Windows 10 and 11. The script install needs Git, and Go when the source differs from the latest release, places files in %LOCALAPPDATA%\Programs\mole-cli and adds mo and mole to PATH. It offers clean, uninstall, optimize, analyze, status and purge.
  • Linux CLI, early version A shell installer sets up Mole on x86_64 and aarch64 in ~/.local/share/mole and links mo into ~/.local/bin without sudo. Uninstall understands pacman, AUR, apt, Snap, Flatpak and AppImage apps, matched by exact ID. Mole refuses to run as root, and on distributions other than Arch, Debian and Ubuntu only the user-level parts appear.
  • Deep clean mo clean reviews caches, logs, temporary files, developer tool caches and leftovers from apps that are no longer installed, grouped by category with item counts and sizes. It empties ~/.Trash by default unless Trash is protected in mo clean --whitelist; volume Trashes are not emptied. Cleaned items are deleted permanently, not moved to Trash.
  • App uninstaller with leftovers mo uninstall removes an app together with LaunchAgents, preferences and other files Mole can tie to it, and keeps shared data still used by another installed copy. Personal data such as settings and plugins is kept unless selected with the D key or --with-data. Removals go to Trash by default, --permanent skips Trash, and references in shell, hook or MCP configuration are reported by file and line without being edited.
  • Bounded system maintenance mo optimize refreshes QuickLook thumbnails, the icon services cache and the DNS cache, optimizes supported databases and checks disk health. Tasks that are unnecessary, unsafe at that moment or unavailable are skipped with a stated reason, for example when Safari must be closed first. mo optimize --whitelist excludes tasks or path patterns.
  • Terminal disk explorer mo analyze is an interactive TUI with arrow and Vim keys, filtering, multi-selection, Finder preview and confirmed moves to Trash. External drives are skipped from the overview and can be opened with mo analyze /Volumes. The list keeps the 30 largest entries, sizes ending in + come from partial scans, and file-by-file scans count fully shared APFS clones once.
  • Live status dashboard mo status is read-only and shows CPU, memory, disk usage and I/O, network traffic, power and top processes. A health score combines CPU, memory, disk capacity, SMART status, I/O, thermals, battery state and uptime. Optional alerts flag processes that stay above a CPU threshold, tuned with --proc-cpu-threshold and --proc-cpu-window.
  • JSON and NDJSON output mo analyze --json, mo status --json, mo history --json and mo uninstall --list return machine-readable data, and mo status switches to JSON when piped. mo status --watch --interval 2s streams newline-delimited JSON. Analyze results carry a scan_status of complete, partial or unavailable, and partial scans still exit successfully, so scripts must check that field.
  • Project artifact purge mo purge finds rebuildable folders such as node_modules, target, .build, build and dist, grouped by project, and deletes only confirmed items permanently. Artifacts with activity in the last 7 days are unselected, and directories holding deployment keypairs, nested Git repositories or Git-tracked files are protected. Scan roots are set in ~/.config/mole/purge_paths and searched six levels deep.
  • Installer file sweep mo installer lists DMG, PKG, MPKG, ISO, XIP and installer ZIP files from Downloads, Desktop, Homebrew caches, iCloud, Mail, Telegram and other supported locations, with size and source. If a scan or metadata probe fails or times out, the list is discarded and nothing is selected. Selected files are checked again against their confirmed identity right before deletion.
  • Slimming universal apps mo slim removes Intel code from universal apps on Apple Silicon Macs, listing only Developer ID signed apps you own. Each app is slimmed on a copy that replaces the original only after code signing and Gatekeeper checks pass, and the original goes to Trash. App Store, Apple, Rosetta-configured, running and other users' apps are left alone, and an app update restores the Intel code.
  • Dry runs, whitelists and an operations log clean, uninstall, optimize, purge, installer and slim accept --dry-run, with --debug for detailed logs. Activity is written to ~/Library/Logs/mole/operations.log and read back with mo history; MO_NO_OPLOG=1 disables it. If the whitelist file cannot be read, clean, purge and optimize stop instead of running without it.
  • Administration commands mo touchid configures Touch ID for sudo, mo completion sets up shell tab completion, mo update updates the installation that was invoked and mo remove uninstalls Mole. mo update --nightly installs the latest unreleased build and is available for script installs only. Mole should be run without sudo; it requests administrator access when a step needs it.
  • Timeout tuning for slow disks Environment variables such as MOLE_TIMEOUT_HINT_SCAN_SEC (default 15 seconds), MOLE_TIMEOUT_PKG_LIST_SEC (10) and MOLE_CLOUD_OFFICE_SECTION_BUDGET_SEC (300) bound probes, package listings and cloud mount scans. Mole runs without configuration, and the documentation advises raising a timeout only when Mole reports that a step timed out.
  • Agent skill and host plugins npx skills add tw93/Mole -a claude-code codex cursor -g -y installs an agent skill that makes coding agents show every cleanup with --dry-run first and leave app uninstalls and administrator steps to the user. The same repository is a plugin marketplace for Claude Code and Codex. The agent still runs the local CLI; there is no hosted API or MCP server.
  • Raycast and Alfred launchers A setup script installs five launchers for Clean, Uninstall, Optimize, Analyze and Status as Raycast script commands and, when Alfred preferences exist, Alfred workflows. Raycast needs its script directory added manually. The launchers detect Terminal, iTerm2, Alacritty, kitty, WezTerm, Ghostty, Hyper, WindTerm and Warp, or use MO_LAUNCHER_APP.
Advertisements

Where Mole fits

Reclaiming space on a full Mac

Start with mo clean --dry-run and read each category: user app caches, browser caches, developer tool caches, leftovers from removed apps and Trash. Protect anything you want to keep, such as Trash or a build cache, through mo clean --whitelist, then run mo clean. Cleaned caches are deleted permanently, and regenerating a cache is not the same as restoring it, so check the free-space line in the summary and confirm that the apps you use still start normally.

Clearing build output from developer machines

Point mo purge --paths at the folders that hold your projects, run mo purge --dry-run and review the per-project list. Folders such as node_modules or target can be rebuilt, but dependency folders must be downloaded again, which matters on slow or metered connections. Artifacts touched in the last 7 days stay unselected. Unattended runs need mo purge --yes, so decide that policy explicitly before adding it to a script.

Removing an app and its leftovers

Run mo uninstall --dry-run or open the interactive picker, select the app and read the files that will be removed and the personal data that will be kept. Press D only for data you are sure you no longer need. Removals go to Trash, so empty it after checking that nothing else broke. If the app was already deleted by dragging it to Trash, use mo clean to find what it left behind, and review any shell or MCP configuration lines Mole reports.

Finding what fills a disk

Run mo analyze and drill into the largest folders, or pass a path such as /Volumes for external drives. Sizes ending in + or marked unknown come from partial scans, often because macOS does not let the terminal read a folder, and those folders stay partial until that access changes. For reports, mo analyze --json /path returns every scanned entry, and automation should read scan_status before trusting totals.

Health checks in scripts and over SSH

mo status --json returns one snapshot with a health score, CPU, memory, disks and process data, and mo status | jq '.health_score' works because piped output switches to JSON. --watch streams NDJSON for longer observation. The command exits 1 only when none of the CPU, memory, disk or process metrics could be collected, so a monitoring script should also look for missing fields and messages on stderr.

Letting a coding agent handle cleanup

Install the official skill or plugin, then ask the agent to free space. The skill instructs the agent to show the --dry-run list first and to leave app uninstalls and administrator prompts to you. Approve each real run yourself, and afterwards use mo history or mo history --json to check exactly which paths were removed in that session.

Install

brew install mole

Reviews of Mole

No reviews yet

Be the first to share your experience with Mole.

Loading review form…

Alternatives to Mole

Compare Mole with these tools →