This project is submitted to the Hacktoberfest Open-Source AI Challenge: Week 3 ("Slow and Steady") in celebration of International Sloth Day (October 20).
We all have it: a Downloads folder overflowing with cryptic filenames like statement_final (3).pdf, Screenshot_2026-10-18_1423.png, and IMG_9210.jpeg. We intend to organize them, but real life gets in the way.
Aggressive cleanup scripts are terrifying—they rename things unpredictably or dump sensitive identity documents into public clouds.
October 20 is International Sloth Day, and sloths have life figured out: conserve energy, move deliberately, and never panic.
Meet Clutter Sloth: a slow, careful, local-only Downloads folder organizer powered by an open-weight vision model running on your own machine. It files things away quietly while your computer is idle, never deletes anything, learns from your corrections, and makes every move reversible.
Sloths do not rush. Clutter Sloth is built around deliberate restraint:
settle_seconds (default: 2 minutes) before they are evaluated.never_auto) ID & Personal are permanently preview-only.sloth undo reverts the last batch with zero risk of overwriting restored files.sloth digest)
Running sloth digest provides genuine metrics of time saved:
Files sorted: 43 (28 auto-moved, 14 approved, 1 corrected)
Moves undid: 0
Correction rate on files reviewed: 6.6%
Average scan duration: ~6 minutes on a GTX 1650 (4 GB VRAM)
Instead of spending 30 minutes manually renaming bank receipts, invoices, and research papers, Clutter Sloth handles it quietly in the background.
Your Downloads folder holds your most private life: boarding passes, tax returns, resumes, and medical bills. Sending these files to proprietary cloud APIs is an unnecessary privacy hazard.
With open-weight models (like Qwen3.5-4B-GGUF or Gemma 3) served locally via Unsloth Desktop, complete visual and document understanding runs on modest hardware (even a 4 GB VRAM GPU) with zero bytes leaving your machine.
flowchart TD
A["Downloads Folder"] -->|"Settle Delay and CPU < 60%"| B["sloth.engine (Candidates)"]
B --> C["sloth.extract (PIL / pypdf / pypdfium2)"]
C --> D["sloth.classify"]
D <-->|"Dynamic In-Context Corrections"| E[("sloth.db (SQLite)")]
D <-->|"Local OpenAI API"| F["Unsloth Desktop (Open-Weight Model)"]
D --> G{"Trust Ladder"}
G -->|"never_auto OR Streak < 5"| H["Queue in Proposals (Preview Mode)"]
G -->|"Streak >= 5"| I["Autonomous Move to Sorted/Category/"]
H --> J["sloth review (Interactive Verification)"]
J -->|"Approve"| K["Category Streak Incremented"]
J -->|"Correct"| L["Streak Reset + Exemplar Stored"]
I --> M["sloth undo (Batch Reversal)"]
M -->|"Reversion"| N["Restored Safely without Overwrite"]
git clone https://github.com/i-soumya18/clutter-sloth.git
cd clutter-sloth
pip install -e .
sloth init
sloth doctor
sloth scan --now
sloth review