This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
SlothSort is a lazy person's file butler. It watches your Downloads folder (or any folder you point it at), reads what's actually inside each file, and then renames it with a sensible name, sorts it into the right folder, and archives anything stale, all by itself and all on your own machine.
No more Screenshot 2026-10-12 at 11.42.07 (3).png, final_FINAL_v2.pdf, or a Downloads folder with 900 mystery files. You drop things in, SlothSort files them away overnight, and in the morning you get a short digest of what it moved and why. If it isn't confident about a file, it leaves it alone and flags it, and every move can be undone with one command.
Anyone who has ever said "I'll clean this up later" gets to be a little lazier.
Demo
- Video demo: [add your video link here]
- Deployed link (if any): [add link here]
Code
[Add your GitHub repo link here. On DEV you can embed it directly with the {% embed https://github.com/your-username/slothsort %} tag.]
How I Built It
SlothSort is built around a local open-weight model served through Ollama, so the whole pipeline runs without a network connection.
- Model: [your open-weight model, e.g. a small Qwen, Gemma or Llama variant] running locally via [Ollama / llama.cpp]. I picked a small model on purpose, since classifying and naming files doesn't need a giant one, and a small model keeps the laptop quiet and the battery happy (very sloth-appropriate).
-
Watcher: a lightweight Python script using
watchdogthat notices new files and queues them. - Content extraction: plain-text readers for PDFs, docs and text files, plus [a local vision model / OCR] for images and screenshots. Nothing is uploaded anywhere.
-
Decision step: the model gets the extracted text, the filename, and my folder rules, and returns a small JSON object:
{ "new_name": ..., "folder": ..., "confidence": ... }. -
Safety rails: anything below a confidence threshold is skipped, nothing is ever deleted (only moved), and every action is written to a log so
slothsort undocan reverse it. - Morning digest: one short summary of what was filed, generated by the same local model.
The folder rules live in a plain config file, so changing how SlothSort behaves means editing a few lines, not retraining anything.
Why Does Open Innovation Matter?
Sorting your files means the tool has to read your files: tax documents, invoices, medical reports, private screenshots. That is exactly the kind of data I don't want to send to a server I don't control.
Running an open-weight model locally made that possible:
- Privacy by default: file contents never leave my machine, so there is nothing to trust a third party with.
- Works offline: it runs on a plane, on bad Wi-Fi, or with the router unplugged.
- Zero running cost: no per-file API charges, so I can let it process thousands of files without watching a bill.
- Swappable and tunable: I can change models as better open ones appear, adjust prompts and rules, and even fine-tune on my own naming style, none of which a closed API would let me do on my terms.
- No surprises: the model version I tested with is the model version I keep running. It can't change under me or disappear.
For a "set it up once and forget it" tool, that reliability matters as much as the privacy.
My Agent Session
[Optional: embed your DevRelay session here with the agent_session tag, or paste a link to it.]
The Lazy Payoff
- Files processed so far: [number]
- Time I used to spend tidying per week: [X minutes]
- Time I spend now: [near zero, plus a 10-second glance at the morning digest]
- Used by: [me / a friend / my team] this week
[Replace these with your real numbers, or delete this section if you'd rather not include it.]
Top comments (0)