🎃 Hacktoberfest 2026 · Open-Source AI Challenge, Week 3: Slow and Steady

Sloth Sort names your files
so you don't have to.

Your Desktop is full of Screenshot 2026-10-14 at 9.41.22 AM.png. You'll rename them later. You won't. Sloth Sort uses Google's open-weight Gemma 3, running on your own laptop, to look at each file and give it a name a tidy person would have picked.

Desktop — 11 items
These are real names Gemma 3 4B produced for made-up files, replayed here.

You do nothing. That's the feature.

Sloth Sort sits in the background and moves at its own pace: one file at a time, about four seconds each, on a laptop.

👀

It watches

When a new screenshot, photo or PDF lands in ~/Desktop or ~/Downloads, it gets a real name within seconds. The model unloads itself when there's nothing to do.

🤚

It knows what to leave alone

Only throwaway names get touched: Screenshot …, IMG_4821, download (2).pdf, hashes. taxes 2025 notes.pdf stays as you named it.

↩️

Every rename can be undone

Each rename is written to a journal before the file moves. A local review page shows every change, with one-click undo or a retype box.

Why it has to be open and local

Look at what's actually in a Downloads folder: bank statements, utility bills with your address, screenshots of private group chats, a settings page with your API keys still on it.

A cloud vision API would need every one of those uploaded just to come up with a filename. That's a bad trade for something you'd run on everything, all the time, without looking.

  • Nothing leaves the laptop. Gemma 3 runs through Ollama. The review page only listens on 127.0.0.1.
  • It costs $0 forever. Renaming a few hundred files a month would mean a per-image API bill. Here it's electricity.
  • It works offline, on a plane, which is exactly when you screenshot your boarding pass.
  • You pick the model. I started on Gemma 3 12B. It made my 16 GB laptop lag, so I switched to 4B with one setting change. It's twice as fast and still gets every date right.

The model suggests. Code decides.

A small model is great at reading a boarding pass. It is not something to trust with your file system. Gemma only suggests words; plain Python decides what a filename may contain.

RuleWhy
Long digit runs, emails and phone numbers are scrubbed from every nameFilenames show up in Spotlight, cloud sync logs and email attachments. chase-statement-7730-2219-5541.pdf should never exist.
A date from the model is used only if a full day, month and year is printed on the fileSmall models fill gaps. A cart that said "Thu, Oct 29" once became 2023-10-29, and "Q3 2026" once became July 1.
Never overwrite. A clash becomes -2, -3Your files are worth more than a pretty name.
Wait until a file stops growingNo renaming half-downloaded PDFs.
Flag passwords, keys and card numbersThe review page warns you, so a screenshot of your API keys doesn't sit on your Desktop forever.

How good are the names?

I scored Gemma 3 4B on 11 made-up files: screenshots, a text PDF, an image-only phone scan, a chart, a meme and a page full of API keys. Each name is checked for the right words, category, date and secret flag. The misses are shown too.

BeforeAfterWordsCategoryDateSecret flag

The review page

Runs on your machine at 127.0.0.1:8765. Undo anything, retype anything, or tidy up the backlog of old files in one click.

Sloth Sort review page listing renamed files with before and after names, categories and Undo buttons

Run it

You need macOS or Linux, Python 3.11+ and Ollama.

ollama pull gemma3:4b
pip install -r requirements.txt
python -m slothsort          # then open http://127.0.0.1:8765

Want to see what it would do first? python -m slothsort scan ~/Downloads previews names without touching anything.