Nothing in this project has changed for 7 months, and its lockfile can rebuild the folder exactly.
Where the space goes
Most cleaners look in the wrong places for developers.
Mac cleaners are good at app caches and logs. On a Mac used for code and machine learning, most of the space sits in project folders and model caches, which they usually don't list.
Every suggestion explains itself
Not just a path and a size.
Each item says what it is, why it's there and what it would take to get it back. You decide with the evidence in front of you.
Downloaded from Hugging Face. None of your projects mention it. Files shared with other models are kept.
Deleting it removes every image, container and volume. Docker can free much of it safely by itself.
Examples. KachraClean shows Docker's and Hugging Face's own commands for you to copy; it never runs them.
Project dependencies
node_modules, .venv, target, Gradle builds and more, judged by recent activity, git status and lockfiles.
AI models, one by one
Hugging Face and Ollama models at their true size, weights saved by tools like ComfyUI, and which projects use each.
Tool & app caches
npm, pnpm, pip, uv, Homebrew, Xcode and app caches and logs, grouped by who made them.
Disk Explorer
Every folder in your home, biggest first, in Finder-style columns, with suggestions marked where they live.
What grew since last time
Each scan is compared with the last one, so a runaway cache shows up before the disk fills.
Apps, installers, duplicates
Unused apps with the evidence behind each verdict, installers for apps you already have, and identical downloads.
Safety
Built to be trusted with Full Disk Access.
A cleaner that removes the wrong folder is worse than no cleaner at all. Every suggestion carries a level and a reason, and only Safe ones are pre-selected.
Comes back by itself: caches, or dependencies of an idle project with a lockfile.
Probably fine, but your call: models, large files, projects you're working on.
Removing it loses something real, like Docker's containers and volumes. Explained, never pre-selected.
- 01Scanning only readsNothing on disk changes until you press Move to Trash and confirm.
- 02The Trash, never deleteEverything goes to the Trash, and the last clean can be undone.
- 03A second check before anything movesThe cleaner re-checks every path itself. It refuses keychains, mail, Photos, Safari, cloud folders, SSH keys and cloud credentials, and anything outside your home folder.
- 04Nothing leaves your MacNo account, no analytics, no network calls. Reports stay on disk, readable only by you.
- 05Open to inspectionFound a way to make it remove the wrong thing? Report it privately.
Install
Three steps, one honest caveat.
Released without an Apple Developer account
KachraClean is a free side project, and notarizing an app requires a paid Apple Developer account, which we don't have. The app is built with Apple's hardened runtime and an ad-hoc signature, but it isn't notarized. The first time you open it, macOS will say it can't verify the developer.
You don't have to take that on trust. Every release lists its SHA-256 so you can check the download, and the source and build scripts are public if you'd rather build it yourself.
Download
Get the .dmg from the latest release, open it, and drag KachraClean to Applications.
Allow the first launch
Open it once and close the warning. Then go to System Settings → Privacy & Security and click Open Anyway.
Grant Full Disk Access
So the scan can see other apps' caches. Without it, KachraClean runs a limited scan and says so.
Check it, or build it yourself
Compare the checksum with the release notes before opening. Or skip the download: the app builds with the Xcode Command Line Tools, no Xcode needed. The same engine also runs as a command-line tool.
# verify the download $ shasum -a 256 ~/Downloads/KachraClean-*.dmg # or build the app from source (Swift 6) $ git clone https://github.com/nikhilrdeshpande/KachraClean $ cd KachraClean && ./scripts/build-app.sh # command line: read-only scan, then a dry run $ swift build -c release $ .build/release/kachra scan $ .build/release/kachra clean --category toolCaches
Built in the open
Started as a public case study.
Before writing code, we studied how a popular commercial cleaner behaves, using the reverse-engineering toolkit REA and an AI agent, under clean-room rules. What it does well, what it misses on a developer's Mac, and which of its numbers can be reproduced with public macOS APIs: all of it is written up.
Read the research logQuestions
Fair questions.
Will it delete my code or my files?
Not on its own. It never touches anything you haven't selected and confirmed, and removal only moves items to the Trash, where Put Back or Undo restores them. It suggests folders a tool can rebuild, such as dependencies and build output, never your source files. Active projects and anything personal are marked Review and never pre-selected.
Why isn't it notarized?
Notarization requires a paid Apple Developer account, and KachraClean is a free project that doesn't have one. The app is ad-hoc signed with the hardened runtime, which blocks code injection, but macOS can't tell you who built it. That's why every release lists a checksum and the app builds from source with one command.
Why does it need Full Disk Access?
macOS hides other apps' containers and some caches from every app without it. KachraClean only reads during a scan and works in a limited mode if you decline. The only program it ever starts is Docker Desktop's own signed CLI, to ask how much Docker could free.
Does it free "System Data" or purgeable space?
No. macOS manages purgeable space itself and frees it when needed. KachraClean shows what's in your home folder and why, and leaves the system's own storage to macOS.
What does "kachra" mean?
Kachra (कचरा) is Hindi and Marathi for trash: the everyday word for the stuff you meant to throw out.
Is it really free?
Yes. It's MIT-licensed, with no paid tier, no account and no ads.
See where your space went.
The scan is read-only and takes about a minute.