DDCC
Disk cleanup for macOS

Every cleaner shows you a number.
This one shows you everything.

DDCC shows the paths it found, what created them, and what deleting each one costs. It also shows unreadable folders, partial sizes, and paths DDCC's safety guard left in place. The number is the start of the review, not the whole answer.

Download for macOS Free · Apple silicon & Intel · macOS 15+
  • every feature, no tier, no trial
  • no account, no telemetry, no network
  • the source is available to read
FIG. 01 Caches — one machine, after a full scan
DDCC listing developer caches, each row naming the tool that created it, with a status line reading 48.72 GB plus, 10 folders could not be read.
Tier 2 stays lockedCostly items are opt-in, per scan, with the cost stated first.
The total is a floorTen folders in this scan could not be read. The count differs per machine.
Every row is attributedThe tool that made it, and what deleting it costs you.

The total comes with the accounting.

Different cleaners can report different numbers for the same disk. Much of the gap comes from purgeable space, which macOS already counts as available and reclaims on its own. DDCC reports the space it can remove directly and labels the gaps it could not measure.

Purgeable space is excluded

macOS already counts it as available and reclaims it on its own. Adding it to the total would bill you for space you never lost.

Every path names its source

A Homebrew zap stanza, a package receipt, a container identifier. Attribution is by declaration, never by matching a name and hoping.

What it could not read is stated

Unreadable folders and sizes it could only measure in part are reported beside the total. That is what the plus on the figure means.

Refusals appear with their reason

Paths inside an allowed folder that DDCC's safety guard rejected are listed, instead of quietly vanishing from the total.

Deleting a build cache costs one slow rebuild. Deleting a Simulator runtime costs a six-gigabyte download. DDCC keeps those costs visible before you select anything.

Three focused views, with clear limits.

01 / CACHES

Developer & System Caches

Xcode, node_modules, Docker, Go, Rust, Python, Homebrew, and inactive toolchain versions. And what macOS and your apps leave behind: system and app caches, browser data, iOS backups, and logs.

11.65 GB Node.js · 84 items
02 / UNINSTALL

App footprints

Every installed app, and every app already gone, with the evidence that attributed each path to it. Shared data is retained until the last claimant leaves.

46.15 GB reclaimable · 2.24 GB retained
03 / FILES

Large & forgotten

Big, long-unmodified files and bundles outside the cache rules. You review each one, and this view can only move things to the Trash.

6.75 GB 27 items · 14.4s

The interesting part is the retained column.

Removing an app is only part of the job. Shared containers can belong to several apps at once, so DDCC separates bytes it can remove now from bytes claimed by another installed app.

FIG. 02 Uninstall: Affinity Photo 2, including retained shared data
The uninstall pane for Affinity Photo 2, showing 2.96 GB reclaimable, 1.84 GB retained by two sibling apps, and a section headed Outside DevDriveCacheClean's Reach.
Every path, sourcedThe application itself, a Homebrew cask, the Preferences shelf. Each line names its source.
Retained, and by whom1.84 GB kept because Designer and Publisher still claim it.
Outside its reachPaths this app owns that DDCC is not allowed to remove are still listed.
EvidenceWhat it provesConfidence
Sandbox containerThe app's own directory, by bundle identifierDeclared
Homebrew zap stanzaPaths the cask author says belong to itDeclared
Package receiptFiles the installer recorded writingDeclared
Application groupA container shared between named appsDeclared
Broken pointerA manifest naming a program that no longer existsProvable
Similar nameNothing. DDCC does not use this.Not used

Old is a guess, and it says so.

Big files and bundles that no cache rule covers, each with its path and how long since it changed. Age is the only signal available here and it is a weak one, so DDCC hands you the list rather than a recommendation.

FIG. 03 Files — large, long-unmodified, and outside every cache rule
The Files view listing large files with their paths and ages, three selected, and a Move Selected to Trash control.
Nothing starts selectedA file can be old and still matter, so every row waits for you.
Trash only, by designThese were chosen by size and age, not by a cleanup rule, so permanent deletion is not offered.

Removal starts with the cost.

Confirmation sheets explain what each removal costs before anything moves. Only Tier 3 asks for more: selecting one of those items requires typing DELETE before the button will work.

FIG. 04 Confirmation grouped by blast radius, with the Trash as the default
A confirmation sheet reading Delete 3 items, this will free 4.48 GB, listing each path under a Safe heading with a checkbox for permanently delete.

Free to use, and staying that way.

There is no paid tier, no trial and no licence key. The licence covers your own use and a company's own internal use, royalty-free and permanently — only redistributing DDCC commercially needs a separate arrangement. If you want to support the work, that is appreciated and never expected.

  • no account, no sign-in, no expiry
  • no network connections or trackers
  • no upsell prompts, no bundled extras