Skip to content

A 256 GB Mac at 96 percent full, measured folder by folder

A developer's 256 GB MacBook with 7.4 GB free, measured end to end. What filled it, what was removable, and the 77 GB Terminal could not even see.

8 min read

Most storage advice is written from a big machine. This is the opposite: a 256 GB MacBook used for web, mobile and AI development, measured on the day its data volume reached 96 percent.

The fixed part: macOS itself

VolumeUsed
System (sealed, read only)12.7 GB
Preboot9.0 GB
VM (swap and sleep image)7.5 GB
Recovery1.3 GB

About 30 GB goes before a single file of yours. The volumes are explained in the other volumes in your container.

The data volume

WhereSize
Home folder, all of it80.8 GB
/Applications14 GB
/Library13.6 GB
/opt/homebrew9.3 GB
/private/var8.6 GB
/usr/local2.8 GB
Counted by du129 GB
Not visible to Terminalabout 77 GB

The 77 GB nobody could see

du ran without Full Disk Access. macOS answered Operation not permitted for Mail and Messages, and reported the Photos library in ~/Pictures as nearly empty even though it was there. That privacy protection is why a Terminal measurement of a Mac always comes out low, and why any storage tool needs Full Disk Access to be honest. It is also the space most likely to be personal: photos, message attachments and mail.

Inside the 80.8 GB home folder

FolderSizeRemovable?
~/Library26.7 GBPartly. Application Support 14.3 GB, Caches 6.2 GB
A work projects folder7.9 GB6.6 GB of it: node_modules 5.3 GB, build output 1.3 GB
~/Documents7.6 GB5.6 GB of it: node_modules 2.4 GB, build output 3.2 GB
~/.npm4.8 GBYes, all of it
~/.nvm4.5 GBEight Node versions, from 10.24.1 to 24.9.0
~/.cache3.4 GBMostly an abandoned install
~/Movies3.3 GBPersonal
~/.devin, ~/.windsurf, ~/.openclaw6.2 GBAI tool data
~/Downloads2.5 GBMostly installers
~/.rustup1.7 GBUnused compile targets

What was actually removable

Counting only things that regenerate or were plainly leftovers, and not a single personal file:

WhatSize
node_modules across all projects7.7 GB
Build output across all projects4.6 GB
~/.npm download and npx caches4.9 GB
Chrome's disk cache3.8 GB
An abandoned install in ~/.cache1.9 GB
A cross compiler used once1.4 GB
Seven older Node versions under nvm1.3 GB
A stuck app update0.8 GB
A duplicate JDK and an old one0.8 GB
Totalabout 27 GB

On a Mac with 7.4 GB free, that is the difference between a machine that cannot install an update and one with room to work. The lesson from this Mac: on a developer's machine the space is in tools, not documents. Node was installed three separate ways here, through nvm, through a second version manager and through Homebrew, and each kept its own copies of everything.

For the long-term setup on a small disk, see the small SSD guide, and for the order to look in, where did my Mac storage go.

Common questions

Is 256 GB enough for a developer Mac?

It works, but it needs regular cleanup. On the Mac measured, about 30 GB went to macOS, and about 27 GB of the rest was regenerable caches and leftovers.

Why does Terminal show less used space than the Mac reports?

Because without Full Disk Access, macOS hides Photos, Mail, Messages and some app data from Terminal. On this Mac that was about 77 GB.

What fills a developer's Mac the most?

Tools rather than documents: package caches, old runtime versions, build output, AI tool data and app caches.

How much space does macOS itself use?

About 30 GB on the Mac measured: 12.7 GB system, 9.0 GB Preboot, 7.5 GB swap and sleep image, 1.3 GB Recovery.

Read next