[{"data":1,"prerenderedAt":572},["ShallowReactive",2],{"article:where-370-gb-was-hiding-on-my-mac":3,"\u002Fblog\u002Fwhere-370-gb-was-hiding-on-my-mac-surround":561},{"id":4,"title":5,"archived":6,"author":7,"body":8,"date":546,"description":547,"extension":548,"image":549,"meta":550,"minRead":551,"navigation":552,"path":553,"published":552,"seo":554,"sitemap":555,"stem":556,"tags":557,"__hash__":560},"blog\u002Fblog\u002Fwhere-370-gb-was-hiding-on-my-mac.md","My Mac Was Down to 32 GB Free. Here's Where 370 GB Was Hiding.",false,"Baljeet Singh",{"type":9,"value":10,"toc":536},"minimark",[11,24,27,44,49,174,177,181,189,227,234,247,256,274,280,291,313,317,324,350,357,367,371,402,406,409,478,482],[12,13,14,15,19,20,23],"p",{},"My Mac had ",[16,17,18],"strong",{},"32 GB free"," on a 1 TB disk. One day later it had ",[16,21,22],{},"402 GB free",". Nothing I use was deleted.",[12,25,26],{},"None of it was my own files. It was caches, build output, tools I'd stopped using, and sound libraries I'd never opened. This post lists each one, the command that cleared it, and what I left alone, so I can repeat it next time and you can try it on your own Mac.",[12,28,29,30,37,38,43],{},"I did the cleanup with ",[31,32,36],"a",{"href":33,"rel":34},"https:\u002F\u002Fwww.anthropic.com\u002Fclaude-code",[35],"nofollow","Claude Code"," and ",[31,39,42],{"href":40,"rel":41},"https:\u002F\u002Fgithub.com\u002Ftw93\u002FMole",[35],"Mole",", a free command-line cleaner for macOS. How I kept the agent from deleting the wrong thing is at the end.",[45,46,48],"h2",{"id":47},"where-the-space-went","Where the space went",[50,51,52,68],"table",{},[53,54,55],"thead",{},[56,57,58,62,65],"tr",{},[59,60,61],"th",{},"what",[59,63,64],{},"freed",[59,66,67],{},"how",[69,70,71,88,101,112,125,138,151,164],"tbody",{},[56,72,73,77,80],{},[74,75,76],"td",{},"Logic Pro and GarageBand sound libraries",[74,78,79],{},"~150 GB",[74,81,82,83,87],{},"Finder or ",[84,85,86],"code",{},"sudo rm"," (below)",[56,89,90,93,96],{},[74,91,92],{},"App caches, logs and Xcode build output",[74,94,95],{},"58.6 GB",[74,97,98],{},[84,99,100],{},"mo clean",[56,102,103,106,109],{},[74,104,105],{},"AI coding tools I'd stopped using, and their data",[74,107,108],{},"~43 GB",[74,110,111],{},"moved to the Trash",[56,113,114,117,120],{},[74,115,116],{},"Unused Docker images",[74,118,119],{},"33.8 GB",[74,121,122],{},[84,123,124],{},"docker image prune -a",[56,126,127,130,133],{},[74,128,129],{},"Python's uv package cache",[74,131,132],{},"20.9 GiB",[74,134,135],{},[84,136,137],{},"uv cache prune",[56,139,140,143,146],{},[74,141,142],{},"Two old iOS simulator runtimes",[74,144,145],{},"15.3 GB",[74,147,148],{},[84,149,150],{},"xcrun simctl runtime delete",[56,152,153,156,159],{},[74,154,155],{},"Old Logi Options+ update packages",[74,157,158],{},"5.2 GB",[74,160,161,163],{},[84,162,86],{}," on the old folders",[56,165,166,169,172],{},[74,167,168],{},"Hugging Face models, old Node versions, leftovers from deleted apps",[74,170,171],{},"~12 GB",[74,173,111],{},[12,175,176],{},"The free-space number doesn't add up exactly: macOS frees some space later (the Trash, Docker's disk image, deleted simulators) and counts in its own way.",[45,178,180],{"id":179},"the-developer-leftovers","The developer leftovers",[12,182,183,188],{},[16,184,185,187],{},[84,186,100],{}," (58.6 GB)."," One run removed 4,837 items. The big ones:",[190,191,192,199,205,215,221],"ul",{},[193,194,195,198],"li",{},[16,196,197],{},"Xcode DerivedData:"," 22 GB across 20 projects. Xcode rebuilds it on the next build.",[193,200,201,204],{},[16,202,203],{},"App caches:"," 16.9 GB.",[193,206,207,210,211,214],{},[16,208,209],{},"npx cache:"," 4.8 GB, from every ",[84,212,213],{},"npx some-tool"," I'd ever run.",[193,216,217,220],{},[16,218,219],{},"Browser and editor caches:"," Chrome's service workers (2.6 GB), Puppeteer's browsers (2.1 GB), Notion (2.2 GB), VS Code's webview cache (2 GB).",[193,222,223,226],{},[16,224,225],{},"70 simulators"," for iOS versions no longer installed: 1 GB.",[12,228,229,230,233],{},"Run ",[84,231,232],{},"mo clean --dry-run"," first. It lists everything it would remove without removing anything.",[12,235,236,239,240,243,244,246],{},[16,237,238],{},"Docker (33.8 GB)."," ",[84,241,242],{},"docker system df"," showed 58 GB of images, more than half not used by any container. ",[84,245,124],{}," removes images that no container uses, running or stopped. Docker's disk file doesn't shrink straight away; restarting Docker Desktop releases the space.",[12,248,249,252,253,255],{},[16,250,251],{},"uv cache (20.9 GiB)."," uv keeps every Python package it has ever downloaded. ",[84,254,137],{}," removes the ones no environment uses; it went from 26 GB to 3.1 GB. Mole's preview said it would clean this, but the real run skipped it, so check afterwards.",[12,257,258,261,262,265,266,269,270,273],{},[16,259,260],{},"iOS simulators (15.3 GB)."," I had four iOS runtimes and kept the newest two: ",[84,263,264],{},"xcrun simctl runtime list"," shows them, ",[84,267,268],{},"xcrun simctl runtime delete \u003Cid>"," removes one. Then ",[84,271,272],{},"xcrun simctl delete unavailable"," removes the simulator devices that used the deleted ones.",[12,275,276,279],{},[16,277,278],{},"AI coding tools (~43 GB)."," I'd tried a lot of them. The apps were gone, but their data wasn't:",[190,281,282,285,288],{},[193,283,284],{},"LM Studio models: 13 GB",[193,286,287],{},"Gemini CLI and Antigravity: 15 GB, including three near-identical copies of the same history",[193,289,290],{},"Cursor, VS Code Insiders, Kiro, Windsurf, Hermes: 1–3 GB each",[12,292,293,294,297,298,297,301,304,305,308,309,312],{},"They live in hidden folders in your home folder (",[84,295,296],{},"~\u002F.cursor",", ",[84,299,300],{},"~\u002F.kiro",[84,302,303],{},"~\u002F.lmstudio",", …) and in ",[84,306,307],{},"~\u002FLibrary\u002FApplication Support",". Uninstalling the app doesn't remove them. Check your shell config too: Kiro, LM Studio, Antigravity, Windsurf and Amazon Q had each added lines to ",[84,310,311],{},"~\u002F.zshrc",", and Amazon Q's ran on every new terminal.",[45,314,316],{"id":315},"the-one-that-surprised-me-sound-libraries","The one that surprised me: sound libraries",[12,318,319,320,323],{},"The biggest item wasn't developer tooling. Logic Pro and GarageBand had about ",[16,321,322],{},"150 GB"," of sounds, in two places:",[190,325,326,332,338,344],{},[193,327,328,331],{},[84,329,330],{},"~\u002FMusic\u002FLogic Pro Library.bundle",": 69 GB",[193,333,334,337],{},[84,335,336],{},"\u002FLibrary\u002FApplication Support\u002FLogic",": 61 GB of older sample folders, the location Logic used before",[193,339,340,343],{},[84,341,342],{},"\u002FLibrary\u002FAudio\u002FApple Loops",": 7.7 GB",[193,345,346,349],{},[84,347,348],{},"\u002FLibrary\u002FApplication Support\u002FGarageBand",": 6.7 GB",[12,351,352,353,356],{},"All of it is Apple's free content, and both apps download it again from ",[16,354,355],{},"Sound Library"," when you need it. macOS counts it as \"System Data\", which is why that number in System Settings looked so big.",[12,358,359,360,37,363,366],{},"If you remove the old Logic folder, keep ",[16,361,362],{},"Channel Strip Settings",[16,364,365],{},"Plug-In Settings",": those can hold your own presets. Leave third-party instrument folders next to it alone.",[45,368,370],{"id":369},"what-i-kept","What I kept",[190,372,373,379,384,396],{},[193,374,375,378],{},[16,376,377],{},"Playwright browsers (10.6 GB) and the Android SDK and emulators (20.5 GB)."," I still use them; they'd only download again.",[193,380,381],{},[16,382,383],{},"Docker images that containers still use (24 GB).",[193,385,386,239,392,395],{},[16,387,388,391],{},[84,389,390],{},"node_modules"," across old projects (27.9 GB).",[84,393,394],{},"mo purge --dry-run"," found it; I haven't decided yet. It's the next easy win.",[193,397,398,401],{},[16,399,400],{},"My own files:"," a Final Cut library, synced folders, and the Photos library. No cleaner should touch those.",[45,403,405],{"id":404},"letting-an-agent-do-it-without-losing-anything","Letting an agent do it without losing anything",[12,407,408],{},"An agent that can delete files can delete the wrong ones. These rules kept it safe:",[190,410,411,426,432,446,452,468],{},[193,412,413,239,416,297,418,297,420,297,422,425],{},[16,414,415],{},"Preview first, every time.",[84,417,232],{},[84,419,394],{},[84,421,242],{},[84,423,424],{},"du -sh",". Nothing was removed before I'd seen the list and said yes.",[193,427,428,431],{},[16,429,430],{},"Trash, not delete,"," for anything that wasn't a cache. Old tools and app data went to the Trash, so I could check before emptying it.",[193,433,434,437,438,441,442,445],{},[16,435,436],{},"Password steps stay with me."," The agent never ran ",[84,439,440],{},"sudo",". For ",[84,443,444],{},"\u002FLibrary"," it gave me the exact command and I ran it in my own terminal.",[193,447,448,451],{},[16,449,450],{},"When blocked, it stopped."," One move was blocked by my permission settings; it told me how to do it in Finder instead of finding another way around.",[193,453,454,457,458,297,461,37,464,467],{},[16,455,456],{},"Backups of config edits."," Before removing Amazon Q's lines from ",[84,459,460],{},".zshrc",[84,462,463],{},".zprofile",[84,465,466],{},".bashrc",", it saved a copy of each.",[193,469,470,473,474,477],{},[16,471,472],{},"Check before blaming the cleaner."," VS Code stopped opening halfway through. It turned out VS Code had been running from ",[84,475,476],{},"~\u002FDownloads",", and that folder had gone. Mole's log had no record of removing anything there.",[45,479,481],{"id":480},"checklist-for-next-time","Checklist for next time",[483,484,485,493,501,505,512,520,530,533],"ol",{},[193,486,487,489,490,492],{},[84,488,232],{},", read it, then ",[84,491,100],{},".",[193,494,495,497,498,500],{},[84,496,242],{},", then ",[84,499,124],{},", then restart Docker Desktop.",[193,502,503,492],{},[84,504,137],{},[193,506,507,509,510,492],{},[84,508,264],{},", delete the old runtimes, then ",[84,511,272],{},[193,513,514,516,517,519],{},[84,515,394],{}," for ",[84,518,390],{}," and build folders in old projects.",[193,521,522,523,526,527,529],{},"Look in ",[84,524,525],{},"~"," for hidden folders of tools you've uninstalled, and in ",[84,528,311],{}," for their lines.",[193,531,532],{},"If you make music: check Logic and GarageBand's sound libraries.",[193,534,535],{},"Empty the Trash.",{"title":537,"searchDepth":538,"depth":538,"links":539},"",2,[540,541,542,543,544,545],{"id":47,"depth":538,"text":48},{"id":179,"depth":538,"text":180},{"id":315,"depth":538,"text":316},{"id":369,"depth":538,"text":370},{"id":404,"depth":538,"text":405},{"id":480,"depth":538,"text":481},"2026-10-22","A developer Mac fills up with caches, build output, old tools and sound libraries you never open. What took the space on mine, the command that cleared each one, what I kept, and how I let an AI agent help without losing anything.","md","\u002Fimg\u002Fmac-cleanup-370-gb.png",{},6,true,"\u002Fblog\u002Fwhere-370-gb-was-hiding-on-my-mac",{"title":5,"description":547},{"loc":553},"blog\u002Fwhere-370-gb-was-hiding-on-my-mac",[558,559,36],"macOS","Developer Tools","2ydtvhIXu8cv71IurFPihDlxAsBHDCA-LHaeL8A2jok",[562,567],{"title":563,"path":564,"stem":565,"description":566,"children":-1},"When to Build a Skill and When to Build an MCP Server","\u002Fblog\u002Fwhen-to-build-a-skill-and-when-to-build-an-mcp-server","blog\u002Fwhen-to-build-a-skill-and-when-to-build-an-mcp-server","I shipped both for the same Vue design system, a month apart, and kept both. A skill carries judgement and goes stale; an MCP server carries facts and stays fresh. Here is how the choice actually breaks down.",{"title":568,"path":569,"stem":570,"description":571,"children":-1},"What is the Array Reduce Method in JavaScript?","\u002Fblog\u002Fwhich-is-array-reduce-method-in-javascript","blog\u002Fwhich-is-array-reduce-method-in-javascript","Learn how the Array reduce method works in JavaScript with practical examples for summing values, flattening arrays, and more.",1792678814328]