DEV Community

Aniruddha Shirke
Aniruddha Shirke

Posted on

SlothDesk: A Local-First AI Assistant for Digital Chores

Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥

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

What I Built

SlothDesk is a local-first assistant for small digital chores. It organizes a folder into useful categories, summarizes text-based documents, and turns pasted notes into checklists or practical plans.

For file cleanup, SlothDesk scans a selected folder and prepares a preview showing each file’s suggested category and destination. Nothing moves until the user reviews the plan and confirms. It avoids overwriting existing files and keeps an undo manifest for the latest organization run.

SlothDesk’s dark interface shows Gemma 3 4B ready, with a 705-file organization plan prepared for review. The plan lists suggested folders and destinations before any files are moved

The file preview lists names, suggested categories, destinations, and classification reasons. The user can review the plan and confirm or discard it before moving files.

The document summary screen has a PDF selected. A side panel shows the active local Gemma model, accepted file types, and upload size limit.

The generated summary continues with model results, an energy-prediction note, and the project conclusion.

The About tab describes SlothDesk’s file organization, document summary, local AI helper, undo support, and current limitations.

Code

🦥 SlothDesk

Your local-first AI helper for boring digital chores.

SlothDesk is a Streamlit app that organizes files, summarizes text-based documents, and turns pasted notes into practical checklists. AI features use a local Ollama model, so your document contents are not intentionally sent to a hosted model API.

Features

  • Preview-first file organization — sort files into folders by type and review every proposed move before anything changes.
  • Optional local AI classification — ask Ollama to classify files with unknown extensions using the filename only.
  • Document summaries — summarize text-based PDF, TXT, and Markdown files.
  • AI productivity helper — turn pasted notes or instructions into concise plans, checklists, and summaries.
  • Undo support — save a manifest for the latest organization run and restore moved files where possible.
  • Privacy-first workflow — file operations stay on your computer and Ollama runs locally.

Architecture

Main flow: Streamlit UI (app.py) -> Application services (src/) ->…

How I Built It

SlothDesk is a Python and Streamlit app. File categories are assigned with extension rules first; optional AI classification is used only for unknown file types and sends the filename, not the file contents.

For document summaries and the notes helper, SlothDesk sends extracted text to a local Ollama service using Gemma 3 4B. PDF text extraction uses pypdf. The main flow is:

Folder → scan and classify → preview plan → user confirms → move files → save undo manifest
PDF/TXT/Markdown → extract text → local Gemma through Ollama → summary
Enter fullscreen mode Exit fullscreen mode

Keeping File Cleanup Safe

SlothDesk separates planning from action. First it scans the selected folder and creates a destination for each file. The preview shows the filename, suggested category, destination, and reason. I can review the plan before confirming any moves.

The organizer skips hidden files, avoids overwriting existing files, and records the latest run so it can attempt to undo those moves. This makes the workflow useful for real folders where I want automation but still need control over what changes.

Where Gemma Fits

Most files are sorted with built-in extension rules, which keeps routine classification fast and predictable. If I enable AI classification, Gemma is only asked to classify unknown file types using the filename; it does not receive those files’ contents.

For document summaries and the notes helper, SlothDesk sends extracted text to Gemma through my local Ollama service. That keeps inference on my machine, while letting me choose a different installed model if I want to change the setup.

What I Learned

Local inference makes privacy easier to reason about, but response time depends on the machine and whether the model is already loaded. While trying a real PDF, I hit the app’s original two-minute request timeout. I raised the timeout and improved the message shown if a request still takes too long.

I haven’t measured a specific number of minutes saved, so I’m focusing on the practical reduction in steps: scan, review one plan, and confirm instead of sorting each file manually.

Why Does Open Innovation Matter?

Running an open-weight model locally keeps document text on the user’s computer instead of sending it to a hosted model API. Once Ollama and the model are installed, the AI features can run against the local service without depending on a cloud inference provider. The model setting is configurable, and the project code can be inspected and changed.

Open tools also let people adapt the workflow to their own folders and privacy needs, rather than handing their files to a closed service just to sort or summarize them.

The Lazy Payoff

A folder that would take repeated manual sorting can be scanned into one reviewable plan. I can check the proposed destinations once, confirm the moves, and use the saved manifest to undo the latest run if needed. I haven’t measured a time-saving figure yet, so I’m describing the reduced steps rather than claiming a number.

Prize Categories

  • Best Use of Gemma

Top comments (0)