<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Omkar Tipugade</title>
    <description>The latest articles on DEV Community by Omkar Tipugade (@omkartipugade).</description>
    <link>https://dev.to/omkartipugade</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1755769%2Ff12f152d-65bc-491c-89ee-56ab106f7a08.png</url>
      <title>DEV Community: Omkar Tipugade</title>
      <link>https://dev.to/omkartipugade</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/omkartipugade"/>
    <language>en</language>
    <item>
      <title>SlothDesk: The Privacy-First Local AI File Organizer That Rewards Your Laziness 🦥</title>
      <dc:creator>Omkar Tipugade</dc:creator>
      <pubDate>Mon, 26 Oct 2026 02:30:20 +0000</pubDate>
      <link>https://dev.to/omkartipugade/slothdesk-the-privacy-first-local-ai-file-organizer-that-rewards-your-laziness-4boi</link>
      <guid>https://dev.to/omkartipugade/slothdesk-the-privacy-first-local-ai-file-organizer-that-rewards-your-laziness-4boi</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Almost every developer and computer user shares the same guilty secret: a &lt;strong&gt;chaotic &lt;code&gt;Downloads&lt;/code&gt; or &lt;code&gt;Desktop&lt;/code&gt; folder&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Invoices from last spring sit next to software installers, resume revisions (&lt;code&gt;resume_final_v3_really_final.pdf&lt;/code&gt;), random screenshots, podcast clips, and zip files. Cleaning it up is a chore we all dread. The thought of manually creating folders, clicking and dragging hundreds of files, and double-checking that we don’t accidentally delete a tax document or legal agreement is paralyzing.&lt;/p&gt;

&lt;p&gt;In honor of &lt;strong&gt;International Sloth Day&lt;/strong&gt; and Hacktoberfest’s &lt;strong&gt;"Slow and Steady"&lt;/strong&gt; theme, I built &lt;strong&gt;SlothDesk&lt;/strong&gt; 🦥.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SlothDesk&lt;/strong&gt; is a desktop file organization assistant that brings order to cluttered directories using &lt;strong&gt;100% local, open-source AI (&lt;code&gt;qwen3:4b&lt;/code&gt; via Ollama)&lt;/strong&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Who gets to be lazy because of it?
&lt;/h3&gt;

