DEV Community

Cover image for Sloth Gist: drop in audio, video or text and get the gist, all on your own laptop
Vrushali
Vrushali Subscriber

Posted on

Sloth Gist: drop in audio, video or text and get the gist, all on your own laptop

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

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

What I Built

I have a pile of things I mean to get to: voice notes, meeting recordings, lecture videos, long articles, exported chats. I never get to them, because each one costs 10 to 60 minutes I don't have.

Sloth Gist does the slow part for me. I paste the path to a recording or a folder of them (or paste some text), press "Summarize while I nap", and come back to a short digest:

  • a one-line summary of each item
  • key points (3 to 6 bullets) when I want more than a line
  • a to-do checklist with anything that needs a reply or a date

It works on audio (voice notes, calls, meetings, podcasts), video (only the soundtrack is read) and plain text (.txt, .md or pasted). Summaries are written in the language of the input, with English, Hindi and Marathi built in and auto-detect by default.

Everything runs on my computer. Nothing is uploaded.

Demo

I pointed Sloth Gist at my screen-recordings folder (five .mp4 demos, about 6 minutes of audio in total) and then pasted a Jetpack Compose meeting note.

1. The Drop Zone. Paste a folder or file path, or switch to the Text tab.

Drop Zone

2. Settings. Only Whisper models already on the laptop are offered, and the AI model list comes from local Ollama.

Settings

3. A folder of recordings, summary plus key points.

Recordings form

4. The sloth inches along while it works.

Progress

5. Text works too, with no Whisper step.

Text tab with Jetpack Compose notes

6. The digest. The Compose note became one summary line, five key points and a to-do for Rahul's Friday deadline. Each video got its own card.

Digest

Code

GitHub logo vrush1588 / sloth_gist

Local-first audio, video and text summarizer. Drop recordings, meetings or lectures and get a short summary, key points and to-dos, all on your own computer with open-weight models (Whisper + Ollama + Gemma). Nothing is uploaded.

Sloth Gist 🦥

Drop in audio, video or text and get the gist, all on your own laptop.

Sloth Gist transcribes speech with faster-whisper, or reads pasted text and .txt/.md files, then turns it into a short summary, key points and to-dos with a local Ollama model. Nothing leaves your computer. Video frames are not analyzed.

Screenshot: Add a screenshot of the Sloth Gist app here.

Why open models?

  • Works offline: download models once, then keep your recordings on-device.
  • Private: no cloud transcription or summaries; transcripts are not saved.
  • Swappable: choose a Whisper size and any model available in local Ollama.
  • Free to run: open models have no per-minute or per-summary API fees. Your computer supplies the compute.

Quick start

  1. Install Ollama and pull the default summary model:

    ollama pull gemma3:4b
    Enter fullscreen mode Exit fullscreen mode
  2. Install the Python dependency:

    python -m pip install -r requirements.txt
    Enter fullscreen mode Exit fullscreen mode
  3. Start the web app:

    python -m sloth_gist.server
    Enter fullscreen mode Exit fullscreen mode

    …

Python 3.11+, standard library only on the server side, plus faster-whisper. Summaries come from a local Ollama. The interface is one offline web page with no CDN, no web fonts and no external requests.

How I Built It

The whole pipeline is open-weight models on a laptop:

  1. Speech to text: faster-whisper (Whisper) transcribes audio and the soundtrack of video files. Transcripts stay in memory and are never written to disk.
  2. Summaries and key points: gemma3:4b served by Ollama. Any Ollama model works; Gemma models are listed first because they handle Hindi and Marathi better than most small models.
  3. Long recordings: a one-hour lecture is too long for a small model in one pass, so the text is split into 5,000-character chunks, each chunk is summarized, and those summaries are combined into the final gist. Key points and to-dos are merged and de-duplicated across chunks.
  4. Local server and UI: a tiny server that only binds to 127.0.0.1, and a calm cream-and-sage page (designed in Stitch, then simplified and rebuilt to work fully offline). While it works, a sloth slowly inches along the progress bar.

Privacy is built in, not promised:

  • The app refuses to talk to any model server that isn't on the same machine. It also refuses redirects away from localhost and ignores proxy settings.
  • The app never downloads anything while it runs. You fetch the models once (ollama pull gemma3:4b plus a one-line Whisper download), and after that it works with Wi-Fi off.
  • Summaries are paraphrased: any line that copies six or more words in a row from the original is dropped, so the digest doesn't leak whole sentences.
  • Only the short digest is saved, with file permissions set so only my user account can read it, and a Wipe digest button deletes it.
  • Original files are only read, never copied, moved or changed.

Why Open Innovation Matters Here

This project doesn't make sense with a closed model, because the input is the most private stuff people have: meetings, calls, family voice notes, work documents.

  • It keeps recordings off servers I don't control. With a cloud API I would have to upload hours of audio. Here the audio never leaves the machine, and anyone can check by switching Wi-Fi off and running a digest.
  • It works with no internet. After a one-time model download, it runs on a plane, in a lecture hall or on a patchy connection.
  • I can swap models. Whisper tiny through medium trades speed for accuracy, and any Ollama model can write the summary. That kind of testing is easy with open weights and awkward or expensive with a closed API.
  • It costs nothing to run. No API key, no per-minute transcription bill, no usage limits. Processing a long backlog costs only electricity and patience, which suits the slow-and-steady theme.
  • I control the behavior. I can change the prompt, the chunk size or the output style without waiting for a vendor.

One note on honesty: Whisper is MIT licensed, but some models (Gemma, Llama) are open-weight under their own license terms, not standard open-source licenses. My code is MIT. The models keep their own licenses.

Where It Worked Better Than a Closed Approach

  • Privacy by design: zero bytes of audio or text are sent anywhere.
  • Predictable cost: the demo above (about 6 minutes of video plus a 300-word note) cost nothing, and a backlog of hours would cost nothing too.
  • Good enough on small hardware: the demo ran on CPU with the small Whisper base model and a 4B summary model, and still produced useful summaries, key points and to-dos.

Honest Limits

  • You download the models once, by hand, while online.
  • Small models make small-model mistakes. They are good for the gist, not a legal record, so I keep the original recording. In the demo, the Compose note had two follow-ups with dates, and the digest caught only one of them. Whisper base also misheard a word in one video.
  • If a recording has no clear speech (screen audio or music only), you get "No speech detected" instead of a summary.
  • It reads only what is said or written. For video it doesn't look at the frames.
  • It's CPU-friendly but not instant: a long recording takes a while, which is the point.

What's Next

A watch-folder mode so new recordings get summarized overnight, and a morning digest file waiting when I wake up.

Thanks for reading, and for the sloth. 🦥

Top comments (0)