<?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: Tehreem Shahid</title>
    <description>The latest articles on DEV Community by Tehreem Shahid (@tehreem_shahid_59dd5d4f20).</description>
    <link>https://dev.to/tehreem_shahid_59dd5d4f20</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%2F4117043%2F26815e94-8f2e-4ebb-9a7f-99ee5c8334d6.jpg</url>
      <title>DEV Community: Tehreem Shahid</title>
      <link>https://dev.to/tehreem_shahid_59dd5d4f20</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tehreem_shahid_59dd5d4f20"/>
    <language>en</language>
    <item>
      <title>SlothClerk: A Slow-and-Steady Local AI Companion for Everyday Tasks</title>
      <dc:creator>Tehreem Shahid</dc:creator>
      <pubDate>Sun, 25 Oct 2026 11:29:56 +0000</pubDate>
      <link>https://dev.to/tehreem_shahid_59dd5d4f20/slothclerk-a-slow-and-steady-local-ai-companion-for-everyday-tasks-470a</link>
      <guid>https://dev.to/tehreem_shahid_59dd5d4f20/slothclerk-a-slow-and-steady-local-ai-companion-for-everyday-tasks-470a</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady.&lt;/p&gt;

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

&lt;p&gt;Sloths have life completely figured out: they move at their own pace, conserve their energy, and never waste effort doing what can be left alone.&lt;/p&gt;

&lt;p&gt;Yet, millions of developers, creators, and professionals spend their weekends doing one of the most dread-inducing chores in existence: &lt;strong&gt;sorting out the terrifying chaotic wasteland of their &lt;code&gt;~/Downloads&lt;/code&gt; and &lt;code&gt;~/Desktop&lt;/code&gt; folders&lt;/strong&gt;. Files like &lt;code&gt;invoice_2024_10_aws_bill.txt&lt;/code&gt;, &lt;code&gt;Screen_Shot_2024-10-20_at_11.45.22_AM.png&lt;/code&gt;, &lt;code&gt;agreement_consulting_draft_final_v2(1).txt&lt;/code&gt;, cryptic code dumps, and tax statements sit there for months because manual sorting is tedious and exhausting. Whether you're a freelance designer with 400 unsorted downloads, a developer juggling side-project code dumps, or anyone who has ever whispered "I'll organize it later" — this is for you.&lt;/p&gt;

&lt;p&gt;To channel our inner sloth and reward pure, unadulterated laziness, I built &lt;strong&gt;SlothClerk: The Slow and Steady Local AI Desktop &amp;amp; File Tidier&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SlothClerk&lt;/strong&gt; is a local-first automation agent that runs open-weight AI models (such as &lt;strong&gt;Llama 3.2&lt;/strong&gt; and &lt;strong&gt;Qwen 2.5&lt;/strong&gt;) on your personal machine. After a user explicitly approves a folder, it periodically organizes files and quarantines only known temporary/cache artifacts, then serves a &lt;strong&gt;"Morning Sloth Digest"&lt;/strong&gt; detailing the work.&lt;/p&gt;

&lt;p&gt;Best of all: with 1-click &lt;strong&gt;Sloth Undo&lt;/strong&gt;, you never have to worry about losing a file—every single move is tracked in a local transaction ledger.&lt;/p&gt;