&lt;p&gt;Anyone with a messy computer who never wants to spend their Sunday afternoon sorting files again! Instead of manually curating files:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You point SlothDesk to your messy folder.&lt;/li&gt;
&lt;li&gt;The local AI scans file metadata and proposes a structured organization plan into 10 distinct categories (Documents, Invoices, Resumes, Code, Data, Images, Audio, Video, Notes, Other).&lt;/li&gt;
&lt;li&gt;You review the proposed moves in a clean dashboard and click &lt;strong&gt;Confirm&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;SlothDesk executes the moves safely and atomically.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Key Safety Principles:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔒 &lt;strong&gt;Zero Cloud Calls:&lt;/strong&gt; All inference runs offline on your machine via Ollama. No bank statements, resumes, or client contracts are ever sent to third-party servers.&lt;/li&gt;
&lt;li&gt;🛡️ &lt;strong&gt;Human-in-the-Loop:&lt;/strong&gt; It &lt;strong&gt;never&lt;/strong&gt; moves a single file without your explicit preview and approval.&lt;/li&gt;
&lt;li&gt;🚫 &lt;strong&gt;Never Deletes:&lt;/strong&gt; SlothDesk only reorganizes and archives — it never deletes your files.&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;Duplicate Detection:&lt;/strong&gt; Scans for exact duplicates via fast SHA-256 content hashing without altering original files.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Watch the full walkthrough and live demonstration of SlothDesk in action:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/ed1we1ikHrk" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Direct link: &lt;a href="https://youtu.be/ed1we1ikHrk?si=W3K5d7PBLowEK9EY" rel="noopener noreferrer"&gt;https://youtu.be/ed1we1ikHrk&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;SlothDesk is 100% free and open source under the MIT License:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/OmkarTipugade" rel="noopener noreferrer"&gt;
        OmkarTipugade
      &lt;/a&gt; / &lt;a href="https://github.com/OmkarTipugade/SlothDesk" rel="noopener noreferrer"&gt;
        SlothDesk
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🦥 SlothDesk&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A calmer, privacy-first way to organize your files using local AI.&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Built for Hacktoberfest 2026 — "Slow and Steady".&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://fastapi.tiangolo.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d4946d6806c8c5dff8c731560c9a9043b2063ccff6318d2da09e17f5d228a7af/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466173744150492d302e3131352b2d3030393638382e7376673f7374796c653d666c6174266c6f676f3d66617374617069266c6f676f436f6c6f723d7768697465" alt="FastAPI"&gt;&lt;/a&gt;
&lt;a href="https://react.dev/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/9762a68bf09030c1ffaf1940c5843836ede832d7f056d445cd8ccd92521d4707/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3631444146422e7376673f7374796c653d666c6174266c6f676f3d7265616374266c6f676f436f6c6f723d626c61636b" alt="React"&gt;&lt;/a&gt;
&lt;a href="https://www.typescriptlang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4f096be229fa1ec709a13393471ba9c38c989292feeb4d226da0323eba745eae/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352e392d3331373843362e7376673f7374796c653d666c6174266c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465" alt="TypeScript"&gt;&lt;/a&gt;
&lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/153e01b8c819d36b831aff0b11c5da186b4dfc5b90fddab070a7c1c0a8c1af86/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f6c6c616d612d4c6f63616c5f4c4c4d2d626c61636b2e7376673f7374796c653d666c6174266c6f676f3d6f6c6c616d61266c6f676f436f6c6f723d7768697465" alt="Ollama"&gt;&lt;/a&gt;
&lt;a href="https://www.python.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fa294559d91e9c1c6d6bc76aacf89c44713bbc15ea5b662b88f0ac314e1ffea3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e392b2d3337373641422e7376673f7374796c653d666c6174266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465" alt="Python"&gt;&lt;/a&gt;
&lt;a href="https://opensource.org/licenses/MIT" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667" alt="License: MIT"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-what-is-slothdesk" rel="noopener noreferrer"&gt;What is SlothDesk?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-why-slothdesk-the-need--usefulness" rel="noopener noreferrer"&gt;Why SlothDesk? (The Need &amp;amp; Usefulness)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-how-it-works" rel="noopener noreferrer"&gt;How It Works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-key-features" rel="noopener noreferrer"&gt;Key Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-supported-file-categories" rel="noopener noreferrer"&gt;Supported File Categories&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-quick-start-guide-for-absolute-beginners" rel="noopener noreferrer"&gt;Quick Start Guide (For Absolute Beginners)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#step-1-install--start-ollama" rel="noopener noreferrer"&gt;Step 1: Install &amp;amp; Start Ollama&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#step-2-set-up-the-backend" rel="noopener noreferrer"&gt;Step 2: Set Up the Backend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#step-3-set-up-the-frontend" rel="noopener noreferrer"&gt;Step 3: Set Up the Frontend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#step-4-organize-your-files" rel="noopener noreferrer"&gt;Step 4: Organize Your Files!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-how-to-use-the-app-step-by-step-walkthrough" rel="noopener noreferrer"&gt;How to Use the App (Step-by-Step Walkthrough)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-configuration-options" rel="noopener noreferrer"&gt;Configuration Options&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-architecture-overview" rel="noopener noreferrer"&gt;Architecture Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-privacy--safety-guarantees" rel="noopener noreferrer"&gt;Privacy &amp;amp; Safety Guarantees&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-troubleshooting--faq" rel="noopener noreferrer"&gt;Troubleshooting &amp;amp; FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-contributing" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🦥 What is SlothDesk?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;SlothDesk&lt;/strong&gt; is a desktop file organization assistant that brings order to cluttered folders (like your &lt;code&gt;Downloads&lt;/code&gt; or &lt;code&gt;Desktop&lt;/code&gt;) without compromising your privacy.&lt;/p&gt;
&lt;p&gt;Unlike traditional automated scripts that blindly move files according to rigid rules, or cloud tools that require uploading your sensitive personal files to external servers, SlothDesk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Runs &lt;strong&gt;100% locally on your machine&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Uses…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/OmkarTipugade/SlothDesk" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/OmkarTipugade/SlothDesk" rel="noopener noreferrer"&gt;https://github.com/OmkarTipugade/SlothDesk&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;SlothDesk was designed from the ground up around &lt;strong&gt;local-first open-source AI inference&lt;/strong&gt; and non-destructive execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The AI Engine: Open-Weight Inference with Ollama &amp;amp; Qwen
&lt;/h3&gt;

