cd /news/ai-tools/my-friend-s-laptop-is-full-of-junk-n… Β· home β€Ί topics β€Ί ai-tools β€Ί article
[ARTICLE Β· art-145084] src=dev.to β†— pub= topic=ai-tools verified=true sentiment=↑ positive

My friend's laptop is full of junk nobody dares delete. So I built him a local AI that explains what's safe.

A developer built DiskSage, a Windows cleanup app that uses the locally run Gemma 4 model via Ollama to explain each scan finding in plain English and flag whether it is safe to delete. On the developer's own laptop the first scan took 5.5 seconds and identified 25.4 GB of safely removable files, the largest being a 15.5 GB unpacked SOLIDWORKS installer left in Downloads. The tool scans node_modules, virtualenvs, Rust target folders, caches and leftover installer data, and includes tabs for fully uninstalling apps and asking questions about the user's own PC, with nothing deleted until the user confirms.

by read7 min views2 publishedOct 5, 2026

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

Every one of my friends has the same laptop problem, and so do I. We download everything: installers, zips, ISOs, datasets, entire SDKs for one assignment. And we delete almost nothing. When the "C: drive is almost full" warning finally shows up, we open Downloads, delete a few obvious things and give up, because the rest of the space is hiding in places none of us know about.

My friend Kunal is the worst case. His laptop is always filled with random downloads, caches, trash and other things nobody remembers putting there. Cleaning it means guessing which folders are safe to delete, and since nobody wants to guess wrong, most of it just stays.

So I built DiskSage for him: a Windows app that scans the whole PC for junk, then has Gemma 4, running locally on the laptop, explain every finding in plain English: what it is, whether it's safe to remove, and why.

It looks in the places we never check:

node_modules, .venv and Rust target folders in projects you haven't opened in months. There's also a Remove an app tab. It runs the app's official uninstaller, then finds the settings and data folders the app leaves behind. And there's an Ask tab for questions like "is it safe to delete WinSxS?", answered using what the scan found on your PC.

The first time I ran it on my own laptop, it found 25.4 GB that was safe to clean. The biggest single item was a 15.5 GB unpacked SOLIDWORKS installer still sitting in Downloads, long after the app was installed.

The demo runs in this order: scan β†’ Gemma reviews every finding β†’ it identifies the mystery folders β†’ confirm cleanup β†’ remove an app β†’ ask a question. File names are blurred with DiskSage's own "Blur file names" button.

There's no live link, and that's on purpose: a hosted DiskSage would have to scan someone else's PC. Here are two screens up close.

Gemma identifying folders no rule could name. Here it spots the Android SDK and the Dart/Flutter package cache, both still in use, so it says keep:

Removing an app completely. DiskSage runs the official uninstaller, and Gemma explains each leftover folder. It warns that Arduino15 may hold your own sketches:

Finds the junk on your Windows PC, and explains it with an AI that never leaves your machine.

My friends and I download everything (installers, zips, ISOs, datasets, whole SDKs) and delete almost nothing. Downloads is the junk you can see. The rest hides in temp folders, browser and app caches, node_modules, pip/Gradle/Cargo caches, driver installer leftovers and forgotten AI models.

DiskSage scans for all of it. A local, open-weight model (running in Ollama) then reviews every finding and explains, in plain English, what it is and whether it's safe to remove. Nothing is deleted until you tick it and confirm.

On my own laptop, the first scan took 5.5 seconds and found 25.4 GB that was safe to clean. The biggest single item was a 15.5 GB unpacked SOLIDWORKS installer sitting in Downloads.

Where Examples
Downloads Setup files for apps you've already

To try it on Windows:

ollama pull gemma4:e4b
git clone https://github.com/ttspb1357/disksage

Then double-click DiskSage.bat. It checks for Python and Ollama, installs what's needed and opens the page.

Stack:

gemma4:e4b)

 Scanner (Python, read-only)        Gemma 4 on this laptop            You
 ───────────────────────────        ──────────────────────            ───
 walks folders, measures,    ──►    verdict + reason for     ──►      tick what
 hashes duplicates, reads           every finding (JSON),             to remove
 installed apps, matches            identifies mystery                    β”‚
 installers to apps                 folders, advises on apps              β–Ό
                                                              actions.py re-checks every path
                                                              β†’ Recycle Bin, or delete if it rebuilds itself
