<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tarun Tiwari</title>
    <description>The latest articles on DEV Community by Tarun Tiwari (@simp_bonk).</description>
    <link>https://dev.to/simp_bonk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4162295%2Ffff877d6-ced4-449a-9938-2822563a3107.png</url>
      <title>DEV Community: Tarun Tiwari</title>
      <link>https://dev.to/simp_bonk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/simp_bonk"/>
    <language>en</language>
    <item>
      <title>My friend's laptop is full of junk nobody dares delete. So I built him a local AI that explains what's safe.</title>
      <dc:creator>Tarun Tiwari</dc:creator>
      <pubDate>Mon, 05 Oct 2026 00:58:07 +0000</pubDate>
      <link>https://dev.to/simp_bonk/my-friends-laptop-is-full-of-junk-nobody-dares-delete-so-i-built-him-a-local-ai-that-explains-9bh</link>
      <guid>https://dev.to/simp_bonk/my-friends-laptop-is-full-of-junk-nobody-dares-delete-so-i-built-him-a-local-ai-that-explains-9bh</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;My friend &lt;strong&gt;Kunal&lt;/strong&gt; 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.&lt;/p&gt;

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

&lt;p&gt;It looks in the places we never check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Downloads, properly.&lt;/strong&gt; It finds setup files for apps that are &lt;em&gt;already installed&lt;/em&gt; (it reads Windows' installed-apps list and compares versions), unpacked installer folders, zips you've already extracted, half-finished downloads and old ISOs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hidden caches.&lt;/strong&gt; Temp files, browser caches, the Chromium caches inside Discord, VS Code and Slack, GPU shader caches, crash dumps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer leftovers.&lt;/strong&gt; pip, npm, Gradle and Cargo caches, plus &lt;code&gt;node_modules&lt;/code&gt;, &lt;code&gt;.venv&lt;/code&gt; and Rust &lt;code&gt;target&lt;/code&gt; folders in projects you haven't opened in months.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI leftovers.&lt;/strong&gt; Ollama models you don't use, Hugging Face and LM Studio downloads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mystery folders.&lt;/strong&gt; Big AppData folders that don't belong to any installed app. No rule can say what they are, so Gemma identifies them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's also a &lt;strong&gt;Remove an app&lt;/strong&gt; tab. It runs the app's official uninstaller, then finds the settings and data folders the app leaves behind. And there's an &lt;strong&gt;Ask&lt;/strong&gt; tab for questions like "is it safe to delete WinSxS?", answered using what the scan found on &lt;em&gt;your&lt;/em&gt; PC.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi0red2xf948ve0bum7wp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi0red2xf948ve0bum7wp.png" alt="DiskSage scan results: 25.4 GB safe to clean, with Gemma 4's review" width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0md1jxndnpyyvgzacc9o.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0md1jxndnpyyvgzacc9o.gif" alt="DiskSage demo: scan, AI review, mystery folders, cleanup, remove an app, ask" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

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

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

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqurgv03gtybjkad35vda.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqurgv03gtybjkad35vda.png" alt="Gemma identifies unrecognised AppData folders" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Removing an app completely.&lt;/strong&gt; DiskSage runs the official uninstaller, and Gemma explains each leftover folder. It warns that &lt;code&gt;Arduino15&lt;/code&gt; may hold your own sketches:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftnmk1chwszei1sh2bwf2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftnmk1chwszei1sh2bwf2.png" alt="Remove an app: Gemma explains each leftover folder" width="800" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/ttspb1357" rel="noopener noreferrer"&gt;
        ttspb1357
      &lt;/a&gt; / &lt;a href="https://github.com/ttspb1357/disksage" rel="noopener noreferrer"&gt;
        disksage
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;DiskSage&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Finds the junk on your Windows PC, and explains it with an AI that never leaves your machine.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;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, &lt;code&gt;node_modules&lt;/code&gt;, pip/Gradle/Cargo caches, driver installer leftovers and forgotten AI models.&lt;/p&gt;
&lt;p&gt;DiskSage scans for all of it. A local, open-weight model (running in &lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;Ollama&lt;/a&gt;) 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.&lt;/p&gt;
&lt;p&gt;On my own laptop, the first scan took 5.5 seconds and found &lt;strong&gt;25.4 GB that was safe to clean&lt;/strong&gt;. The biggest single item was a 15.5 GB unpacked SOLIDWORKS installer sitting in Downloads.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/ttspb1357/disksage/docs/screenshot.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fttspb1357%2Fdisksage%2FHEAD%2Fdocs%2Fscreenshot.png" alt="DiskSage scan results: 25.4 GB safe to clean, with the local AI's review"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;What it finds&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Where&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Downloads&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Setup files for apps you've &lt;strong&gt;already&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/ttspb1357/disksage" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;To try it on Windows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ollama pull gemma4:e4b
git clone https://github.com/ttspb1357/disksage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then double-click &lt;code&gt;DiskSage.bat&lt;/code&gt;. It checks for Python and Ollama, installs what's needed and opens the page.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python + Flask for a small local web app.&lt;/li&gt;
&lt;li&gt;Plain HTML/CSS/JS, with no build step and no CDN, so it works offline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 4 (&lt;code&gt;gemma4:e4b&lt;/code&gt;)&lt;/strong&gt; running in &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; on my laptop's RTX 4060. It uses 4.7 GB of the GPU's 8 GB.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; 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
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What it found on my laptop
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Finding&lt;/th&gt;
&lt;th&gt;Size&lt;/th&gt;
&lt;th&gt;Verdict&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Unpacked SOLIDWORKS installer (app already installed)&lt;/td&gt;
&lt;td&gt;15.5 GB&lt;/td&gt;
&lt;td&gt;safe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pip, Gradle and Cargo caches&lt;/td&gt;
&lt;td&gt;3.7 GB&lt;/td&gt;
&lt;td&gt;safe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust &lt;code&gt;target&lt;/code&gt; folder in a project untouched for 336 days&lt;/td&gt;
&lt;td&gt;1.6 GB&lt;/td&gt;
&lt;td&gt;safe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Setup files for 6 apps already installed (Anaconda, OBS, Arduino…)&lt;/td&gt;
&lt;td&gt;1.4 GB&lt;/td&gt;
&lt;td&gt;safe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chrome and Edge caches&lt;/td&gt;
&lt;td&gt;1.4 GB&lt;/td&gt;
&lt;td&gt;safe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App caches (VS Code, Riot Client…)&lt;/td&gt;
&lt;td&gt;1.3 GB&lt;/td&gt;
&lt;td&gt;safe&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Conda package cache&lt;/td&gt;
&lt;td&gt;14.8 GB&lt;/td&gt;
&lt;td&gt;review: "use &lt;code&gt;conda clean --all&lt;/code&gt;"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ASUS driver folder &lt;code&gt;C:\eSupport&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;6.1 GB&lt;/td&gt;
&lt;td&gt;review: "MyASUS may still use it"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;An Ollama model I no longer use&lt;/td&gt;
&lt;td&gt;4.9 GB&lt;/td&gt;
&lt;td&gt;review&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Android SDK + Dart/Flutter cache (mystery folders)&lt;/td&gt;
&lt;td&gt;3.0 GB&lt;/td&gt;
&lt;td&gt;Gemma: keep, still in use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;hiberfil.sys&lt;/code&gt; + &lt;code&gt;pagefile.sys&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;~20 GB&lt;/td&gt;
&lt;td&gt;keep, with how to shrink them properly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Rules find, Gemma judges
&lt;/h3&gt;

&lt;p&gt;Python does everything that has a right answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;walking folders and measuring sizes,&lt;/li&gt;
&lt;li&gt;hashing files to find exact duplicates,&lt;/li&gt;
&lt;li&gt;reading the installed-apps list from the registry,&lt;/li&gt;
&lt;li&gt;matching a setup file like &lt;code&gt;VSCodeUserSetup-x64-1.93.1.exe&lt;/code&gt; to "Microsoft Visual Studio Code".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gemma does everything that needs judgement: &lt;em&gt;what is this, is it safe, and what's the catch?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;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 &lt;code&gt;format&lt;/code&gt; parameter, so the answer always comes back as verdicts and reasons the app can use directly. This is a real one from my scan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"F9"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"verdict"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"review"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"reason"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"This is a large cache for Conda packages; you should use the `conda clean --all` command in the Anaconda Prompt for the safest removal."&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mystery folders get a second, more focused call. The scanner can't name &lt;code&gt;AppData\Local\Pub&lt;/code&gt;, 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemma can never delete anything
&lt;/h3&gt;

&lt;p&gt;That's the rule I didn't compromise on, together with a second one: &lt;strong&gt;the model can only make a verdict &lt;em&gt;more&lt;/em&gt; cautious, never less.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the scanner's rules set the baseline,&lt;/li&gt;
&lt;li&gt;the model's verdict only counts when it's stricter, and&lt;/li&gt;
&lt;li&gt;facts (installed versions, sizes, known vendor folders) are measured and handed to the model instead of left for it to guess.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What went wrong (and made it better)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A wrong "safe".&lt;/strong&gt; My first matcher decided &lt;code&gt;python-3.10.0-amd64.exe&lt;/code&gt; belonged to &lt;em&gt;Anaconda&lt;/em&gt;, because both mention Python, and marked the file "safe". Now the app's main name word has to match.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A broken installer waiting to happen.&lt;/strong&gt; The unpacked SOLIDWORKS installer showed up as "duplicate" and "large" &lt;code&gt;.cab&lt;/code&gt; files. Deleting one would break the installer, so unpacked installers are now detected and offered as one whole folder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;12 GB of free space disappeared.&lt;/strong&gt; While I was testing, free space dropped 12 GB without DiskSage writing a thing. Windows had grown &lt;code&gt;pagefile.sys&lt;/code&gt; to 17.7 GB while the model was loaded. DiskSage now explains that file instead of ignoring it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Restorable" wasn't always true.&lt;/strong&gt; Windows silently deletes &lt;em&gt;permanently&lt;/em&gt; anything bigger than the Recycle Bin's size limit, and everything when the bin is switched off. DiskSage now reads each drive's Recycle Bin settings and refuses those items, because "you can restore it" has to be true.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The top tip missed the biggest win.&lt;/strong&gt; Gemma's first "do this first" tip pointed at a 283 MB Windows cleanup instead of the 15.5 GB installer. The fix wasn't a smarter model: DiskSage now tells it which finding is the biggest safe one.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Safety, tested
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Your own files go to the Recycle Bin. Only things that rebuild themselves (caches, &lt;code&gt;node_modules&lt;/code&gt;) are deleted permanently, and the confirmation dialog says which is which.&lt;/li&gt;
&lt;li&gt;Windows, Program Files and OneDrive folders are never touched, and folder links (junctions) are never followed.&lt;/li&gt;
&lt;li&gt;The local server only answers requests from its own page, so other websites can't send it commands.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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).&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Because the input to this app is a list of your file names.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To tell you what's junk, the model has to read names like &lt;code&gt;Resume_final_v3.pdf&lt;/code&gt;, 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 &lt;code&gt;127.0.0.1&lt;/code&gt; and stops there. I wouldn't send a listing of Kunal's laptop to anyone, and with DiskSage I don't have to.&lt;/p&gt;

&lt;p&gt;Open also made it practical:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It costs nothing to run.&lt;/strong&gt; A scan summary is thousands of tokens, so with a paid API every rescan costs money. Locally, Kunal can scan every week for free.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It works offline.&lt;/strong&gt; No account, no API key, and no internet once the model is downloaded.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;I control how the model behaves, and which model it is.&lt;/strong&gt; I can force structured output with a JSON schema and enforce the "only more cautious" rule. I started on DeepSeek-R1 8B and moved to Gemma 4 by changing one setting (&lt;code&gt;DISKSAGE_MODEL&lt;/code&gt;); nothing else in the code changed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows only.&lt;/strong&gt; It relies on the registry, Recycle Bin settings and Windows' folder layout.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OneDrive folders are skipped on purpose.&lt;/strong&gt; Deleting a synced file deletes it from the cloud too.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It doesn't touch the registry.&lt;/strong&gt; Registry "cleaners" cause more problems than they solve.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Microsoft Store apps&lt;/strong&gt; aren't in the Remove-an-app list yet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma can still be wrong&lt;/strong&gt; about what an unknown folder is. That's why its "safe" never overrides the scanner, and why mystery folders always need you to review them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Gemma.&lt;/strong&gt; Gemma 4 (&lt;code&gt;gemma4:e4b&lt;/code&gt;) is DiskSage's engine, running locally through Ollama on a laptop GPU. It powers all four AI features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the scan review,&lt;/li&gt;
&lt;li&gt;mystery-folder identification,&lt;/li&gt;
&lt;li&gt;app-removal advice,&lt;/li&gt;
&lt;li&gt;the Ask tab.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