&lt;p&gt;Rather than hardcoding rigid regex rules or file-extension dictionaries (which fail when distinguishing a &lt;code&gt;receipt.pdf&lt;/code&gt; from a &lt;code&gt;resume.pdf&lt;/code&gt;), SlothDesk uses the open-weight &lt;strong&gt;&lt;code&gt;qwen3:4b&lt;/code&gt;&lt;/strong&gt; model hosted locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Read-Only Metadata Scanner:&lt;/strong&gt; SlothDesk only inspects filenames, extensions, and file sizes. It never needs to parse or upload document contents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured JSON Planning:&lt;/strong&gt; The backend streams the sanitized inventory to Ollama using structured prompt heuristics, receiving back exact categorical destinations with human-readable reasoning for every file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Two-Phase Move Protection &amp;amp; Security
&lt;/h3&gt;

&lt;p&gt;Desktop file management requires zero margin for error:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Symlink &amp;amp; Traversal Guards:&lt;/strong&gt; Resolves strict real paths to prevent path traversal (&lt;code&gt;../&lt;/code&gt;) attacks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collision Avoidance:&lt;/strong&gt; Checks if a target file already exists in the destination folder to prevent overwriting existing work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite Audit Trail:&lt;/strong&gt; Every moved file is recorded with timestamps, source, and destination paths in a local SQLite database for complete transparency.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. The Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Core:&lt;/strong&gt; Ollama running &lt;code&gt;qwen3:4b&lt;/code&gt; (Open-weight model)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python 3.9+, FastAPI, Pydantic, SQLite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React 19, TypeScript, Vite, Modern Responsive Design (Dark/Light Mode)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;When we think about AI file organizers, the easy path today is hooking into a closed cloud API like OpenAI or Google Gemini. But for desktop file organization, &lt;strong&gt;closed APIs are a non-starter&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Data Privacy:&lt;/strong&gt; Would you upload your tax returns, bank statements, medical records, or proprietary company codebases to a cloud API just to sort your Downloads folder? Absolutely not. Open innovation and open-weight models give us &lt;strong&gt;data sovereignty&lt;/strong&gt; — what happens on your laptop stays on your laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cost &amp;amp; No Subscriptions:&lt;/strong&gt; Closed APIs charge per token. If you have 2,000 files in your archive, sorting them with a closed API incurs costs and API key hurdles. With open-weight models on Ollama, inference is free and runs as many times as you want.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;True Offline Resilience:&lt;/strong&gt; SlothDesk functions completely offline. Whether you are on an airplane, in a remote cabin, or experiencing an internet outage, your assistant keeps working.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customizability:&lt;/strong&gt; Because models like Qwen are open, developers can inspect prompts, fine-tune models on specialized taxonomies, and tweak classification behaviors without waiting on a provider’s policy change.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Open-source AI transforms AI from a rented luxury into personal, sovereign desktop utility.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;Before building SlothDesk, cleaning my &lt;code&gt;Downloads&lt;/code&gt; folder of ~350 files took &lt;strong&gt;30 to 45 minutes&lt;/strong&gt; of manual sorting, second-guessing filenames, and dragging icons into subfolders.&lt;/p&gt;

