Sloth Mode: an agent that does your dread while you do nothing Developer Harish Kotra built Sloth Mode, an open-source local app that uses the Gemma 3 4B open-weight model to triage a user's avoided to-do list into three bins (do now, delegate to the model, or drop) and then drafts the delegated items itself. In a recorded run, 14 tasks were reduced to 2 for the user that day, 7 drafted, and 3 dropped, with the app estimating 3h 31m of work eliminated in 117 seconds of machine time. The project enforces its rules in code rather than in the prompt, parsing a line-per-item table format that degrades gracefully instead of crashing on malformed output. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady https://dev.to/challenges/hacktoberfest-week3-2026-10-19 I keep a note on my phone called "the pile". Fourteen things in it. The invoice I owe Priya a reply on. The dentist I have not booked in two years. The gym membership I keep paying for. Some of it has been in there since March. On Sunday night I pasted all fourteen lines into a thing I built over the weekend, and pressed one button. Two minutes later it told me two of them needed me today. It had already drafted seven. It told me to throw three away, with a reason for each. Two more it moved to "later this week" without asking me to feel bad about it. That is the whole product. Sloth Mode takes the pile you are avoiding and gives you back a much smaller pile. A local open-weight model Gemma 3 4B, on your machine, no internet sorts every line into three bins: Then it does the second bin. Not advice about the work. The work. The email is written. The cancellation is written. You skim, you send, you close the tab. Who it is for: anyone with a note called "the pile". Freelancers, one person businesses, people who are good at their job and quietly three weeks behind on admin. The video is one real run, 2 minutes 45 seconds, nothing sped up. 14 things in. 2 left for me today, 2 moved to later, 7 drafted, 3 dropped. 3h 31m of estimated work gone, in 117 seconds of machine time. Nothing in that clip is a fixture. The drafts are the model's output, streamed at nine tokens a second, which is also why the clip is that long. The sloth itself is hand drawn SVG, animated in plain CSS: it drops onto the vine when the page loads, swings, blinks, shuffles its grip hand over hand while it drafts, bobs along the track when it advances, and dozes off with drifting z's when you leave it waiting. No GIF assets, no animation library, about four kilobytes of keyframes, and all of it stops dead under prefers-reduced-motion . If you want to see the result without installing anything: the app ships a recorded session behind one button. It renders the real card from that run, labelled as recorded, with the arithmetic open for inspection. I would rather show a captured run than a bright green demo that is secretly a fake. github.com/harishkotra/sloth-mode https://github.com/harishkotra/sloth-mode Vite, React, TypeScript. A ~200 line Node server that serves the app and proxies chat completions to any OpenAI-compatible endpoint. No agent framework, no orchestration layer, no vector database, no account. One dependency that matters: a model. npm install ollama pull gemma3:4b npm run build && npm start http://localhost:8787 npm test 22 tests: arithmetic, parser, policy, draft cleaner npm run smoke the real triage prompt and one real draft npm run eval the reliability audit Three decisions did most of the work. Small models write bad JSON and good tables. So the triage prompt asks for exactly one line per item, in order: