<?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: Keerti Vijay Ananth</title>
    <description>The latest articles on DEV Community by Keerti Vijay Ananth (@kvijay1911).</description>
    <link>https://dev.to/kvijay1911</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%2F4190235%2F1e9b1167-0c18-42b4-9c4d-4434dad927a5.png</url>
      <title>DEV Community: Keerti Vijay Ananth</title>
      <link>https://dev.to/kvijay1911</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kvijay1911"/>
    <language>en</language>
    <item>
      <title>🦥 SlothDesk — Let Your Desktop Stay Organized</title>
      <dc:creator>Keerti Vijay Ananth</dc:creator>
      <pubDate>Sun, 25 Oct 2026 12:27:14 +0000</pubDate>
      <link>https://dev.to/kvijay1911/slothdesk-let-your-desktop-stay-organized-31ng</link>
      <guid>https://dev.to/kvijay1911/slothdesk-let-your-desktop-stay-organized-31ng</guid>
      <description>&lt;p&gt;&lt;em&gt;Less sorting. More living.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is my 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;/p&gt;

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

&lt;p&gt;I built &lt;strong&gt;SlothDesk&lt;/strong&gt;, a local-first, AI-powered file organizer that helps take the repetitive work out of managing a cluttered folder.&lt;/p&gt;

&lt;p&gt;We all have that Downloads folder filled with assignments, invoices, notes, images, archives, and documents with confusing filenames. Manually opening each file, figuring out what it is, renaming it, and deciding where it belongs gets tedious quickly.&lt;/p&gt;

&lt;p&gt;SlothDesk is my attempt to make that process easier.&lt;/p&gt;

&lt;p&gt;It uses a small open-weight language model running locally through Ollama to help categorize files and suggest meaningful filenames. It combines AI-based decisions with deterministic rules for predictable file types and uses ordinary Python code to handle the actual filesystem operations.&lt;/p&gt;

&lt;p&gt;What makes SlothDesk different is that it is designed to be &lt;strong&gt;slow, careful, and reversible&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local AI inference:&lt;/strong&gt; Uses Ollama with Qwen2.5 1.5B, so file contents can be processed on the user's own computer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dry run by default:&lt;/strong&gt; Preview the proposed organization before files are moved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safer file operations:&lt;/strong&gt; Avoid overwriting existing files, validate paths, and handle filename collisions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Undo and history:&lt;/strong&gt; Record file movements so an organization run can be reviewed and reversed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evaluation instead of guesswork:&lt;/strong&gt; Includes an evaluation harness to measure how well the selected model categorizes files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight setup:&lt;/strong&gt; Built in Python to run on a regular computer without requiring a GPU.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to give AI unlimited control over my files. It's to let AI help with the tedious decisions while ordinary code handles the operations that need predictable behavior.&lt;/p&gt;

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

&lt;p&gt;Here are screenshots from my actual local runs.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Starting with a cluttered folder
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftdll9i9w12nenggqk33f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftdll9i9w12nenggqk33f.png" alt="PowerShell listing of the SlothDesk demo folder before organization, containing sample documents, images, archives, and an installer." width="799" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Checking the local AI setup and previewing changes
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjm5sefx7h47l4f0sdytp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjm5sefx7h47l4f0sdytp.png" alt="SlothDesk doctor and dry-run output confirming that Ollama and Qwen2.5 1.5B are available and showing 11 planned file moves without applying them." width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Applying the organization plan
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr5dhau50a695xpj2ukdi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr5dhau50a695xpj2ukdi.png" alt="SlothDesk CLI output showing 11 files moved into categorized folders such as Study, Finance, Personal, Images, Work, Medical, Identity, Installers, and Archives." width="800" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Checking the resulting files
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuqmoww2a1y2spb2p0t1a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuqmoww2a1y2spb2p0t1a.png" alt="PowerShell listing of the organized SlothDesk output, showing files grouped into their destination category folders." width="800" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Reviewing statistics and the run report
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fire69040fow8e5hyclqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fire69040fow8e5hyclqd.png" alt="SlothDesk statistics and report showing 11 files moved, their destination categories, the organization method, confidence values, and an estimated six minutes saved." width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Testing the undo workflow
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdc5qpb0vyjfdd0625it5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdc5qpb0vyjfdd0625it5.png" alt="SlothDesk undo command reporting that all 11 file movements were reversed and showing the restored files in the demo folder." width="799" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Evaluating the local model
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F60l0a9aik7dna97tqvny.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F60l0a9aik7dna97tqvny.png" alt="SlothDesk evaluation comparison for Qwen2.5 1.5B, showing 83 percent development-set accuracy, 75 percent held-out accuracy, inference time, and prompt-injection evaluation results." width="800" height="91"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These screenshots show the workflow from a folder of unsorted files to an applied organization plan, along with the evaluation and recovery commands.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/kvijay0611/slothdesk" rel="noopener noreferrer"&gt;https://github.com/kvijay0611/slothdesk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the Python implementation, automated tests, configuration examples, evaluation code, and documentation. The project is released under the MIT License.&lt;/p&gt;