&lt;p&gt;With SlothDesk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Time spent scanning &amp;amp; planning:&lt;/strong&gt; 6 to 8 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time spent reviewing suggestions:&lt;/strong&gt; ~20 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time spent organizing:&lt;/strong&gt; Instantaneous.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Total effort saved:&lt;/strong&gt; Over 40 minutes per cleanup session, with zero cognitive fatigue and zero fear of accidental deletion. You literally channel your inner sloth: sit back, sip your coffee, click "Confirm", and let local AI do all the heavy lifting.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Overall Hacktoberfest Open-Source AI Challenge Winner (Week 3: Slow and Steady)&lt;/strong&gt;
&lt;em&gt;(Entered as a solo project built around open-weight models and local inference with Ollama &amp;amp; Qwen).&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Thank you for checking out SlothDesk! If this tool saves you from messy folder dread, please consider giving the project a ⭐ on &lt;a href="https://github.com/OmkarTipugade/SlothDesk" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and let me know your thoughts in the comments below!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>SlothDesk: The Privacy-First Local AI File Organizer That Rewards Your Laziness 🦥</title>
      <dc:creator>Omkar Tipugade</dc:creator>
      <pubDate>Mon, 26 Oct 2026 02:13:15 +0000</pubDate>
      <link>https://dev.to/omkartipugade/slothdesk-the-privacy-first-local-ai-file-organizer-that-rewards-your-laziness-50ei</link>
      <guid>https://dev.to/omkartipugade/slothdesk-the-privacy-first-local-ai-file-organizer-that-rewards-your-laziness-50ei</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Almost every developer and computer user shares the same guilty secret: a &lt;strong&gt;chaotic &lt;code&gt;Downloads&lt;/code&gt; or &lt;code&gt;Desktop&lt;/code&gt; folder&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Invoices from last spring sit next to software installers, resume revisions (&lt;code&gt;resume_final_v3_really_final.pdf&lt;/code&gt;), random screenshots, podcast clips, and zip files. Cleaning it up is a chore we all dread. The thought of manually creating folders, clicking and dragging hundreds of files, and double-checking that we don’t accidentally delete a tax document or legal agreement is paralyzing.&lt;/p&gt;

&lt;p&gt;In honor of &lt;strong&gt;International Sloth Day&lt;/strong&gt; and Hacktoberfest’s &lt;strong&gt;"Slow and Steady"&lt;/strong&gt; theme, I built &lt;strong&gt;SlothDesk&lt;/strong&gt; 🦥.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SlothDesk&lt;/strong&gt; is a desktop file organization assistant that brings order to cluttered directories using &lt;strong&gt;100% local, open-source AI (&lt;code&gt;qwen3:4b&lt;/code&gt; via Ollama)&lt;/strong&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Who gets to be lazy because of it?
&lt;/h3&gt;