&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🦥 Zero-Effort Smart File Organization:&lt;/strong&gt; Inspects file content previews, dates, and metadata to categorize files into &lt;code&gt;Finance &amp;amp; Invoices&lt;/code&gt;, &lt;code&gt;Legal &amp;amp; Contracts&lt;/code&gt;, &lt;code&gt;Development &amp;amp; Code&lt;/code&gt;, &lt;code&gt;Personal &amp;amp; Notes&lt;/code&gt;, &lt;code&gt;Media &amp;amp; Images&lt;/code&gt;, and &lt;code&gt;Archives &amp;amp; Temporary Clutter&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🧠 Local Open-Weight Inference:&lt;/strong&gt; Powered by open-weight models via Ollama (&lt;code&gt;llama3.2&lt;/code&gt;, &lt;code&gt;qwen2.5&lt;/code&gt;, &lt;code&gt;gemma2&lt;/code&gt;, &lt;code&gt;phi3&lt;/code&gt;) with strict JSON schema parsing and a built-in offline heuristic fallback engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;💬 Chat Catch-Up:&lt;/strong&gt; Analyze a selected local chat export, or receive new inbound WhatsApp Business messages through Meta's signed webhook. Local analysis reports a two-line topic/update summary, mood estimate, incidents, and time-sensitive tasks. Gmail and Instagram are not connected.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🔐 Contact allowlist:&lt;/strong&gt; The user explicitly approves WhatsApp sender numbers; incoming messages from other senders are discarded before storage. The integration is read-only and never sends, edits, deletes, or forwards messages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🥕 Fridge Photo Grocery Suggestions:&lt;/strong&gt; Submit a local JPEG, PNG, or WebP photo to an installed Ollama vision model for candidate grocery suggestions. Review the model's suggestions before shopping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🌙 Offline Wind-Down Companion:&lt;/strong&gt; Generate a gentle bedtime story with local Ollama or an offline fallback, or create a short MP3 soundscape locally with &lt;code&gt;lameenc&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🗂️ Bounded Automated File Tidying:&lt;/strong&gt; The local scheduler processes only user-approved folders every five minutes. It quarantines only deterministic temporary/cache patterns for 30 days and records a warning at least 24 hours before permanent removal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;☕ The Morning Sloth Digest:&lt;/strong&gt; Summarizes all overnight organizational accomplishments into a humorous 2-line sloth report, calculates "Lazy Minutes Saved", and shares sloth philosophical wisdom.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🛡️ Protected Rules &amp;amp; Recovery:&lt;/strong&gt; &lt;code&gt;rules.md&lt;/code&gt;, system paths, executable files, source-control trees, and symbolic links are protected. Quarantined files can be restored during the retention window.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🖥️ Beautiful Web Dashboard &amp;amp; Unified CLI:&lt;/strong&gt; Includes a clean, responsive single-page dashboard with real-time model status detection, plus CLI commands (&lt;code&gt;serve&lt;/code&gt;, &lt;code&gt;scan&lt;/code&gt;, &lt;code&gt;tidy&lt;/code&gt;, &lt;code&gt;undo&lt;/code&gt;, &lt;code&gt;daemon&lt;/code&gt;, &lt;code&gt;demo&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;📦 Minimal Dependencies:&lt;/strong&gt; Core automation uses Python's standard library; &lt;code&gt;lameenc&lt;/code&gt; is used only for MP3 output.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Demo &amp;amp; Screenshots
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/tehreemshahid2025-debug/sloth-clerk" rel="noopener noreferrer"&gt;SlothClerk on GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Run the Web Dashboard Locally
&lt;/h3&gt;

&lt;p&gt;From the repository directory, start the server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python sloth_clerk.py serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open &lt;a href="http://127.0.0.1:8080" rel="noopener noreferrer"&gt;http://127.0.0.1:8080&lt;/a&gt; in your browser. The dashboard runs locally; it is not a hosted live demo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example CLI Output
&lt;/h3&gt;

&lt;p&gt;The output below is illustrative; file counts, categories, and model name vary by run. The screenshots show the web dashboard in offline heuristic mode.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  ___ _       _   _      ___ _         _   
 / __| |___ _| |_| |_   / __| |___ _ _| |__
 \__ \ / _ \  _| ' \ \ | (__| / -_) '_| / /
 |___/_\___/\__|_||_| \___|_|\___|_| |_\_\ 
  🦥 SLOW AND STEADY LOCAL AI DESKTOP CLERK
  Rewarding Laziness with Local Open-Weight Models

[TIDYING COMPLETED]
Status: 8 files organized into categories.

============================================================
🦥 Morning Sloth Report: 8 Files Tended
============================================================
While you conserved your energy, llama3.2 quietly tidied 8 files 
(2 in Finance &amp;amp; Invoices, 1 in Development &amp;amp; Code, 1 in Archives &amp;amp; Backups).
You saved approximately 20 minutes of tedious drag-and-drop chores.

Sloth Wisdom: "Never do today what a local open-weight model can do for you while you nap."
============================================================
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Web CLI Demo Screenshots
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Dashboard overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![SlothClerk dashboard overview](&lt;br&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%2Fozv8x4pl75ia9po0za4w.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%2Fozv8x4pl75ia9po0za4w.png" alt=" " width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;File organization and safety controls&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![File organization controls](&lt;br&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%2Fbao66rckmyxbhjhi3v03.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%2Fbao66rckmyxbhjhi3v03.png" alt=" " width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI provider and behavior settings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![AI provider settings](&lt;br&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%2Fpvdimqfbipf37pbnbpus.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%2Fpvdimqfbipf37pbnbpus.png" alt=" " width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local workbench and conversation reading&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![Local workbench and chat analysis](&lt;br&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%2F79j88b2qi7in62r0pvvt.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%2F79j88b2qi7in62r0pvvt.png" alt=" " width="799" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WhatsApp Business inbox&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![WhatsApp Business inbox](&lt;br&gt;
![ ](&lt;br&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%2Fihyucducyi5rtk74nirm.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%2Fihyucducyi5rtk74nirm.png" alt=" " width="799" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Offline night notes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;![Offline night notes and generated story](&lt;br&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%2Fmax9lcvuvzzkvmhua7k7.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%2Fmax9lcvuvzzkvmhua7k7.png" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Built It &amp;amp; Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;SlothClerk was designed from day one around &lt;strong&gt;local-first open innovation&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Open-Source Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open-Weight Models:&lt;/strong&gt; Llama 3.2 (Meta), Qwen 2.5 (Alibaba), Gemma 2 (Google), Phi-3 (Microsoft)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Model Runtime:&lt;/strong&gt; &lt;a href="https://ollama.com" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; via local REST API (&lt;code&gt;http://localhost:11434&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend &amp;amp; Core Engine:&lt;/strong&gt; Python 3 standard library plus &lt;code&gt;lameenc&lt;/code&gt; for MP3 export; the verified WhatsApp webhook uses HMAC signatures and stores messages in local SQLite.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security &amp;amp; automation:&lt;/strong&gt; Loopback-only control APIs, exact contact and folder allowlists, local-only Ollama requests with proxy use disabled, reversible quarantine, and explicit per-session task-memory consent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture reference:&lt;/strong&gt; &lt;a href="//./ARCHITECTURE.md"&gt;&lt;code&gt;ARCHITECTURE.md&lt;/code&gt;&lt;/a&gt;; protected policy: &lt;a href="//./rules.md"&gt;&lt;code&gt;rules.md&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend Dashboard:&lt;/strong&gt; Modern responsive single-page interface with CSS grid, custom sloth animations, and dynamic state management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing:&lt;/strong&gt; Python &lt;code&gt;unittest&lt;/code&gt; suite testing file inspection, heuristic fallback, transaction rollbacks, and digest metrics.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Open vs. Closed?
&lt;/h3&gt;

&lt;p&gt;For an autonomous background desktop organizer, &lt;strong&gt;closed-source cloud APIs (like OpenAI or Anthropic) are completely unviable&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Private Local File Processing:&lt;/strong&gt;
Your downloads folder holds sensitive tax returns (W-2s), banking receipts, employment contracts, personal journals, and family photos. File contents are analyzed locally rather than uploaded to a third-party AI API. If the optional WhatsApp Business integration is configured, Meta delivers new messages to the public webhook and the app stores and analyzes them locally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Paid AI Inference API Required:&lt;/strong&gt;
If you have a background daemon constantly monitoring a folder or inbox, commercial AI APIs charge for tokens, metadata prompts, and retries. Open-weight models run locally; Meta may separately charge for WhatsApp Business API usage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline File-Workflow Independence:&lt;/strong&gt;
File organization, extractive chat analysis, and audio synthesis work offline. Receiving WhatsApp messages requires a public HTTPS webhook and network access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization &amp;amp; Fine-Tuning Freedom:&lt;/strong&gt;
Because these models are open-weight, power users can create a custom &lt;code&gt;Modelfile&lt;/code&gt; fine-tuned on their specific file naming conventions and folder taxonomies — something impossible with closed APIs that offer no model customization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency &amp;amp; Auditing:&lt;/strong&gt;
With open weights, you can inspect exactly how the model classifies your files, audit for bias in categorization, and verify no sensitive content is being silently logged or exfiltrated — guarantees no closed API can offer.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  The Lazy Payoff (How it Saves Time)
&lt;/h2&gt;

&lt;p&gt;Manual file management is death by a thousand papercuts. Renaming a cryptic invoice, looking inside it to check the date, creating a &lt;code&gt;Finance/2024&lt;/code&gt; folder, and dragging it takes an average of &lt;strong&gt;2 to 3 minutes per file&lt;/strong&gt;. For a typical downloads folder with 50 accumulated items, that is &lt;strong&gt;over 2 hours of painful, soul-crushing manual work&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;You click &lt;strong&gt;"🎲 Generate Demo Mess"&lt;/strong&gt; (or point to &lt;code&gt;~/Downloads&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;You click &lt;strong&gt;"🦥 Scan &amp;amp; Plan Laziness"&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You review the preview and click &lt;strong&gt;"✅ Apply Moves &amp;amp; Go Back to Nap"&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Total effort spent: &lt;strong&gt;10 seconds&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SlothClerk gives you back your hours and keeps your workspace peaceful and clutter-free, so you can spend your energy where it truly matters: resting like a sloth. 🦥&lt;/p&gt;

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