DiskPrune · Guides
How to clear Xcode DerivedData without a terminal ritual
DerivedData is rebuildable build product. DiskPrune names it, classes it, and will move it to Trash only after a dry run.
Where it lives
Xcode writes intermediate build products, indexes, and module caches under ~/Library/Developer/Xcode/DerivedData (and a related ModuleCache). On a machine that builds often, this tree is routinely several gigabytes. It is not your source. Xcode recreates it the next time you build.
What “delete” should mean
The internet still tells people to rm -rf that folder. That works until it does not — wrong path, a symlink, a folder that is not DerivedData. DiskPrune’s Xcode probe names DerivedData as a known location, classes it as a cleanup candidate, and will only move it to Trash after you select it, confirm a dry run, and pass the pre-trash checks.
Files stay in Trash until you empty it. If a build needed that cache, restore from Trash and rebuild.
What DiskPrune will not do here
It will not skip the dry run. It will not permanently delete. It will not treat an .app bundle inside Developer tools as a candidate. Scan is free; moving DerivedData to Trash requires the lifetime license.
Scan is free. Cleanup is $12 lifetime with code FOUNDING — $19 after the first 100.
DiskPrune moves only what you approve to Trash. It does not empty Trash, delete snapshots, or delete Docker.raw.