&lt;p&gt;Anyone with a messy computer who never wants to spend their Sunday afternoon sorting files again! Instead of manually curating files:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You point SlothDesk to your messy folder.&lt;/li&gt;
&lt;li&gt;The local AI scans file metadata and proposes a structured organization plan into 10 distinct categories (Documents, Invoices, Resumes, Code, Data, Images, Audio, Video, Notes, Other).&lt;/li&gt;
&lt;li&gt;You review the proposed moves in a clean dashboard and click &lt;strong&gt;Confirm&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;SlothDesk executes the moves safely and atomically.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Key Safety Principles:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔒 &lt;strong&gt;Zero Cloud Calls:&lt;/strong&gt; All inference runs offline on your machine via Ollama. No bank statements, resumes, or client contracts are ever sent to third-party servers.&lt;/li&gt;
&lt;li&gt;🛡️ &lt;strong&gt;Human-in-the-Loop:&lt;/strong&gt; It &lt;strong&gt;never&lt;/strong&gt; moves a single file without your explicit preview and approval.&lt;/li&gt;
&lt;li&gt;🚫 &lt;strong&gt;Never Deletes:&lt;/strong&gt; SlothDesk only reorganizes and archives — it never deletes your files.&lt;/li&gt;
&lt;li&gt;🔍 &lt;strong&gt;Duplicate Detection:&lt;/strong&gt; Scans for exact duplicates via fast SHA-256 content hashing without altering original files.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Watch the full walkthrough and live demonstration of SlothDesk in action:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/ed1we1ikHrk" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Direct link: &lt;a href="https://youtu.be/ed1we1ikHrk?si=W3K5d7PBLowEK9EY" rel="noopener noreferrer"&gt;https://youtu.be/ed1we1ikHrk&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;SlothDesk is 100% free and open source under the MIT License:&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/OmkarTipugade" rel="noopener noreferrer"&gt;
        OmkarTipugade
      &lt;/a&gt; / &lt;a href="https://github.com/OmkarTipugade/SlothDesk" rel="noopener noreferrer"&gt;
        SlothDesk
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🦥 SlothDesk&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;A calmer, privacy-first way to organize your files using local AI.&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Built for Hacktoberfest 2026 — "Slow and Steady".&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://fastapi.tiangolo.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/d4946d6806c8c5dff8c731560c9a9043b2063ccff6318d2da09e17f5d228a7af/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f466173744150492d302e3131352b2d3030393638382e7376673f7374796c653d666c6174266c6f676f3d66617374617069266c6f676f436f6c6f723d7768697465" alt="FastAPI"&gt;&lt;/a&gt;
&lt;a href="https://react.dev/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/9762a68bf09030c1ffaf1940c5843836ede832d7f056d445cd8ccd92521d4707/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d31392d3631444146422e7376673f7374796c653d666c6174266c6f676f3d7265616374266c6f676f436f6c6f723d626c61636b" alt="React"&gt;&lt;/a&gt;
&lt;a href="https://www.typescriptlang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4f096be229fa1ec709a13393471ba9c38c989292feeb4d226da0323eba745eae/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352e392d3331373843362e7376673f7374796c653d666c6174266c6f676f3d74797065736372697074266c6f676f436f6c6f723d7768697465" alt="TypeScript"&gt;&lt;/a&gt;
&lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/153e01b8c819d36b831aff0b11c5da186b4dfc5b90fddab070a7c1c0a8c1af86/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4f6c6c616d612d4c6f63616c5f4c4c4d2d626c61636b2e7376673f7374796c653d666c6174266c6f676f3d6f6c6c616d61266c6f676f436f6c6f723d7768697465" alt="Ollama"&gt;&lt;/a&gt;
&lt;a href="https://www.python.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fa294559d91e9c1c6d6bc76aacf89c44713bbc15ea5b662b88f0ac314e1ffea3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d332e392b2d3337373641422e7376673f7374796c653d666c6174266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465" alt="Python"&gt;&lt;/a&gt;
&lt;a href="https://opensource.org/licenses/MIT" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667" alt="License: MIT"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-what-is-slothdesk" rel="noopener noreferrer"&gt;What is SlothDesk?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-why-slothdesk-the-need--usefulness" rel="noopener noreferrer"&gt;Why SlothDesk? (The Need &amp;amp; Usefulness)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-how-it-works" rel="noopener noreferrer"&gt;How It Works&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-key-features" rel="noopener noreferrer"&gt;Key Features&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-supported-file-categories" rel="noopener noreferrer"&gt;Supported File Categories&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-quick-start-guide-for-absolute-beginners" rel="noopener noreferrer"&gt;Quick Start Guide (For Absolute Beginners)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#step-1-install--start-ollama" rel="noopener noreferrer"&gt;Step 1: Install &amp;amp; Start Ollama&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#step-2-set-up-the-backend" rel="noopener noreferrer"&gt;Step 2: Set Up the Backend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#step-3-set-up-the-frontend" rel="noopener noreferrer"&gt;Step 3: Set Up the Frontend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#step-4-organize-your-files" rel="noopener noreferrer"&gt;Step 4: Organize Your Files!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-how-to-use-the-app-step-by-step-walkthrough" rel="noopener noreferrer"&gt;How to Use the App (Step-by-Step Walkthrough)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-configuration-options" rel="noopener noreferrer"&gt;Configuration Options&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-architecture-overview" rel="noopener noreferrer"&gt;Architecture Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-privacy--safety-guarantees" rel="noopener noreferrer"&gt;Privacy &amp;amp; Safety Guarantees&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-troubleshooting--faq" rel="noopener noreferrer"&gt;Troubleshooting &amp;amp; FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/OmkarTipugade/SlothDesk#-contributing" rel="noopener noreferrer"&gt;Contributing&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🦥 What is SlothDesk?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;SlothDesk&lt;/strong&gt; is a desktop file organization assistant that brings order to cluttered folders (like your &lt;code&gt;Downloads&lt;/code&gt; or &lt;code&gt;Desktop&lt;/code&gt;) without compromising your privacy.&lt;/p&gt;
&lt;p&gt;Unlike traditional automated scripts that blindly move files according to rigid rules, or cloud tools that require uploading your sensitive personal files to external servers, SlothDesk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Runs &lt;strong&gt;100% locally on your machine&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Uses…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/OmkarTipugade/SlothDesk" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/OmkarTipugade/SlothDesk" rel="noopener noreferrer"&gt;https://github.com/OmkarTipugade/SlothDesk&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;SlothDesk was designed from the ground up around &lt;strong&gt;local-first open-source AI inference&lt;/strong&gt; and non-destructive execution.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The AI Engine: Open-Weight Inference with Ollama &amp;amp; Qwen
&lt;/h3&gt;

