Cloud sync hidden storage

iCloud Drive Optimize Storage Isn't Freeing Space on Mac: 7 Fixes for 2026

If iCloud optimize storage not working on Mac is the problem you're staring at, you're not alone. Apple's "Optimize Mac Storage" feature sounds like magic: local copies of old files evaporate to iCloud, and your drive breathes again. In practice, the setting is more of a polite suggestion than a hard rule — macOS only evicts files when it decides storage pressure is severe enough, and what counts as "severe" can be frustratingly opaque. This guide explains exactly why the feature stalls, how to nudge it into action, and which hidden folders are hoarding space that iCloud will never touch.

How Optimize Mac Storage Actually Works (And Why It Stalls)

When you enable iCloud Drive and turn on System Settings → Apple ID → iCloud → Optimize Mac Storage, macOS enrolls in a daemon-managed eviction system. The kernel extension bird (yes, that's its real name) monitors free space. Only when free space dips below a threshold — roughly 20 GB or 20% of the drive on Apple Silicon Macs, though Apple does not publish the exact formula — does it start replacing full local copies with lightweight placeholders.

The result: if your 512 GB SSD still shows 60 GB free, macOS considers that healthy and leaves your local iCloud copies untouched. The setting is on, but nothing is being evicted. That is working as intended, which is cold comfort when you expected GBs to vanish immediately.

What iCloud Optimize Storage Won't Touch

Even when eviction is running at full speed, large swaths of your disk are off-limits. Understanding this is critical before you spend an hour waiting for space that will never appear.

Category Typical Path iCloud evicts? Typical Size
iCloud Drive documents ~/Library/Mobile Documents/com~apple~CloudDocs/ Yes (when pressured) Varies
iCloud Photos originals ~/Pictures/Photos Library.photoslibrary/ Yes (with Optimize Photos on) 10 GB – 500 GB+
Xcode DerivedData ~/Library/Developer/Xcode/DerivedData/ No 5 GB – 50 GB
npm / node_modules ~/<project>/node_modules/ No 1 GB – 20 GB per project
Homebrew cache ~/Library/Caches/Homebrew/ No 1 GB – 8 GB
Rust build artifacts ~/.cargo/registry/ No 2 GB – 30 GB
Maven repository ~/.m2/repository/ No 1 GB – 15 GB
System caches ~/Library/Caches/ No 500 MB – 10 GB
App containers / data ~/Library/Containers/ No Varies widely

Developer artifacts and caches will never be evicted by iCloud, no matter how long you wait. That's why users with 30 GB of free space can still feel squeezed — the file categories consuming the most room simply aren't eligible. For a complete picture of what's eating your disk, see our guide on what is taking up space on your Mac.

Fix 1: Confirm the Feature Is Actually Enabled

This sounds obvious, but the toggle path changed in macOS Ventura and has shifted again slightly in Sequoia and Tahoe. The current path:

  1. Open System Settings.
  2. Click your name at the top (Apple ID).
  3. Select iCloud.
  4. Click Drive and confirm Optimize Mac Storage is toggled on.
  5. Also check Photos inside that same iCloud screen and enable Optimize Mac Storage separately — Photos has its own switch.

Both switches must be on independently. Enabling iCloud Drive alone does not enable photo optimization.

Fix 2: Give macOS a Reason to Evict — Fill the Drive

The single most reliable trigger is genuine storage pressure. If you have 80 GB free on a 512 GB drive, macOS won't bother. You can force its hand by temporarily moving large files onto the drive from an external source, or by using a RAM disk trick, but the simplest approach is to stop waiting and manually evict the files yourself (see Fix 3).

Fix 3: Manually Evict Files You Know Are in iCloud

Right-clicking any file or folder inside ~/Library/Mobile Documents/com~apple~CloudDocs/ (or its Finder alias, iCloud Drive) surfaces an option: Remove Download. Selecting this replaces the local copy with a placeholder immediately — no waiting for storage pressure. For large directories, you can do this from Terminal:

brctl evict ~/Library/Mobile\ Documents/com\~apple\~CloudDocs/Documents/

The brctl tool is the command-line interface to the bird daemon. Run it on individual subfolders rather than the entire iCloud root to avoid unintentionally evicting files you need offline.

Fix 4: Restart the bird Daemon

The bird process can get stuck, particularly after a macOS upgrade or an interrupted sync. Restarting it often unblocks eviction:

  1. Open Terminal.
  2. Run: killall bird
  3. macOS relaunches the daemon automatically within a few seconds.
  4. Wait 2–5 minutes and check System Settings → General → Storage to see if numbers changed.

If the storage graph doesn't update, also try signing out of iCloud and back in — a more disruptive reset, but effective when bird is in a corrupted state.

Fix 5: Clear the iCloud Cache and Temporary Files

iCloud maintains its own local caches that accumulate over time and are not cleaned up by Optimize Storage:

  • ~/Library/Caches/CloudKit/ — CloudKit container caches per app
  • ~/Library/Application Support/CloudDocs/ — metadata and sync state

Deleting ~/Library/Caches/CloudKit/ is generally safe; macOS rebuilds it on next launch. Do not delete CloudDocs while signed into iCloud — it holds sync state and corruption there can cause re-download of your entire iCloud Drive. For more on which caches are safe to remove, our guide to cache files on a Mac walks through each category.

Fix 6: Audit the Space iCloud Never Touches

If you've done everything above and still can't reclaim space, the culprit is almost certainly outside iCloud's scope. The biggest offenders on developer machines:

Xcode DerivedData

Path: ~/Library/Developer/Xcode/DerivedData/. This folder can silently accumulate 20–50 GB of build products from projects you abandoned months ago. Delete it entirely — Xcode rebuilds what it needs on the next build.

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

Homebrew Downloads Cache

Path: ~/Library/Caches/Homebrew/. Run brew cleanup --prune=all to remove every cached formula download. Safe to clear at any time.

Rust and Cargo

Path: ~/.cargo/registry/ and ~/.cargo/git/. Run cargo cache --autoclean (install with cargo install cargo-cache) or manually remove ~/.cargo/registry/src/ — these are rebuilt from compressed archives on demand.

node_modules Directories

Run find ~ -name node_modules -type d -maxdepth 6 to locate all copies. Unused project dependencies can total 10–30 GB across a developer's home folder.

A tool like Crumb can audit all of these locations at once and show you what's safe to remove before you delete anything — useful when you're not sure which project folders are still active.

Fix 7: Check for Stuck iCloud Downloads

Sometimes Optimize Storage appears broken because iCloud is actively downloading files in the background, consuming more space than it's freeing. Symptoms include the storage bar growing while "iCloud" is listed as the largest category.

  1. Open Finder and navigate to iCloud Drive.
  2. Look for the circular progress icon next to folders — that indicates an active download.
  3. Right-click any actively downloading folder and choose Remove Download to cancel and evict it.
  4. You can also run brctl status in Terminal to see the full sync queue and whether any uploads or downloads are stalled.

A stalled upload — usually a file that's too large, has special characters in its name, or lives in an unsupported path — can block the entire iCloud sync queue and prevent eviction from proceeding.

Summary: Why Your Mac Still Shows Low Free Space

Optimize Mac Storage is a passive, threshold-driven system. It won't act until macOS decides it must, and it ignores the developer caches, build artifacts, and application data that often account for the largest chunks of a disk. The fastest path to reclaiming space is a two-pronged approach: manually evict iCloud files you know are safely backed up using brctl evict, and simultaneously audit the folders iCloud never touches — ~/Library/Developer/Xcode/DerivedData/, ~/.cargo/, ~/.m2/repository/, and project-level node_modules folders. Between these two actions, most users recover tens of gigabytes within minutes rather than days.

Reclaim your disk in one click

Crumb audits your whole Mac, tells you what's safe to delete, and frees the space in seconds — private, local, and Apple-notarized.

Download Crumb for macOS

Frequently asked questions

Is it safe to turn on Optimize Mac Storage?
Yes. Files are moved to iCloud, not deleted. macOS keeps a lightweight placeholder on disk so you can see and open them — they re-download on demand within seconds over a good connection. Your data is not at risk as long as your iCloud account is in good standing.
Where does iCloud actually store the evicted files?
Files remain in your iCloud Drive cloud storage (accessible at icloud.com) and are represented locally as placeholder files inside ~/Library/Mobile Documents/com~apple~CloudDocs/. They re-download automatically when you open them.
Will turning off iCloud Drive delete my files?
No — macOS will ask whether to keep a local copy or remove local copies (leaving them in iCloud only). Choose to keep a local copy if you're unsure. Your iCloud copies are unaffected either way.
How much space can Optimize Storage actually free?
It varies entirely by how many large files you've stored in iCloud Drive and whether you've also enabled Optimize Photos Storage. Users with large photo libraries can recover 50–200 GB; users who store few files in iCloud Drive may see little to no change.
Why does macOS still show iCloud as taking up a lot of space after enabling the feature?
macOS reports iCloud storage as the size of all files that are synced, including those that have local copies. The 'purgeable' bar in System Settings > General > Storage shows how much of that space macOS considers eligible to evict — this number grows as storage pressure increases.