This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
The theme was "rewards laziness". So I did the laziest thing I could think of: I spent days building an AI so I would never have to right-click the recycle bin again.
Building her took far longer than the chores will ever take. I know. I'm committed to the bit.
Meet Moss 🦥, a small 3D sloth who lives on my taskbar. I talk, she listens, she thinks, she answers out loud, and when I ask nicely she does the boring stuff.
What she does for me right now:
- Empties the recycle bin. She tells me how many items and how much space first, then waits for a "yes". It's permanent and I have trust issues.
- Takes notes and reads them back. Ask "what did I note today?" and she summarises the day out loud.
- Skips songs (next, previous) and changes the volume ("a little quieter", "a lot louder", mute).
- Keeps a lazy score. Every chore she does gets counted, with an estimate of the time saved, and then she brags:
"That's 11 chores and about 9 minutes today. I'm proud of us."
Rewarding laziness is the whole challenge, so I put it in the product itself. Moss is lazy, proud of it, and keeps receipts.
She is also just a good desktop pet. She sits on my windows, follows my cursor with her eyes, dances when my music plays, and falls asleep if I go quiet for too long. Extremely on theme.
Who gets to be lazier? Me, mostly. And anyone who has ever lost a fight with the Windows volume slider.
Demo
Code
How I Built It
Everything runs on my own PC. No cloud, no API keys, no "your sloth is currently unavailable".
| Job | Open model / tool |
|---|---|
| Ears | Whisper large-v3-turbo |
| Brain | Gemma 4 (e4b) through Ollama |
| Voice | Kokoro-82M, a Japanese girl voice speaking English, because it's adorable |
| Body | Electron + three.js + three-vrm: a see-through, always-on-top window that is click-through everywhere except the sloth |
Credit where it's due: the 3D character is "Zainab-Chan" by mimenn_, from VRoid Hub. I didn't make her and I'm not allowed to redistribute her, so she's not in my repo (the README explains how to download her). The voice, the brain, the chores and the code that moves her are mine.
The part I'm proud of: two brains, one bouncer
Letting an LLM decide everything would be slow, and a little scary. What if it empties the bin because I muttered "I should clean up"?
So Moss works like a club:
- The bouncer (a strict matcher) handles clear commands instantly. "Next song." "Empty the recycle bin." No thinking, no delay.
- The friend who gets you (Gemma) only steps in when something sounds like a command but isn't clear, like "flip to the following song". Gemma has to answer with a JSON verdict (Ollama structured output), so she can't ramble her way into deleting something.
- Everything else is just chat. "Skip the intro" and "what's the next song on that album?" never trigger a chore.
I measured it instead of guessing
I wrote a script that throws 60 different ways of saying each of 9 commands at Moss (540 phrasings), plus 60 normal sentences that must not trigger anything.
| Command | Strict matcher | Strict + Gemma |
|---|---|---|
| recycle bin | 57% | 98% |
| take a note | 67% | 92% |
| next song | 57% | 98% |
| previous song | 58% | 100% |
| volume up | 70% | 85% |
| volume down | 68% | 83% |
| mute | 72% | 87% |
| read my notes | 85% | 93% |
| lazy score | 92% | 92% |
| All commands (540) | 69% | 92% |
| Normal sentences wrongly treated as a command (of 60) | 0 | 1 |
Gemma took Moss from "gets about two thirds of how I talk" to "gets about 9 in 10".
Where she still struggles: volume and mute are the weakest (83 to 87%), and Gemma let one normal sentence through as a command. 1 in 60. I'm reporting it anyway, because a sloth should be honest.
She's careful in other ways too. She only presses the media keys while Spotify is running, so she can't skip my YouTube by accident. The link between her body and her brain is localhost-only and needs a random token.
Why Does Open Innovation Matter?
A sloth who can empty my recycle bin and read my notes is basically a tiny surveillance device with great manners. I did not want her sending my voice, my notes and my file activity to somebody else's server.
Open models made that easy to avoid:
- My voice and notes never leave my PC. Whisper, Gemma and Kokoro all run locally, so privacy is the default, not a setting.
- I could build the "understanding" step around the model. Structured JSON output from a local Gemma is what lets a strict matcher and an LLM work as a team. I could also measure it, rerun it and fix it, which is hard to do with someone else's black box.
- I picked her voice by ear. I auditioned a few Japanese voices and kept my favourite in minutes. No vendor, no sign-up.
- No API bill, no rate limit, no outage. Moss never has a "service unavailable" day. Just regular sloth days.
The Lazy Payoff
Here is how Moss's time savings are counted. I wrote down how long each chore takes me by hand, and she adds them up:
These are estimates, not stopwatch readings. Treat her score as "roughly this lazy". She doesn't claim more.
The real payoff isn't the seconds. It's that I can say "volume down", "next song" or "take a note" without leaving whatever I'm doing, and it just happens.
What's Next: the big lazy idea
Right now every chore in Moss is hand-coded. One chunk of code for the bin, another for notes, another for Spotify. That is... not very lazy. 😅
The plan is to stop writing features one at a time. I want a proper framework so Moss can work with software on her own, and a new chore is something she figures out, not something I write at 2am. Think "Moss, rename these screenshots" or "Moss, clean up my Downloads folder", with her working out how to do it safely, asking before anything permanent, and telling me what she did.
The "ask first before anything permanent" habit from the recycle bin stays exactly as it is.
A word from Moss
"Thank you for reading all the way down here. That was a lot of effort. I'm going to take a nap now."
Prize Categories
Best Use of Gemma. Gemma 4 is the brain of Moss. It is the fallback that understands loose, human phrasing and answers in strict JSON, it writes the spoken summary of my notes, and it does the talking when I just want to chat. In my test it lifted command accuracy from 69% to 92% across 540 phrasings.
Thanks for participating! 🦥
Your turn 🦥
I'd love your take on these:
- What's the one boring PC chore you'd hand to a voice assistant first? I'll build the best answers into Moss next.
- Should she interrupt me when something looks wrong, or wait until I ask? I'm planning a version that notices suspicious processes, and I can't decide.
- What's the least useful thing you've spent days automating? Mine is a recycle bin, music, taking notes, summarizing my notes next thing in morning.
The part I'm least sure about: Gemma lets 1 in 60 normal sentences through as a command. If you've handled that better, tell me how.




Top comments (2)
This seems smooth!+) prly not gonna find time to test it, but I like the setup)
Thanks. Try it and please give a feedback.
currently i am making a awareness layer, so that it can actually know what u want. Instead of hardcoding each app, it will be able to know the software, app, folder, etc you are referring is actually exist or not.
Once this is done. Other features can be built upon it.