Skip to main content
Xcode and FlowDeck both leave a lot behind: build output per project, downloaded simulator runtimes, debug symbols for every OS build you ever connected, worktrees for branches that merged months ago. None of it announces itself, and most of it is regenerable. Tools ▸ Disk Cleanup (⇧⌘D) scans for all of it, shows you what it found, and reclaims only what you tick.

The summary

With nothing selected, the window shows one row per category: what it holds, how much of it is selected and safe to reclaim, and a chevron into the list. There is no select-all on a summary row on purpose — selecting happens inside a category, where you can see what you are agreeing to.

What it scans

What gets preselected

Only items that are genuinely regenerable — things a rebuild or a re-download replaces. Anything that costs you real work is listed and selectable but never ticked for you. Build output for a project you still have is a good example: it is listed, because reclaiming it is a legitimate choice, but it is not preselected, because the cost is a full rebuild. Build output for a project that no longer exists is preselected, because nothing is lost.

Reclaiming

Two scopes, one confirmation:
  • Reclaim Selected in the toolbar takes everything ticked, across all categories.
  • The broom on a summary row takes just that category’s selection.
Both go through the same confirmation sheet, so nothing is ever deleted on a single click, and a scoped reclaim leaves your selections elsewhere alone.

Where things go

Almost everything is moved to the Trash, so a mistake is recoverable until you empty it. Two things cannot be, and both are labelled as permanent in the window:
  • Simulators and runtimes — there is no supported way to move a simulator to the Trash, so they are deleted outright.
  • Worktrees — trashing the folder would leave broken git metadata in the parent repository, so FlowDeck removes the worktree properly instead. The branch always survives.

What is never offered

  • The worktree you are working in, and any worktree sitting on the repository’s base branch.
  • Anything with a live agent session or a running build or test on it.
  • The current FlowDeck log.
  • Sessions whose worktree still exists.
FlowDeck also re-checks every item immediately before acting, and skips anything that changed since the scan — so a build you started after scanning does not lose its output mid-flight.
Deleting a session already reclaims its own build output for you. That happens automatically when the session is deleted; it is not something you have to come here for.