Free up your Mac. Safely.
Clear out the cache and junk your Mac collects on its own.
Open source, trash-by-default.
Download · Install guide · Build from source · Security
Your Mac quietly fills up with cache and junk you never see and never asked for. Purge finds it, marks what is safe, and clears it in one click.
Note
Nothing is ever deleted permanently. Everything moves to the Trash, so anything can come back.
You do not need to understand any of it to use it. But if you ever want to check, every item carries a plain-English explanation and a safety label, so nothing gets touched that you cannot see and verify first.
Scans ~/Library/Caches, sandbox container caches, and common system junk:
- Per-app cache folders with friendly names, brand icons, and a plain-English explanation if you want to read it
- System Junk like application logs, crash reports, macOS installers, font cache
- Duplicate cache locations for the same app merged into a single row
- Results stream in as they are found
Three sections in one view:
- Global dev tool caches: Xcode (Derived Data, Archives, DeviceSupport), Homebrew, npm, pnpm, Yarn, CocoaPods, Gradle, Flutter, Docker Desktop, VS Code, Cursor, JetBrains, Cargo, Terraform, and more
- iOS Simulators: unused simulator runtimes grouped together (booted simulators are skipped)
- Developer projects:
node_modules, Python virtual environments, Rusttarget, Flutter build output, XcodePods, Android.gradle, and other artifacts grouped by project
In Settings → Developer Projects, choose Consider stale after (1 month to 2 years, or Show all) to control which project folders appear.
Find space-hogging personal files without digging through folders:
- Scans Documents, Desktop, Downloads, Movies, Music, and Pictures
- Skips managed libraries (Photos, iMovie, Music, and similar) and hidden folders
- Filter by size (5 MB to 1 GB) and last used (any time up to over 1 year ago)
- Category chips for videos, audio, images, PDFs, archives, documents, and other files
- Sort by size, date, or name; select files and review before deleting
- Quick Look preview and Reveal in Finder from each row
- Deletions move files to Trash, so nothing is permanently erased
Large Files is separate from cache cleanup: these are your personal files, not rebuildable caches.
Purge assigns a safety label to every item it recognizes:
| Label | Meaning |
|---|---|
| ✅ Safe to Clean | Known cache or rebuildable artifact, safe to remove |
| May be safe, but could cause inconvenience |
Filter with All, Safe to Clean, or Check First (⌘1–⌘3). Sort by size, date modified, or name.
Unidentified folders are left out of the list entirely. Purge only shows what it knows about.
The labels and explanations are there to be checked, not read cover to cover. Clean the safe items in one click and move on, or open the reasoning behind any single row first. Either way is fine.
- Clean Safe Items: one-click cleanup from the sidebar; only Safe to Clean items, with git and lockfile checks
- Clean Selected: pick specific rows, review in a confirmation sheet, then delete
- Clean Safe Files Now: same safe cleanup from the menu bar
- Scheduled cleaning: in Settings → Cleaning Schedule, enable Run automatic cleaning, choose How often (weekly, monthly, or every 3 months) and Untouched for (30 days to 12 months). Purge sends a local reminder and cleans safe items when you open the app, so the cleanup keeps happening without you thinking about it
- All deletions move items to Trash, not permanent removal
- Appearance: Light, Dark, or System
- Cleaning Schedule: automatic safe cleanup with frequency, staleness threshold, and next-clean date
- Developer Projects: stale-project threshold for developer artifact scanning
- First-run onboarding: welcome, permissions (Full Disk Access and optional login item), auto-clean preference, first scan, results review, and a safe clean walkthrough
- Menu bar companion: recoverable space at a glance, quick open, scan/clean actions, and all-time cleaned total
- Disk summary: sidebar shows used/free space and how much is safe to recover
- Scan All: rescans App Caches and Dev Tools together (⇧⌘R)
- Update check: the About screen checks GitHub releases and points you to the latest version
There are two ways to install Purge: with Homebrew if you live in the terminal, or by downloading the app directly. Both land in the same place.
Important
Purge is unsigned, so the first time you open it, macOS blocks it once. This is expected, not a problem with the app. Use the Open Anyway steps in Step 4 below. Installing through Homebrew does not change this.
brew install --cask jithin-sabu/tap/purgeThis taps the repo and installs Purge in one step, and Homebrew verifies the download's checksum for you automatically.
The steps below walk through the direct download.
Click the download link above and download the .dmg.
Tip
Since Purge deletes files, verifying the checksum confirms your download is byte-for-byte the one that was published, with nothing altered in transit.
Each release includes a matching .dmg.sha256 checksum file. Download both the .dmg and its .dmg.sha256 file into the same folder, then in Terminal:
cd ~/Downloads
shasum -a 256 -c Purgev*.dmg.sha256A result ending in OK means the file matches the published release.
Open the .dmg and drag Purge to your Applications folder.
Since Purge is not on the Mac App Store, macOS will block it the first time you try to open it.
Here is how to open it:
- Double-click Purge to open it. macOS will block it and show a warning; that is expected
- Open System Settings on your Mac
- Go to Privacy & Security
- Scroll down to the Security section
- You will see "Purge was blocked from use because it is not from an identified developer"
- Click Open Anyway
- Enter your Mac password if asked
- Click Open in the final confirmation
You only need to do this once. After that it opens normally.
Purge needs Full Disk Access to scan your cache folders.
- Click Open Privacy Settings inside the app
- Find Purge in the list
- Turn on the toggle next to Purge
- Come back to the app and click I've granted access
Purge isn't on the Mac App Store, so it doesn't update itself automatically. Instead, it checks for you and makes updating a quick manual swap.
If you installed through Homebrew, updating is one command:
brew upgrade --cask purgeThat pulls the latest release and swaps in the new version. Your settings, schedule, and history are untouched. The rest of this section covers updating a manual download.
Open the About screen inside Purge and use Check for Updates. It compares your version against the latest GitHub release. If a newer one exists, it points you to the release page so you can download it. This is a notifier only: it doesn't download or install the update for you.
You can also just visit the releases page anytime.
- Download the latest
.dmgfrom the release page - Open it and drag Purge into your Applications folder
- When asked, choose Replace to overwrite the old version
That's it. Your settings, cleaning schedule, and history are kept; they live separately from the app, so replacing the app doesn't touch them. You won't need to grant Full Disk Access again either; the permission stays with Purge.
One thing to expect: because the app is unsigned, the first time you open a freshly downloaded update macOS may block it again, the same as the very first install. If that happens, use the same Open Anyway step from Step 4 above. After that one click it opens normally.
Prefer to build Purge yourself instead of downloading the release? Here is how.
- macOS 13.0 or later
- Xcode 15 or later (from the Mac App Store)
- Node.js 18+ and npm, only needed if you want to regenerate brand icons
git clone https://github.com/jithin-sabu/purge-app.git
cd purge-appOpen the project in Xcode and run:
open purge.xcodeprojThen select the purge scheme and press ⌘R.
Or build straight from the command line:
# Build a Debug app
xcodebuild -project purge.xcodeproj -scheme purge -configuration Debug build
# Build a Release app
xcodebuild -project purge.xcodeproj -scheme purge -configuration Release buildThe built Purge.app is written under Xcode's DerivedData folder (the build output ends with its path).
The app cache icons are generated from simple-icons. To rebuild them:
npm install
npm run generate:iconsxcodebuild -project purge.xcodeproj -scheme purge -destination 'platform=macOS' test- macOS 13.0 or later
- Full Disk Access permission
- Xcode command-line tools (optional, for full iOS Simulator listing)
Purge runs entirely on your Mac. Scans, explanations, manual overrides, and cleanup history stay in local Application Support. Nothing is uploaded.
Purge never reads or sends file contents.
Purge deletes files, so safety is the point. A few things worth knowing:
- Trash by default: nothing is permanently deleted. Items move to the macOS Trash and can be restored until you empty it.
- Allowlist-based deletion: only paths that match an explicit safety allowlist are ever eligible for cleanup. Anything Purge does not recognize is never touched.
- You choose what goes: Purge shows what is reclaimable and you decide what to clear.
- Open source: the full deletion logic, including the allowlist, is in this repo for you to read or build from source yourself.
Found a safety gap or a path that could be deleted when it shouldn't be? Please report it. See SECURITY.md for how.
Purge is released under the MIT License. You are free to use, read, modify, and distribute it.
Purge is free. If it saved you some disk space, you can chip in toward the running costs from the About screen inside the app, or directly at Buy Me a Coffee.