← Blog
mac tipsdisk spacefree tools

How to Free Up Disk Space on Mac in 2025 (Without Paying for CleanMyMac)

Running low on disk space on your Mac? You're not alone. macOS quietly accumulates gigabytes of caches, build artefacts, and leftover data that you'll never use again. This guide walks you through the most effective places to look — and shows you how to automate it with a free tool.

Why Macs Fill Up So Fast

macOS is a developer-friendly OS, which is great — but it means Xcode, Docker, npm, and Python each have their own way of hoarding space. A fresh macOS install uses around 15 GB. After a year of active development, you can easily have 80–100 GB of junk hiding in invisible folders.

The biggest culprits, ranked by typical size:

| Category | Typical size | |---|---| | Xcode DerivedData | 10–40 GB | | Docker images & volumes | 5–30 GB | | node_modules | 2–20 GB per project | | System & app caches | 3–10 GB | | iOS device backups | 2–8 GB | | Old Python virtualenvs | 1–5 GB |

1. Clear Xcode DerivedData

DerivedData is the biggest single win on developer Macs. Xcode rebuilds it automatically when needed — deleting it is completely safe.

rm -rf ~/Library/Developer/Xcode/DerivedData

Or in Xcode: Product → Clean Build Folder (⇧⌘K), then Window → Projects → click the arrow next to DerivedData.

2. Delete Xcode Archives You No Longer Need

Old .xcarchive files pile up every time you archive an app:

open ~/Library/Developer/Xcode/Archives

Delete anything older than your current release.

3. Purge Docker Images and Volumes

docker system prune -a --volumes

⚠️ This removes all stopped containers, unused images, and volumes. Make sure nothing important is sitting in an unnamed volume first.

For a preview of what will be removed:

docker system df

4. Remove node_modules from Old Projects

The fastest way to find large node_modules directories:

find ~ -name "node_modules" -type d -prune -print | xargs du -sh 2>/dev/null | sort -rh | head -20

Safe to delete from any project you're not actively running:

rm -rf /path/to/old-project/node_modules

5. Clear System and App Caches

# User caches (safe to delete everything here)
rm -rf ~/Library/Caches/*

# App-specific cache folders worth checking
du -sh ~/Library/Caches/* | sort -rh | head -10

macOS repopulates these caches on demand — you won't lose any data.

6. Remove Old iOS Device Backups

Each iPhone or iPad backup can be 5–8 GB. Manage them in:

System Settings → General → iPhone Storage (or in Finder under Locations → your iPhone → Manage Backups).

Or from Terminal:

open ~/Library/Application\ Support/MobileSync/Backup/

7. Clean Up Python Virtual Environments

If you use venv or conda:

# Find all virtual environments
find ~ -name "pyvenv.cfg" -type f | head -20

# Delete one you no longer need
rm -rf ~/projects/old-project/.venv

Automate It With MacCleaner (Free)

Doing this manually every month is tedious. MacCleaner is a free, open-source menu-bar app that scans all 14 of these categories automatically and alerts you when disk usage crosses a threshold you set.

  • No subscription — completely free, MIT licence
  • No account — install and run, nothing else
  • Safe deletion — moves to Trash, not permanent delete
pip install maccleaner
maccleaner-gui

The icon lives quietly in your menu bar and nudges you when it's time to clean.

Summary

The five highest-impact actions:

  1. Xcode DerivedDatarm -rf ~/Library/Developer/Xcode/DerivedData
  2. Docker prunedocker system prune -a --volumes
  3. node_modules — find and delete from old projects
  4. User cachesrm -rf ~/Library/Caches/*
  5. iOS backups — manage in System Settings

Combined, these five steps routinely recover 30–60 GB on a developer Mac. Do it quarterly, or let MacCleaner track it for you.

Found this useful? MacCleaner is free and open-source.

Star on GitHub →