DEV Community

Cover image for Dread Drawer: My Downloads Folder Hired a Sloth
Laura Valencia Gracia
Laura Valencia Gracia

Posted on

Dread Drawer: My Downloads Folder Hired a Sloth

Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥

Dread Drawer: A Very Small Robot for a Very Large Downloads Mess

This is my submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady

What I Built

My Downloads folder had become a tiny digital attic: Capture1.PNG, Ep_1.docx, and subtil.srt (being a bit overdramatic cause you do not want to see my actual folder. Believe me. Really.) all waiting for the mythical day I would sort them.

I built Dread Drawer, a local desktop app that asks an AI model to suggest clearer names and folders based on filenames and file extensions. It scans only the direct files in the folder I choose (not nested folders) and shows me the proposed destinations before anything moves.

The important part: the AI is a suggestion engine, not an overconfident intern with delete permissions. I can skip suggestions, approve the ones I want, and undo the last tidy-up. It never reads file contents or deletes files.

The side-hustle pitch? A tiny privacy-first utility for people who would rather do literally anything else than organize their Downloads folder. No cloud upload, no per-file fee, and no subscription just to put PDFs with other PDFs.

Demo

Dread Drawer is a local desktop app, so there’s no hosted web demo. These screenshots show the flow:

1. The peaceful beginning: the app starts with an empty review list, pointed at the selected folder.

Dread Drawer is open with Gemma 3 4B selected and an empty review list. The app is pointed at the Downloads folder; no files have been scanned yet.

2. The robot is thinking: Dread Drawer sends filenames to local Ollama and waits for suggestions.

Dread Drawer is asking local Ollama for suggestions for three files: Capture1.PNG, Ep_1.docx, and subtil.srt.

3. Suggestions, not commands: the app proposes destinations, and I decide what to apply.

Dread Drawer displays suggested destinations for three files, including Documents\receipt.PNG, Documents\episode.docx, and Other\subtitles.srt. The moves await review and approval.

4 Gemma suggests; I edit: I can change the suggested folder or filename before applying the move.

The “Edit suggested destination” dialog is open for Ep_1.docx, with Documents\episode.docx selected for editing and a prompt to keep the original extension.

5 I choose what moves: I can skip suggestions and apply only the files I select.

The first and third files are marked “No,” while the episode document is marked “Yes”; a confirmation dialog asks whether to move one selected file.

6 Undo is part of the plan: Changed my mind? Dread Drawer can restore the last moved file to its original location.

An “Undo tidy-up” dialog asks whether to restore one file to its original location.

To try it, install Ollama, download Gemma, and run the app:

ollama pull gemma3:4b
python .\dread_drawer.py
Enter fullscreen mode Exit fullscreen mode

Code

Dread Drawer on GitHub — Python app, setup notes, and tests.

How I Built It

Dread Drawer is a small Python desktop app built with Tkinter and Python’s standard library. It calls Ollama’s local chat API and asks an open-weight model for structured suggestions: a category and a filename stem for each file.

The model receives filenames and extension-based hints—not file contents or full paths. The app validates the response, displays the suggested destinations, and only moves files after I review and confirm. It also records the last operation so I can undo it.

I tested the flow using Gemma 3 4B through Ollama. On my machine, GPU inference hit a CUDA/PTX compatibility error, so I configured Ollama to run inference on the CPU instead. It’s slower, but it let me keep the whole workflow local.

Why Does Open Innovation Matter?

Filenames can reveal more about someone’s life than they might expect. I didn’t want a file-organizing tool to require sending those names to a server I don’t control.

With a local model, filenames stay on my machine. After downloading the model, the app can make suggestions without an internet connection or a cloud API bill. I can also swap in another Ollama model rather than being locked into one provider’s pricing or behavior.

That flexibility mattered in practice: when the GPU runtime failed, I could switch to CPU inference and keep testing locally. Open models gave me options—and a way to keep building without handing my files to a cloud service.

The Lazy Payoff

I haven’t measured a real time saving yet, so I’m not going to claim that this app saves 15 minutes based on absolutely nothing but optimism.

What I can show so far is the workflow: three filenames become three suggested destinations in one review screen. The next benchmark is to time a real tidy-up and count how many suggestions I accept, edit, or reject. Until then, the honest payoff is fewer repetitive decisions—and one less excuse to keep final_FINAL_reallyfinal.docx where it is.

Prize Categories

Best Use of Gemma - The suggestion flow was tested with Gemma 3 4B running locally through Ollama.

Top comments (0)