&lt;p&gt;I welcome feedback, bug reports, and contributions.&lt;/p&gt;

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

&lt;p&gt;I built SlothDesk in Python, with Ollama providing the local model runtime and Qwen2.5 1.5B handling the language-based categorization tasks.&lt;/p&gt;

&lt;p&gt;The application combines several pieces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python:&lt;/strong&gt; File discovery, content previews, categorization workflow, validation, file movement, and history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama:&lt;/strong&gt; Runs the language model locally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qwen2.5 1.5B:&lt;/strong&gt; Provides the model used in my local demonstration and evaluation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PyPDF:&lt;/strong&gt; Supports PDF text extraction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OCR support:&lt;/strong&gt; An optional local OCR path for scanned documents and images containing readable text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated tests:&lt;/strong&gt; Check important behavior, including filesystem operations, error handling, and safety-related edge cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also built a small evaluation harness because a model that works for a few examples isn't necessarily reliable across different documents.&lt;/p&gt;

&lt;p&gt;In my displayed evaluation run, Qwen2.5 1.5B achieved &lt;strong&gt;83% accuracy on the development set and 75% on the held-out set&lt;/strong&gt;. The held-out set is important because it provides a check on examples that weren't used during prompt tuning.&lt;/p&gt;

&lt;p&gt;These results come from a small synthetic evaluation set, so I treat them as an indication of performance rather than a guarantee of accuracy on every real-world folder.&lt;/p&gt;

&lt;p&gt;The tests and evaluation also taught me an important lesson: a model can sound confident and still make the wrong classification. That's why I designed the workflow around previews, explicit application of changes, history, and undo instead of treating the model's output as unquestionable.&lt;/p&gt;

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

&lt;p&gt;For a tool that may inspect invoices, personal documents, assignments, or other private files, &lt;strong&gt;where the AI runs matters just as much as what it can do&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Using an open-weight model through Ollama gives SlothDesk more control over the inference environment. After the model and dependencies are downloaded, the core workflow can run locally without sending file contents to a hosted AI inference API.&lt;/p&gt;

&lt;p&gt;Open innovation also makes experimentation possible. I can compare models, measure their accuracy on the same evaluation set, adjust the prompts, and inspect the implementation without being locked into one proprietary inference service.&lt;/p&gt;

&lt;p&gt;There are trade-offs. A small model is practical for a modest laptop, but its accuracy is limited. My evaluation results demonstrate that limitation rather than hiding it.&lt;/p&gt;

&lt;p&gt;I also evaluated prompt-injection behavior, and my current result shows that this area still needs improvement. I don't want to claim that the model is immune to malicious instructions. Instead, SlothDesk relies on a constrained workflow, deterministic validation, preview-before-apply behavior, and reversible file operations as additional safeguards.&lt;/p&gt;

&lt;p&gt;For me, open innovation means having the freedom to experiment, measure weaknesses, improve the implementation, and let other developers inspect and build on the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;I don't have a DevRelay session link to include in this submission, so I'm leaving this section out for now.&lt;/p&gt;

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

&lt;p&gt;In my demo run, SlothDesk organized &lt;strong&gt;11 files&lt;/strong&gt; into categories including Study, Finance, Work, Medical, Personal, Images, Identity, Installers, and Archives.&lt;/p&gt;

&lt;p&gt;The CLI estimated approximately &lt;strong&gt;six minutes saved&lt;/strong&gt;, based on its default assumption of 30 seconds per file. This is an estimate, not a measured time study, but it illustrates the repetitive work the project is designed to reduce.&lt;/p&gt;

&lt;p&gt;The bigger payoff is that I can review an organization plan, apply it, inspect what happened, and undo the changes when needed.&lt;/p&gt;

&lt;p&gt;I'd rather spend my time on meaningful work than repeatedly deciding where every downloaded file belongs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SlothDesk: let the computer handle the sorting, while you take it slow.&lt;/strong&gt; 🦥&lt;/p&gt;

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

&lt;p&gt;This project was built 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;/p&gt;

&lt;p&gt;I'll list any additional partner prize categories only if the project meets their specific requirements.&lt;/p&gt;

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