DEV Community

Cover image for 🦥 SnapSloth: For Every Screenshot You Said "Baad Mai" To
vimla
vimla

Posted on AI-assisted

🦥 SnapSloth: For Every Screenshot You Said "Baad Mai" To

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

SnapSloth 🦥: for every screenshot you said "baad mai" to.

📴 100% offline. Runs on my laptop with Wi-Fi off. No cloud, no API key, no screenshot ever leaves the machine.

I had 367 screenshots named Screenshot from 2026-08-30 23-51-07.png. Fee notices, UPI
requests, notes to myself, an Aadhaar photo. Unsearchable, forgotten, and some of them risky.

SnapSloth fixes that while I sleep. A local open-weight model reads every screenshot, then:

  • 🗂️ sorts and renames them (sorted/notes_or_study/2026-08-30_mqtt-vs-http-for-iot.png)
  • 🔎 makes them searchable by what's inside, text and picture
  • ✅ pulls out what I still have to do
  • ⚠️ flags risky ones (OTPs, UPI, Aadhaar/PAN, passwords), values masked
  • ☕ leaves a morning report

SnapSloth

Demo

🎥 Watch the demo video

My favourite moment: at 1:22 AM I sent myself "tomo ca and need to take concession for railway"
and forgot about it. Next morning, the report said:

→ Take concession for railway tomorrow

Code

GitHub logo vimla01 / snapsloth

For every screenshot you said “baad mai” to.

🦥 SnapSloth

For every screenshot you said "baad mai" to.

Sorts, searches and safety-checks your screenshots with a local AI model, while you sleep.

Go Model Offline License: MIT

Setup · Using the app · Lazy mode · Privacy

😩 The problem

You take a screenshot because you'll deal with it "baad mai". A fee notice, a UPI payment, a train ticket, an error to fix, a note to yourself. Two months later there are 367 of them, all named Screenshot from 2026-08-30 23-51-07.png, and:

  • You can't find anything. Your file manager searches names, and every name is a timestamp.
  • You forget what mattered. The railway concession, the money request, the hostel fee deadline buried under memes.
  • Some of them are a risk. OTPs, UPI IDs, Aadhaar and bank details, sitting in a folder that syncs and gets shared.
  • Cloud AI isn't the fix. Uploading your Aadhaar to someone's server to organise it is…

One-line install for Linux, macOS and Windows is in the README. Then snapsloth ui.

How I Built It

  • Gemma 4 E4B (open-weight, vision) running locally through Ollama, on a laptop with no GPU.
  • Go, standard library only: one binary with a CLI and a local web UI.
  • Always-valid JSON: Ollama's format takes a JSON schema, so every answer has a category, title, key text, to-do and risk flags.
  • Crash-proof: files are tracked by SHA-256 and saved after every image. Stop anytime, it resumes.
  • Safety net: regex with Luhn/Verhoeff checksums double-checks the model, and every sensitive value is masked before it's saved.
  • Never destructive: sorting only renames, never overwrites, and Undo puts everything back.

Making a CPU laptop fast enough:

trick result
shrink screenshots to 1024 px 932 → 264 image tokens per screenshot
instructions in the system prompt cached by Ollama instead of re-read every time
ask for key words, not every word less to generate

4+ minutes → ~1.5 minutes per screenshot.

Why Does Open Innovation Matter?

  • My data stays mine. OTPs and an Aadhaar card don't belong on someone else's server. It works with Wi-Fi off.
  • Free every night. No API key, no per-image bill.
  • I could tune it. Open weights let me measure image tokens, pick the size and compare model sizes.

The Lazy Payoff

by hand SnapSloth
sort 367 screenshots ~1.5 hours 0 min (overnight)
find one screenshot minutes of scrolling seconds
spot risky ones open all 367 automatic
remember to-dos I didn't 😅 in the morning report

Slow on a CPU, but it runs at 2 AM. My part: zero minutes. 🦥

Prize Categories

Best Use of Gemma: Gemma 4 E4B does all the seeing and reading, locally, tuned for a CPU laptop.

Top comments (0)