McClean is a simple macOS cache cleaner with a clear scan-first workflow. It shows what it found, lets you choose what to clean, and asks for confirmation before anything is deleted.
It was built for developers working on Macs with smaller hard drives, where Xcode, package managers, simulators, logs, and app caches can quietly fill the disk at the worst possible moment. Instead of manually hunting through cache folders one by one, McClean puts the common cleanup targets in one small, transparent app.
- Application caches
- App and diagnostic logs
- Trash
- Saved application state
- QuickLook thumbnail cache
- Old iOS/iPadOS update downloads
- Optional developer caches, including Xcode, npm, Gradle, simulator, and CLI tool caches
McClean only empties the contents of known cache/log/trash folders. It does not
use sudo, does not touch system folders, and does not delete personal files
from Documents, Photos, iCloud Drive, or similar locations.
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python McClean.pyThis creates a standalone McClean.app bundle that includes Python and the
required Python packages.
chmod +x build-macos-app.sh
./build-macos-app.sh
open dist/McClean.appThe build uses assets/McClean.icns for the app icon and bundles the PNG assets
used inside the window.
After building, zip the app bundle before sending it:
ditto -c -k --sequesterRsrc --keepParent dist/McClean.app dist/McClean.zipUnsigned apps may show a macOS warning the first time they are opened. For private testing, users can usually Control-click the app and choose Open. For a public release, sign and notarize the app with an Apple Developer account.
GitHub Actions builds and publishes a release when you push a version tag:
git tag v0.1.0
git push origin v0.1.0The release workflow builds McClean.app, stamps the app version from the tag,
creates McClean-0.1.0-macos.zip, and attaches it to the GitHub Release.
You can also run the workflow manually from the GitHub Actions tab and enter a
tag such as v0.1.0.
- Build on the same CPU family you want to support, or use a universal Python environment if you want one app for both Apple Silicon and Intel Macs.
- Files currently in use by running apps may be skipped. Quit the relevant app and rescan if you want to clear those too.
