One command, a straight answer
The same scanner and the same safety rules as the app, as JSON an agent can act on.
$ headroom cleanup ~
{
"total_reclaimable": "38.9 GB",
"candidates": [
{ "path": "~/dev/shop/node_modules",
"size": "23.6 GB", "safety": "safe" },
{ "path": "~/Library/Developer/Xcode/DerivedData",
"size": "11.2 GB", "safety": "safe" },
{ "path": "~/Library/Caches/Homebrew",
"size": "4.1 GB", "safety": "usually_safe" }
]
}