cd /news/ai-tools/slothplan-the-to-do-list-that-does-l… Β· home β€Ί topics β€Ί ai-tools β€Ί article
[ARTICLE Β· art-157152] src=dev.to β†— pub= topic=ai-tools verified=true sentiment=↑ positive

SlothPlan: the to-do list that does less

A developer built SlothPlan, a command-line to-do triage tool that sorts a messy task list into DO TODAY (capped at three items), DEFER, and DELETE buckets, each with a one-line reason. The tool runs entirely locally, using deterministic rule-based logic or an optional open-weight model with no account, API key, or network access. In the recorded run, the deterministic mode surfaced three time-sensitive obligations, while the 0.5B model incorrectly deferred an electricity bill with the reason "no deadline, start next month.

by read5 min views1 publishedOct 25, 2026

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

My to-do list has 47 items. Yours probably does too. And here's the dirty

secret of productivity culture: the list isn't the work. Triaging the

list is the work β€” the staring, the re-ordering, the guilt-math of "is

learning Spanish more important than calling the dentist?" I have spent

entire Sunday mornings reorganizing tasks instead of doing them, which is

just procrastination wearing a planner's clothes.

Every to-do app on the planet answers this with more features: priorities,

tags, Eisenhower matrices, AI scheduling assistants that need your calendar,

your email, your soul, and a $12/month subscription. They make the triage

heavier. Nobody built the app that does the triage for you and then β€”

this is the important part β€” tells you to do less.

So for "Slow and Steady" I built exactly that: a tool that rewards

laziness by doing the one piece of work you were avoiding (deciding what

matters), capping your day at three things, and granting you written

permission to delete the rest.

SlothPlan β€” a command-line tool where you dump a messy to-do list and

get back three buckets: DO TODAY (max 3, non-negotiable), DEFER

(officially not today's problem), and DELETE (permission granted, let

it go). Each item gets a one-line reason. The judgment comes from a local

open-weight model; the guarantees come from deterministic code.

python3 -m slothplan triage -f my-messy-todos.txt

The twist, same as my Week 2 entry: the model, the inference engine, and

all the code run on your own machine. No account. No API key. No

subscription. Your to-do list β€” which is, let's be honest, a map of your

anxieties β€” never touches a network.

I fed it a 12-item Tuesday dump. Here is what the recorded run produced

(full transcript in the repo's demo-output.txt β€” nothing cherry-picked):

=== SLOTHPLAN triage ===
method: rule-based fallback (--no-llm was passed; no model was run)

DO TODAY (max 3) β€” your only decisions today:
  1. Pay electricity bill, due Friday or they cut the power
     -> looks time-sensitive β€” it names a deadline, payment, or an urgent event
  2. Reply to Priya about the wedding RSVP β€” deadline is tomorrow
     -> looks time-sensitive β€” it names a deadline, payment, or an urgent event
  3. Submit the Hacktoberfest Week 3 entry README tonight
     -> looks time-sensitive β€” it names a deadline, payment, or an urgent event

DEFER β€” officially not today's problem:
  4. Call dentist to reschedule the appointment
     -> looks time-sensitive β€” it names a deadline, payment, or an urgent event [moved from today: the 3-item cap keeps your day lazy]
  12. Call mom back β€” she called twice today
     -> looks time-sensitive β€” it names a deadline, payment, or an urgent event [moved from today: the 3-item cap keeps your day lazy]

DELETE β€” permission granted, let it go:
  10. Delete that crypto spam email from "DOUBLE YOUR COINS"
     -> matches a junk pattern β€” nothing of value is lost
  11. Reorganize my Netflix watchlist
     -> matches a junk pattern β€” nothing of value is lost

That's the deterministic mode (--no-llm), and it's the mode I'd actually

use daily: three real obligations surfaced, the dentist and mom politely

bounced by the cap with an explanation, and the crypto spam and the

Netflix-watchlist reorganization sentenced to death. Twelve decisions I

didn't have to make.

Now the confession, because the transcript has two runs and I'm not hiding

the first one: when I let the 0.5B model judge all 12 items itself, it

took "rewards laziness" as a personal mission. It deferred the electricity bill with the reason "no deadline, start next month" β€” for

Deliberately boring architecture, because boring ships:

# comments and bullet/checkbox markers are stripped. My sample file's header comment got triaged as a task in the first build β€” fixed, and there's a test for it now.slothplan/llm.py): one verdict per task from slothplan/triage.py): every verdict is parsed and validated. Max 3 in "today" β€” overflow is moved to defer This tool cannot exist on a closed API, for two reasons β€” one

practical, one philosophical.

Practically: SlothPlan's entire design is a bet that a small model is

enough. A 0.5B model is honest about what it is β€” opinionated, sometimes

wrong, occasionally deleting your electricity bill β€” and the whole

architecture (deterministic guardrails, labeled fallbacks, a --no-llm

mode) is built around that honesty. You can only build that way if you can

run the model locally, iterate on prompts for free at 3 a.m., and ship

something whose marginal cost per triage is exactly zero. A closed API

charges per token, which means every design decision bends toward fewer,

bigger calls β€” the opposite of this architecture. And a to-do list is

personal enough that "send it to someone's cloud" was never on the table.

Philosophically: the open-weights ecosystem is what lets a student with a

$0 budget and a borrowed VM build something in a day that would have been

a research project five years ago. Qwen2.5's weights are public under

Apache 2.0. llama.cpp is MIT. My code is MIT. Anyone can audit every layer,

swap in a bigger GGUF with one flag, or fork the whole thing. That

composability β€” weights, engine, and app all inspectable and replaceable β€”

is open innovation working exactly as advertised. The moat isn't the model;

it's the trust that comes from everything being auditable.

I'd rather tell you than have you discover them:

--model; a bigger model would judge better.(no reason given)) β€” the model often emits just the bucket word despite being shown examples..txt input, CLI only. Bonus-points honesty: I have no first user yet β€” this was built for

the challenge this week, starting Monday morning. The demo above is real

output from the actual tool, and the limitations section is real too.

Repo: https://github.com/swarnnim/slothplan

./scripts/download-llamacpp.sh
./scripts/download-model.sh
python3 -m slothplan triage -f sample_todos/messy.txt

If you also have a 47-item list you're avoiding: what's the one task on

it you'd secretly love an app to delete for you? That's the roadmap β€”

a bigger delete bucket.

── more in #ai-tools 4 stories Β· sorted by recency
── more on @slothplan 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/slothplan-the-to-do-…] indexed:0 read:5min 2026-10-25 Β· β€”