&lt;p&gt;Rather than hardcoding rigid regex rules or file-extension dictionaries (which fail when distinguishing a &lt;code&gt;receipt.pdf&lt;/code&gt; from a &lt;code&gt;resume.pdf&lt;/code&gt;), SlothDesk uses the open-weight &lt;strong&gt;&lt;code&gt;qwen3:4b&lt;/code&gt;&lt;/strong&gt; model hosted locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Read-Only Metadata Scanner:&lt;/strong&gt; SlothDesk only inspects filenames, extensions, and file sizes. It never needs to parse or upload document contents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured JSON Planning:&lt;/strong&gt; The backend streams the sanitized inventory to Ollama using structured prompt heuristics, receiving back exact categorical destinations with human-readable reasoning for every file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Two-Phase Move Protection &amp;amp; Security
&lt;/h3&gt;

&lt;p&gt;Desktop file management requires zero margin for error:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Symlink &amp;amp; Traversal Guards:&lt;/strong&gt; Resolves strict real paths to prevent path traversal (&lt;code&gt;../&lt;/code&gt;) attacks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collision Avoidance:&lt;/strong&gt; Checks if a target file already exists in the destination folder to prevent overwriting existing work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite Audit Trail:&lt;/strong&gt; Every moved file is recorded with timestamps, source, and destination paths in a local SQLite database for complete transparency.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. The Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Core:&lt;/strong&gt; Ollama running &lt;code&gt;qwen3:4b&lt;/code&gt; (Open-weight model)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Python 3.9+, FastAPI, Pydantic, SQLite&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React 19, TypeScript, Vite, Modern Responsive Design (Dark/Light Mode)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;When we think about AI file organizers, the easy path today is hooking into a closed cloud API like OpenAI or Google Gemini. But for desktop file organization, &lt;strong&gt;closed APIs are a non-starter&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Absolute Data Privacy:&lt;/strong&gt; Would you upload your tax returns, bank statements, medical records, or proprietary company codebases to a cloud API just to sort your Downloads folder? Absolutely not. Open innovation and open-weight models give us &lt;strong&gt;data sovereignty&lt;/strong&gt; — what happens on your laptop stays on your laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Cost &amp;amp; No Subscriptions:&lt;/strong&gt; Closed APIs charge per token. If you have 2,000 files in your archive, sorting them with a closed API incurs costs and API key hurdles. With open-weight models on Ollama, inference is free and runs as many times as you want.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;True Offline Resilience:&lt;/strong&gt; SlothDesk functions completely offline. Whether you are on an airplane, in a remote cabin, or experiencing an internet outage, your assistant keeps working.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customizability:&lt;/strong&gt; Because models like Qwen are open, developers can inspect prompts, fine-tune models on specialized taxonomies, and tweak classification behaviors without waiting on a provider’s policy change.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Open-source AI transforms AI from a rented luxury into personal, sovereign desktop utility.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;Before building SlothDesk, cleaning my &lt;code&gt;Downloads&lt;/code&gt; folder of ~350 files took &lt;strong&gt;30 to 45 minutes&lt;/strong&gt; of manual sorting, second-guessing filenames, and dragging icons into subfolders.&lt;/p&gt;

&lt;p&gt;With SlothDesk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Time spent scanning &amp;amp; planning:&lt;/strong&gt; 6 to 8 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time spent reviewing suggestions:&lt;/strong&gt; ~20 seconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time spent organizing:&lt;/strong&gt; Instantaneous.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Total effort saved:&lt;/strong&gt; Over 40 minutes per cleanup session, with zero cognitive fatigue and zero fear of accidental deletion. You literally channel your inner sloth: sit back, sip your coffee, click "Confirm", and let local AI do all the heavy lifting.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Overall Hacktoberfest Open-Source AI Challenge Winner (Week 3: Slow and Steady)&lt;/strong&gt;
&lt;em&gt;(Entered as a solo project built around open-weight models and local inference with Ollama &amp;amp; Qwen).&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Thank you for checking out SlothDesk! If this tool saves you from messy folder dread, please consider giving the project a ⭐ on &lt;a href="https://github.com/OmkarTipugade/SlothDesk" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and let me know your thoughts in the comments below!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
