ClutterSloth: Sorting 5 messy files took me 12 minutes of procrastination, so now a local browser loop does it while I nap
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady What I Built ClutterSloth is a zero-dependency, local-first file and inbox tidier that organizes chaotic filenames (
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
ClutterSloth is a zero-dependency, local-first file and inbox tidier that organizes chaotic filenames (invoice_v1(1).pdf, Q4_meeting_notes_FINAL-final.docx, IMG_8842 copy.jpg) into clean, structured categories without sending a single byte over the network.
β’ Live Deployed Prototype: https://pug-tape-64702791.figma.site/
β’ The Core Rule: 0 bytes leave this browser. The sorting loop runs client-side, proving that you do not need heavy cloud infrastructure or expensive proprietary LLM APIs to automate everyday digital annoyance.
Demo
A walkthrough of the live interface: inputting messy filenames into the left control panel, toggling Local RAM Mode (Offline), and executing the client-side sort loop to populate structured folder outputs.
β’ ClutterSloth Live Prototype
Code
You can inspect and fork the interface architecture directly via the Figma Make Prototype Source or embed the client-side classification loop:
// ClutterSloth Client-Side Sort Loop
function runClutterSloth(rawInput) {
const lines = rawInput.split('\n').map(l => l.trim()).filter(Boolean);
return lines.map(filename => {
const lower = filename.toLowerCase();
if (lower.includes('invoice') || lower.includes('pdf')) {
return { original: filename, folder: 'π /Finance_Receipts', action: 'Standardized nomenclature' };
} else if (lower.includes('note') || lower.includes('doc')) {
return { original: filename, folder: 'π /Work_Notes', action: 'Tagged [Offline-Summary]' };
} else if (lower.includes('img') || lower.includes('jpg') || lower.includes('mov')) {
return { original: filename, folder: 'πΌοΈ /Media_Cleanup', action: 'Queued 30-day auto-archive' };
} else if (lower.includes('unsubscribe') || lower.includes('eml') || lower.includes('free_gift')) {
return { original: filename, folder: 'ποΈ /Trash_Bin', action: 'Marked for local purge' };
}
return { original: filename, folder: 'π /Archive/Unsorted', action: 'Cleaned filename' };
});
}
How I Built It
As a first-year student working solo with a zero-dollar cloud budget, I designed ClutterSloth around a minimalist single-page layout:
- Input & Control Panel: A clean dark-mode (#0F172A) textarea pre-loaded with sample desktop and inbox clutter, paired with an interactive Local RAM Mode (Offline) indicator showing an open model loaded directly in memory.
- Deterministic State Transition: Clicking Run Local AI Sort Loop transitions the right structured output panel from Awaiting Run to categorized folder groups (/Finance_Receipts, /Work_Notes, /Media_Cleanup, /Trash_Bin).
- Responsive Auto Layout: Built with fluid flex constraints that stack cleanly from a 2-column desktop workspace into a mobile-friendly vertical flow.
Why Does Open Innovation Matter?
- Client-side privacy: Your filenames and inbox subjects stay strictly inside your browser tab and never touch a remote server, eliminating third-party data exposure.
- Zero-cost sustainability: Removing recurring API subscription fees makes practical automation accessible to students, classrooms, and offline environments.
- Rule-based efficiency: Small, inspectable logic loops are fast, deterministic, and easy for any developer to audit and extend.
My Agent Session
β’ Session Workflow: Prototyped and iterated via interactive text-to-code design loops, validating offline state transitions and zero-network privacy constraints.
The Lazy Payoff
By replacing manual renaming with a single-click local loop, ClutterSloth turns a 12-minute weekly desktop cleanup chore into a 0-second background habitβleaving more time to actually sleep or code.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes β full credit and traffic to the original publisher.