DDCC

Your Mac is holding gigabytes of things it can rebuild or fetch again.

Xcode's derived data. Every node_modules in every project you touched this year. Docker layers, Go build output, Rust targets, Homebrew's downloads, pip wheels, and the Node versions you installed once and rarely used again. DDCC finds them, names the tool that made each one, and tells you whether getting it back means seconds, a slow rebuild, or another download.

Download for macOS Free · Apple silicon & Intel · macOS 15+
48.72+GB
  • 3,945 items · 23.4s
  • 10 folders could not be read
  • 2 sizes partial
FIG. 01 One developer machine, sorted largest first
DDCC listing developer caches largest first, each row naming the tool that created it, with a status line reading 48.72 GB plus.
Costly items stay lockedAnything expensive to get back is opt-in, per scan, with the cost stated before you unlock it.
Every row says what made itNode.js, App Deep Clean, Build Output. The category is specific.
The total is a floorTen folders in this scan could not be read, which is what the plus is for.

Old toolchain versions can add up quietly.

Version managers keep old installs around. Nine Node versions were installed on this machine over four years; one of them is running. The other eight are 2.77 GB of interpreter, plus every global package each of them collected. DDCC offers the inactive versions and keeps anything still referenced.

VersionStatusSize
v24.13.0Retained: 20 live processes
v22.22.2Retained: named by an alias chain
v22.12.0Offered1.5 GB
v20.13.1Offered188 MB
v18.16.0 … v21.6.0Offered1.08 GB

The newest version is kept

default usually means "latest installed" rather than a version number, and the current version is the safest baseline.

Alias chains are followed

default → lts/* → lts/krypton → v22.22.2 is a real chain. Whatever it lands on is kept, and a self-referencing alias cannot loop.

Anything running is kept

The same rule the uninstaller applies to a live app. It is what saved the current version twice over on the machine above.

Versions sort numerically

Text sorting puts v20.9.0 above v20.13.1. Numeric sorting keeps the active version from being mistaken for an older one.

Costly categories start locked.

A build cache costs you one slow rebuild. A Simulator runtime costs a six-gigabyte download. DDCC groups results by recovery cost, so expensive categories stay locked until you review the sheet and unlock them for the current scan.

FIG. 02 Unlocking Tier 2 with the cost shown per category
A sheet headed Enable 6 costly categories, listing App Caches, App Deep Clean, Go, Homebrew, IDE and Editor and Package Caches with item counts and sizes.
Priced per categoryThe sheet lists what you are unlocking, item by item, with sizes.
This scan onlyUnlocking applies to the current scan. The next scan starts locked again.

Twenty-two categories, and it says which is which.

Every result carries the tool that produced it and a tier saying how cautious to be. That pairing matters because size alone does not tell you how expensive recovery will be.

TIER 1 / SAFE

Rebuilt on demand

Build output, derived data, compiler caches. Gone in seconds, back the next time you build.

Selected by default · nothing to unlock
TIER 2 / COSTLY

Comes back, slowly

Package caches, Homebrew downloads, Docker layers. Free to lose, expensive in time and bandwidth.

Opt in per scan · priced first
TIER 3 / DESTRUCTIVE

Does not come back

Anything holding state you cannot regenerate. Locked, opted in one item at a time, and the only tier that makes you type the word before anything moves.

Never automatic · never bundled
Download for macOS Free · Apple silicon & Intel · macOS 15+ How the tiers are decided →