DEV Community

Tehreem Shahid
Tehreem Shahid

Posted on

SlothClerk: A Slow-and-Steady Local AI Companion for Everyday Tasks

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady.

What I Built

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.

Yet, millions of developers, creators, and professionals spend their weekends doing one of the most dread-inducing chores in existence: sorting out the terrifying chaotic wasteland of their ~/Downloads and ~/Desktop folders. Files like invoice_2024_10_aws_bill.txt, Screen_Shot_2024-10-20_at_11.45.22_AM.png, agreement_consulting_draft_final_v2(1).txt, 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.

To channel our inner sloth and reward pure, unadulterated laziness, I built SlothClerk: The Slow and Steady Local AI Desktop & File Tidier.

SlothClerk is a local-first automation agent that runs open-weight AI models (such as Llama 3.2 and Qwen 2.5) 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 "Morning Sloth Digest" detailing the work.

Best of all: with 1-click Sloth Undo, you never have to worry about losing a fileβ€”every single move is tracked in a local transaction ledger.


Key Features

  • πŸ¦₯ Zero-Effort Smart File Organization: Inspects file content previews, dates, and metadata to categorize files into Finance & Invoices, Legal & Contracts, Development & Code, Personal & Notes, Media & Images, and Archives & Temporary Clutter.
  • 🧠 Local Open-Weight Inference: Powered by open-weight models via Ollama (llama3.2, qwen2.5, gemma2, phi3) with strict JSON schema parsing and a built-in offline heuristic fallback engine.
  • πŸ’¬ Chat Catch-Up: 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.
  • πŸ” Contact allowlist: 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.
  • πŸ₯• Fridge Photo Grocery Suggestions: 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.
  • πŸŒ™ Offline Wind-Down Companion: Generate a gentle bedtime story with local Ollama or an offline fallback, or create a short MP3 soundscape locally with lameenc.
  • πŸ—‚οΈ Bounded Automated File Tidying: 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.
  • β˜• The Morning Sloth Digest: Summarizes all overnight organizational accomplishments into a humorous 2-line sloth report, calculates "Lazy Minutes Saved", and shares sloth philosophical wisdom.
  • πŸ›‘οΈ Protected Rules & Recovery: rules.md, system paths, executable files, source-control trees, and symbolic links are protected. Quarantined files can be restored during the retention window.
  • πŸ–₯️ Beautiful Web Dashboard & Unified CLI: Includes a clean, responsive single-page dashboard with real-time model status detection, plus CLI commands (serve, scan, tidy, undo, daemon, demo).
  • πŸ“¦ Minimal Dependencies: Core automation uses Python's standard library; lameenc is used only for MP3 output.

Demo & Screenshots

Run the Web Dashboard Locally

From the repository directory, start the server:

python sloth_clerk.py serve
Enter fullscreen mode Exit fullscreen mode

Then open http://127.0.0.1:8080 in your browser. The dashboard runs locally; it is not a hosted live demo.

Example CLI Output

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

  ___ _       _   _      ___ _         _   
 / __| |___ _| |_| |_   / __| |___ _ _| |__
 \__ \ / _ \  _| ' \ \ | (__| / -_) '_| / /
 |___/_\___/\__|_||_| \___|_|\___|_| |_\_\ 
  πŸ¦₯ 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 & Invoices, 1 in Development & Code, 1 in Archives & 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."
============================================================
Enter fullscreen mode Exit fullscreen mode

Web CLI Demo Screenshots

Dashboard overview

![SlothClerk dashboard overview](

File organization and safety controls

![File organization controls](

AI provider and behavior settings

![AI provider settings](

Local workbench and conversation reading

![Local workbench and chat analysis](

WhatsApp Business inbox

![WhatsApp Business inbox](
![ ](

Offline night notes

![Offline night notes and generated story](


How I Built It & Why Open Innovation Matters

SlothClerk was designed from day one around local-first open innovation.

The Open-Source Tech Stack

  • Open-Weight Models: Llama 3.2 (Meta), Qwen 2.5 (Alibaba), Gemma 2 (Google), Phi-3 (Microsoft)
  • Local Model Runtime: Ollama via local REST API (http://localhost:11434)
  • Backend & Core Engine: Python 3 standard library plus lameenc for MP3 export; the verified WhatsApp webhook uses HMAC signatures and stores messages in local SQLite.
  • Security & automation: 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.
  • Architecture reference: ARCHITECTURE.md; protected policy: rules.md.
  • Frontend Dashboard: Modern responsive single-page interface with CSS grid, custom sloth animations, and dynamic state management.
  • Testing: Python unittest suite testing file inspection, heuristic fallback, transaction rollbacks, and digest metrics.

Why Open vs. Closed?

For an autonomous background desktop organizer, closed-source cloud APIs (like OpenAI or Anthropic) are completely unviable:

  1. Private Local File Processing: 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.
  2. No Paid AI Inference API Required: 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.
  3. Offline File-Workflow Independence: File organization, extractive chat analysis, and audio synthesis work offline. Receiving WhatsApp messages requires a public HTTPS webhook and network access.
  4. Customization & Fine-Tuning Freedom: Because these models are open-weight, power users can create a custom Modelfile fine-tuned on their specific file naming conventions and folder taxonomies β€” something impossible with closed APIs that offer no model customization.
  5. Transparency & Auditing: 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.

The Lazy Payoff (How it Saves Time)

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

With SlothClerk:

  • You click "🎲 Generate Demo Mess" (or point to ~/Downloads).
  • You click "πŸ¦₯ Scan & Plan Laziness".
  • You review the preview and click "βœ… Apply Moves & Go Back to Nap".
  • Total effort spent: 10 seconds.

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. πŸ¦₯

Top comments (0)