Open source contribution · Shell · Go · macOS · CLI

tw93/Mole

Open-source Mac tool that cleans caches, uninstalls apps along with their leftovers, runs maintenance, analyzes the disk and monitors the system from the terminal.

  • 6 PRs under review
  • 69.9k GitHub stars
  • Oct 11, 2026 first PR

See every PR Repository on GitHub

The project

Mole is a free, open-source command-line tool that covers what usually takes Mac apps such as CleanMyMac, AppCleaner, DaisyDisk and iStat Menus: cleanup of caches and leftovers, app removal with related files, system maintenance, disk analysis and live monitoring. It runs on Intel and Apple Silicon Macs from macOS 12 onward.

Because it can delete files, Mole validates paths, protects system and shared locations, asks for confirmation when an action needs it and skips anything it cannot prove safe to change. Cleanups can be previewed first, activity is logged for later review, and installation goes through Homebrew or an official script.

How each PR was made

  • One problem per PR

    Each PR fixes a single thing with the smallest possible change. That keeps reviews simple, lowers the risk of side effects and lets one change be reverted without taking others with it.

  • The problem becomes a test

    Fixes come with automated tests that cover the case that used to fail, so the problem cannot come back unnoticed.

  • The project's own bar

    Formatting, static analysis and the full test suite run in the project's continuous integration, and a change only lands after the maintainer's review.

  • Written for the reviewer

    Each PR description explains the problem, the change and how it was tested, so the maintainer can decide with confidence.

Every PR, in business terms

These PRs are under review by the maintainers and have not been merged yet. Click one to see the problem, the proposal and the expected value.

  1. #1727opened Oct 11, 2026Under review Recent items cleanup that works on current macOS Mole's recent items cleanup only recognizes the older formats of those lists and leaves them in place on current macOS; the proposed fix adds the newer formats.
    The problem
    Mole's cleanup includes deleting the lists of recently used apps, documents, servers and network computers that macOS keeps. It only recognizes the older formats of these files, and from macOS 13 (Ventura) onward the system writes these lists in newer formats, which the cleanup leaves untouched.
    What the PR proposes
    The PR adds the exact names of these lists in both newer formats while keeping the old ones. The cleanup remains limited to these known files and goes through the same safety checks as before, and the routine's test is extended to check each format by name.
    Expected value
    With the change, anyone using the cleanup to clear their recent items history gets that result on current macOS releases too, not only on older ones.
  2. #1726opened Oct 11, 2026Under review Xcode uninstall without visionOS leftovers Uninstalling Xcode with Mole leaves the visionOS debugging data behind because Apple renamed the folder; the PR adds the official name to the cleanup list.
    The problem
    When uninstalling Xcode, Mole also removes the debugging data Xcode keeps for each Apple platform, which can be generated again when needed. The list covers iOS, macOS, watchOS, tvOS and the provisional name from the visionOS beta period, but not the official name used since Xcode 15.2, so that folder stays behind on disk.
    What the PR proposes
    The PR adds the folder with the official visionOS name to the same list, under the same rules: only rebuildable data is included, while user data and preferences, app packages built for distribution, installed build tools and simulators are all preserved. The uninstall safety test is extended to this folder as well.
    Expected value
    With the change, developers building for Apple Vision Pro who remove Xcode with Mole get the same treatment as the other Apple platforms, without the removal reaching beyond rebuildable data.
  3. #1725opened Oct 11, 2026Under review Status dashboard that does not freeze waiting on the battery The status dashboard's battery query has no time limit and can freeze updates if the macOS service hangs; the proposed fix caps it at one second, like every other reading.
    The problem
    Mole's status dashboard shows CPU, memory, disk, network, power and processes in real time. Every reading has a deadline to respond except the battery query sent to macOS. Since a full refresh waits for all readings to finish, a hang in that system service can stop the dashboard's numbers from updating, with no limit on how long.
    What the PR proposes
    The proposed fix gives the battery query a one-second limit, in line with the other readings. If the service does not answer in time, the battery is left out of that refresh and the rest of the dashboard carries on. A new test confirms the query goes out with that deadline set.
    Expected value
    With the change, a slow or stuck macOS service no longer freezes monitoring: at worst, the battery information is missing while the service is unresponsive.
  4. #1724opened Oct 11, 2026Under review Broken startup items flagged instead of passing as healthy The audit of programs macOS starts in the background reads the wrong field in some setups and misses items pointing to a deleted program; the proposed fix follows the rule macOS itself uses.
    The problem
    During maintenance, Mole warns when a program set to run in the background at login points to a file that no longer exists. When the setting holds the program's full path and, in another field, just the command name, the audit reads the name, decides there is no path to check and stays silent about an item whose program has been deleted.
    What the PR proposes
    The proposed fix reads the full-path field first, which is what macOS uses to start the program, and only falls back to the other one when it is missing, the same order Mole's uninstaller already uses. Broken items are still only reported, never removed automatically, and a new test reproduces this kind of setup.
    Expected value
    With the change, the maintenance report stops treating an item that points to a deleted program as healthy, and the user learns what needs a look. The item stays in place until they decide what to do.
  5. #1723opened Oct 11, 2026Under review Mac installs that skip the Windows release When the newest published release is the Windows one, the Mac installer may adopt it and fail to download; the proposed fix only accepts Mac releases from that lookup.
    The problem
    Mole publishes its Mac and Windows releases in the same GitHub repository. The install script asks GitHub for the latest release and, if the answer is a Windows release, takes it without checking and skips the fallback lookup that already filtered those out, which leads to download errors for the Mac files.
    What the PR proposes
    The proposed fix has the installer check the release name GitHub returns and accept only the pattern used by Mac releases. If the answer is empty or a Windows release, the installer moves on to the fallback lookup, which already did this filtering. Two new tests cover rejecting the Windows release and accepting the Mac one.
    Expected value
    With the change, anyone installing Mole on a Mac through the script no longer depends on the order in which Mac and Windows releases are published, and both ways of finding the latest release follow the same rule.
  6. #1722opened Oct 11, 2026Under review Finder list repair extended to macOS 15 and later Mole's maintenance skips the format macOS has used since Sequoia for Finder favorites and recent items lists; the proposed fix adds that format to the search for corrupted files.
    The problem
    Mole's maintenance command looks for corrupted files among the lists macOS uses for Finder favorites and recent documents, but it only recognizes the older formats. Starting with macOS 15 (Sequoia), the system writes these lists in a newer format that falls outside the check, and the result can report everything as healthy without having looked at them.
    What the PR proposes
    The proposed fix adds the newer format to the search under the same rules as before: a list is only removed when it fails the integrity check run by macOS's own tool, and the apps' recent documents list stays out of the repair. A new test simulates a corrupted list in the new format and confirms it gets repaired.
    Expected value
    With the change, anyone on macOS 15 or later gets these lists actually checked, and the maintenance result reflects what was really inspected.

Figures updated on Oct 11, 2026.

The same care in your system

The habits behind these PRs carry over to backends that move money: reproduce the problem before fixing it, prove the fix with a test and keep sensitive data from leaking.

Talk to Vinícius Home