Finding Size Verdict
Unpacked SOLIDWORKS installer (app already installed) 15.5 GB safe
pip, Gradle and Cargo caches 3.7 GB safe
Rust target folder in a project untouched for 336 days 1.6 GB safe
Setup files for 6 apps already installed (Anaconda, OBS, Arduino…) 1.4 GB safe
Chrome and Edge caches 1.4 GB safe
App caches (VS Code, Riot Client…) 1.3 GB safe
Conda package cache 14.8 GB review: "use conda clean --all "
ASUS driver folder C:\eSupport 6.1 GB review: "MyASUS may still use it"
An Ollama model I no longer use 4.9 GB review
Android SDK + Dart/Flutter cache (mystery folders) 3.0 GB Gemma: keep, still in use
hiberfil.sys +pagefile.sys ~20 GB keep, with how to shrink them properly

Python does everything that has a right answer:

VSCodeUserSetup-x64-1.93.1.exe to "Microsoft Visual Studio Code". Gemma does everything that needs judgement: what is this, is it safe, and what's the catch?

Every scan ends with one structured call to the local model. DiskSage sends the findings (titles, sizes, paths, the scanner's own notes) along with a JSON schema through Ollama's format parameter, so the answer always comes back as verdicts and reasons the app can use directly. This is a real one from my scan:

{
  "id": "F9",
  "verdict": "review",
  "reason": "This is a large cache for Conda packages; you should use the `conda clean --all` command in the Anaconda Prompt for the safest removal."
}

Mystery folders get a second, more focused call. The scanner can't name AppData\Local\Pub, but it can tell Gemma the folder's age and the names of a few things inside it. That was enough for Gemma to recognise the Dart/Flutter package cache.

That's the rule I didn't compromise on, together with a second one: the model can only make a verdict more cautious, never less.

A small local model guesses wrong sometimes. The first model I tried confidently called my ASUS driver folder "installer leftovers for an Autodesk product". So:

python-3.10.0-amd64.exe belonged to .cab files. Deleting one would break the installer, so unpacked installers are now detected and offered as one whole folder.pagefile.sys to 17.7 GB while the model was loaded. DiskSage now explains that file instead of ignoring it. I tested the delete code on a throwaway folder (18 checks), on Python 3.10 and 3.13. One check plants a junction trap pointing at "important" files; those files survived. Another simulates a switched-off Recycle Bin. I also clicked through the whole UI with a browser-automation script, with every destructive request intercepted (22 checks).

Because the input to this app is a list of your file names.

To tell you what's junk, the model has to read names like Resume_final_v3.pdf, client project folders, bank statements and folders named after people. It also reads your AppData, which is basically a list of every app you've ever installed. A cloud API would receive all of that on every scan. With Gemma running in Ollama, the request goes to 127.0.0.1 and stops there. I wouldn't send a listing of Kunal's laptop to anyone, and with DiskSage I don't have to.

Open also made it practical:

DISKSAGE_MODEL); nothing else in the code changed. Where closed would win: a frontier model knows more trivia, and would probably have named that ASUS folder correctly the first time. I chose privacy and zero cost, and designed around the smaller model's limits: measure the facts, let the model judge, never let it act alone. For a tool that reads your file list, that's the right trade.

Best Use of Gemma. Gemma 4 (gemma4:e4b) is DiskSage's engine, running locally through Ollama on a laptop GPU. It powers all four AI features:

Every call uses structured output, so Gemma's answers go straight into the interface as verdicts, reasons and notes. Across every test run (full scans, app advice and questions), it returned valid structured answers each time. A full review of about 18 findings takes 25–35 seconds and uses 4.7 GB of GPU memory, and no data ever leaves the PC.

── more in #ai-tools 4 stories Β· sorted by recency
── more on @disksage 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/my-friend-s-laptop-i…] indexed:0 read:7min 2026-10-05 Β· β€”