Local model chore: turn a brain-dump into a clean to-do list
Paste messy meeting notes into a free, offline model on your own laptop and get back an organized to-do list, with nothing leaving the machine.
Run this workflow
CI-verified, 2/2 fixtures passing.
Build this with your agent
One copy-paste hands Claude Code, Codex, or Cursor the full recipe, steps included, nothing to fetch.
Intended Use
Anyone who wants to clean up messy notes privately. CI installs Ollama, pulls a real small Gemma 3 model, and runs the actual to-do prompt offline, asserting the model returns a non-empty answer with a clean exit (no API key, no cloud). The newsletter recommends gemma3:4b for real use; CI uses the tiny gemma3:270m for speed. The answer's QUALITY is non-deterministic and is fenced.
Not for
- Trusting the list blindly, small models occasionally drop or garble an item, so skim it
- Expecting CI to grade the list, only that a local model ran and produced output offline
The Stack
Tested Against
ollama@0.30gemma3:270mgemma3:4b (recommended for real use)Side effects & data flow
- Network
- ollama.com, model pull only; inference is fully offline
- Writes
- ~/.ollama/ (downloaded model)
- Credentials
- none required
Data privacy
- nobody (fully local after the one-time model download) ← your pasted notes (retention: stays on device; nothing is sent off-machine or retained by any service)
Prerequisites
- A laptop with ~8GB RAM (16GB for the 12B models)
Steps
- 1
Run the chore on a real local model (offline)
Install Ollama, pull a Gemma 3 model, and run the to-do prompt on your messy notes. With LM Studio you'd do the same in a window; here CI does it headless. After the download this runs with wifi off. CI runs exactly this with the tiny gemma3:270m and checks the model returned a real answer.
command -v ollama >/dev/null 2>&1 || curl -fsSL https://ollama.com/install.sh | sh curl -s http://localhost:11434/api/version >/dev/null 2>&1 || (ollama serve >/tmp/ollama-serve.log 2>&1 &) for i in $(seq 1 60); do curl -s http://localhost:11434/api/version >/dev/null 2>&1 && break; sleep 1; done ollama pull gemma3:270m >/dev/null 2>&1 OUT=$(ollama run gemma3:270m "Turn these messy notes into a short, organized to-do list: - talked to Sam about the Q3 launch, he will send the deck - need to book the dentist - buy milk and coffee - reply to the landlord about the lease") if [ -n "$OUT" ]; then echo "chore1 OK: gemma3:270m produced a $(printf '%s' "$OUT" | wc -c | tr -d ' ')-char to-do list offline (quality fenced)" else echo "EMPTY OUTPUT"; exit 1 fi - 2
Use the recommended size for real work (the quality step, not checked by CI)
For day-to-day use, pull gemma3:4b (about 3.3GB, fits 8GB) or gemma3:12b (about 8GB, for 16GB). The bigger model writes a cleaner list. Output quality is non-deterministic, so CI never claims it.
Eval, 2 fixtures
Last passed: verified todayran-offlinecontainstimeout 600s · max $0Expected:
chore1 OK: gemma3:270m produced aclean-exitexit_codetimeout 600s · max $0Expected:
0
Results
The fastest way to feel the value on day one: rough notes in, clean list out, fully local and free. Gemma 3 4B (about 3.3GB) fits a typical 8GB laptop.
Did this work for you?
Our CI checks the setup runs. You tell us if the whole thing worked. Tell us straight.
Liked this workflow?
Get new verified workflows in WebAfterAI, three issues a week (Tue, Thu, Sat).