Disk Cleanup Assistant for Windows
Get your C: drive back without guessing what is safe to delete.
It finds what fills a developer's laptop: old node_modules, Rust
target folders, package caches, old VS Code builds, WSL disks. Then it
cleans up only what you approve, records every step, and can put back what it
recycled or moved. Run it yourself, or let Claude Code run it for you.
Windows only. Every release is a free download from GitHub today.
Dry run of plan 3 for C:. Nothing has changed yet. Recycle (can be put back; the space is freed once the Recycle Bin is emptied): 3.0 GB 3.0 GB C:\Users\mark\Videos\copy of trip.mp4 Delete for good (rebuilds itself): 2.4 GB 2.4 GB C:\Users\mark\AppData\Local\Temp (1,234 files, Temporary files) Clean with the tool's own command: 30.0 GB 30.0 GB C:\Users\mark\.nuget\packages (NuGet package caches, 9,000 files) Left out: delete C:\Windows\Temp: C:\Windows\Temp is protected: Windows' own folder To run it: dca run 3
How a cleanup goes
-
Scan
It reads the drive's NTFS master file table directly instead of opening every folder. With the optional scan service, a rescan reads only what the change journal says changed.
-
Plan
You, or your agent, pick what to clean from what it found. It checks each item and shows a dry run: what will be recycled, deleted, cleaned or moved, and what it refused and why.
-
Approve
You say yes yourself, in a terminal, in your Claude client or in a Windows dialog. An agent can propose a plan but cannot approve it.
-
Undo
Every step is written to a journal before and after it runs. Undo puts recycled items back until the Recycle Bin is emptied, and moves relocated folders back until you finish the plan. An interrupted run picks up where it stopped.
What it finds on a developer laptop
A catalog of 27 tested rules, each with a risk level and a note on what happens if it is gone. Build output only counts in projects nobody has touched for 90 days. Where a tool has its own clean command, the plan runs that command.
- Idle projects
node_modulesnext topackage.json, Rusttargetnext toCargo.toml, .NETbinandobj - Package cachesnpm, pnpm, Yarn, pip, NuGet, Gradle, Maven, Cargo
- Old app buildsVS Code and VS Code Insiders, keeping the newest
- WSL and Docker disksNever deleted. A plan can shut WSL down and compact the disk to give back unused space.
- Windows' own leftoversTemp, Windows Update downloads, Delivery Optimization, crash dumps, the previous Windows, the component store, through Windows' own tools
- DuplicatesFound by content (a full hash of each file), not by name
Or move it instead of deleting it
Some big folders are not junk: an Android SDK, Ollama or Hugging Face models,
VirtualBox machines, a Steam library, .nuget, .gradle,
.rustup. A plan can move one to another drive and leave a junction at
its old path, so programs still find it where they always did.
The copy is checked before the original is touched, and the original is kept as
<name>.dca-old until you say the programs work. Until then, undo is
two renames. Folders that break behind a junction, such as Store app data and
Docker or WSL disks, are blocked, with the reason.
An AI deleting my files? Here is what it cannot do.
The safety checks are in the program that changes files, not in a prompt. An agent can only propose a plan. The plan is checked when it is made and again when it runs.
Never recycled, deleted or moved by a plan step
- Windows, Program Files, ProgramData\Microsoft
- Restore points, recovery and boot files
- The page file and hibernation file
- The top of a drive, or a user profile as a whole
- OneDrive, Dropbox, Google Drive, iCloud and Box folders
- Junctions and links, and files marked as system files
Each path is checked as written and again through the opened file, so a short name or a junction cannot get a protected folder past the check.
Windows' own cleanup tasks are the exception, and the dry run names each one. They run Windows' tools as administrator, only once you approve them: they clear Windows' temporary files, update downloads and crash dumps, remove the previous Windows and superseded components, and can turn hibernation off, which removes the hibernation file.
Skipped when it runs
- A file that changed since the scan
- A file another program is using
- Anything too large for the Recycle Bin, or holding paths too long for it, which Windows would delete for good
- Recycling on a drive that has no Recycle Bin
- A Windows task whose administrator prompt you decline
Can be put back
- Anything recycled: the default for your own files. Each item is looked up in the Recycle Bin afterwards, and the run says so if it is not there.
- Folders moved to another drive, until you finish the plan
Gone for good, and the dry run says so
- Caches and temporary files that rebuild themselves (the only things it will delete outright)
- What a tool's own clean command or a Windows task removes
- Everything recycled, once a plan empties the Recycle Bin, which always runs last
The Recycle Bin checks above are in v0.1.14, released 4 November 2026. Earlier builds could lose paths too long for the Recycle Bin, so update the plugin if you installed it before then.
Three ways to use it
All three run the same engine: the same catalog, the same safety checks, the same dry run.
Claude Code plugin
In Claude Code on Windows:
/plugin marketplace add Automate-Pros/disk-cleanup-assistant-releases /plugin install disk-cleanup-assistant@disk-cleanup-assistant
Then ask "why is my C: drive full?". On first use the plugin downloads the pinned release and refuses any file whose SHA-256 differs.
Command line
Download dca.exe from the
latest release, then:
dca scan C: dca junk C: dca plan C: --recycle <path> dca run <plan> dca undo <plan>
dca run shows the plan and asks you to type yes. Read commands take --json.
Desktop app
The drive as a treemap or sunburst, what can go, the plan to approve and watch run,
and undo later from History. Put both exes from the
latest release
in one folder, then run dca-app.exe:
$dir = "$env:LOCALAPPDATA\Programs\DiskCleanupAssistant"
New-Item -ItemType Directory -Force $dir | Out-Null
$url = "https://github.com/Automate-Pros/disk-cleanup-assistant-releases/releases/latest/download"
foreach ($exe in "dca-app.exe", "dca.exe") { Invoke-WebRequest "$url/$exe" -OutFile "$dir\$exe" }
& "$dir\dca-app.exe"
It checks for a newer release when it starts and installs one only when you say so, and only if it carries Automate Pros' signature.
Requirements
- Windows
- x64 builds of
dca.exeanddca-app.exe, code-signed. - NTFS
- For the fast scan. Other drives are scanned by walking the folders, which is slower.
- Administrator
- Reading the master file table needs it. Each scan asks once through UAC. Say no and it walks the folders instead.
- Or the scan service
- Install it once to scan without prompts. It only scans, never changes a file, and serves only the user signed in at the screen.
- Another drive
- Only for moving folders: a fixed NTFS drive with room.
Installing the scan service (optional)
For plugin users, from a terminal opened as administrator:
$dca = Get-ChildItem "$env:USERPROFILE\.claude\plugins\cache\disk-cleanup-assistant\disk-cleanup-assistant\*\bin\dca.exe" | Sort-Object LastWriteTime | Select-Object -Last 1 & $dca service install
dca service uninstall removes it. dca service status says whether it is running.
Questions
WizTree is free for personal use and also reads the MFT. Why use this?
WizTree is an excellent viewer. This tool does the part after viewing: it knows which developer folders are safe to clear and how, cleans through a plan you approve, and can undo. If you only want a picture of your drive, WizTree is the right tool.
Recycling didn't free any space.
Recycled files still take space until the Recycle Bin is emptied. A plan can empty it as its last step. The dry run warns that after that, nothing recycled can be put back.
Does it work without Claude Code?
Yes. The command line does everything the plugin does: scan, find junk and duplicates, plan, run, undo, move folders and finish.
Does it send my files or file names anywhere?
No. dca.exe has no web client in it. The plugin downloads the pinned
release from GitHub, and the desktop app asks GitHub whether there is a newer
release when it starts. If you use it through Claude Code, the agent sees the sizes
and paths the tools return, as with any MCP tool.
Will it break programs when it moves a folder?
It names the kinds of folder known to work from another drive, blocks the ones known to break, and lists other large folders with what to know before moving them. The old copy stays until you tell it the programs work, and undo moves the folder back.
Why does it ask for administrator rights?
Windows only lets administrators read the master file table, which is what makes the scan fast. Scans run as administrator are not saved to disk, so an elevated write cannot be redirected onto a system file. Without administrator rights it walks the folders instead.
Windows, OneDrive and Visual Studio Code are trademarks of Microsoft. Claude and Claude Code are trademarks of Anthropic, PBC. Docker is a trademark of Docker, Inc. Not affiliated with, or endorsed by, Microsoft, Anthropic, Docker or the makers of the other tools named on this page.