We didn't go to bed... Three more sessions, and a little after nine the app was running and the apple was in it.

304.92 GB in 1,726,340 files and 248,887 folders, scanned in 8.2 seconds. Bottom right: 221 places could not be read, the same 221 as the earlier check against the system's own list.
Session 18: two languages, one app
Mac Deficit is now built from two halves, each in the language that suits it. The scanner is Rust: fast, careful with memory, and already proven over the night. The interface is Swift, the language the Mac itself is built in, so the app looks and behaves like the Mac: dark mode, VoiceOver, the way windows and buttons feel.
The two have to talk. So in Session 18 the scanner became a self-contained engine that a Swift program can start, follow, cancel and ask: start a scan, hear the count go up, stop it if you change your mind, then ask what it found, folder by folder. They run in the same process, connected by a tool called UniFFI, with nothing in between.
The rule from the night still held: run this way, a whole-drive scan had to take the same eight seconds and find exactly the same files. It did.
Session 19: the app runs
By half past eight the native app opened, and it already does the things we went looking for when Jer's drive filled up:
- Pick a drive, or any folder. Drives are shown the way Finder sees them: macOS's hidden system volumes left out, free space counting what macOS can clear on its own, and each one marked startup, internal, external or network.
- Watch it scan, with a live count and a Cancel button.
- Browse the results folder by folder, largest first.
- Reveal in Finder, the first half of clearing space, already in.
- Sizes that match Finder. Finder counts a gigabyte as a billion bytes. Many tools count it as 1,073,741,824, which makes the same drive look about 7% smaller than Finder says. Mac Deficit now uses Finder's units, so its numbers agree with the rest of your Mac.
And one we care about a lot: it works without Full Disk Access. Some people won't want to give any app that much, and they shouldn't have to. Choose Continue with Limited Access and Mac Deficit scans what macOS allows, says so on every screen, and lists every place it couldn't read. It's the same idea as the night's fixes: a gap you can see beats a gap nobody mentions.
Two bugs went with it. The Full Disk Access check used to answer "no" on any Mac where Mail had never been set up. And drives formatted as exFAT, some external drives and network shares claimed "Zero KB available". Both are fixed.
Session 20: the apple comes home
Then the apple. The Apple Treemap we drew in December, the one that waited eleven months, now lives in the native app, beside the list and always on the same folder. Hover a block for its name, size and share of the drive. Click a folder to go inside, and the list follows.
Folders now take the colour of what fills them. A folder that's mostly video reads as video, one that's mostly code reads as code, so a whole drive shows at a glance where the space went. The scanner works out what fills each folder in the same pass that adds up its size, at no cost we could measure.
And one last fix, a familiar one. While scanning, the count could run past the final total: a drive that ended at 305 GB showed 311 on the way. The cause was hard links again, one file reachable from several places, counted more than once while the scan was still going. Now the running count takes each one once, the same way the total always has. If the numbers are going to be trusted, they have to be right the whole way there, not just at the end.
What isn't done
To be straight about the screenshot: the blocks are still rectangles, cut off by the apple's outline. Fitting every block properly inside the apple's shape is next. So is showing each of your drives as an apple of its own.
After that comes the rest of clearing space: Move to the Trash, with the space it frees shown before you say yes, and clearing several things at once. Then drives that appear as you plug them in, settings that are remembered, and a signed, notarized app you can download. No release date yet. The roadmap and screenshots are on GitHub, and the project page shows every session as it lands.
Twelve sessions
Here's the night in one line: twelve sessions between 2:44 and nine in the morning, eleven months after the last one. We read every line of the old code, made every number match macOS, made the scan five times faster on half the memory, moved it into a native Mac app, and put the apple from December inside it.
We went looking for an app to show where the space on one MacBook went. Now we have one, and we know the answer: most of it is in Users. Most of it is us.
Time for bed.
~ Jer & Claude