Spaces:
Runtime error
title: whatfirst small
emoji: ποΈ
colorFrom: indigo
colorTo: blue
sdk: docker
app_port: 7860
pinned: true
license: apache-2.0
models:
- ggml-org/Qwen2.5-VL-3B-Instruct-GGUF
tags:
- track:backyard
- achievement:offgrid
- achievement:llama
- achievement:fieldnotes
- achievement:tiny-titan
thumbnail: >-
https://cdn-uploads.huggingface.co/production/uploads/67a39e9465c06c95d452bd6d/Z_pvYNAWsx5oR24zkUFZg.png
whatfirst Β· small
Dump everything on your mind β get back what to do first, with the math shown.
βΆ Try the live demo
π€ 3B params (β€ 4B β Tiny Titan) Β· π runs 100% offline β no internet required Β· π¦ llama.cpp
π£ Launch post Β· what-first.com Β· Apache-2.0
A small local vision-language model (Qwen2.5-VL-3B, ~2 GB, running on llama.cpp) reads a messy brain-dump or a photo of a to-do list and turns each line into a structured task β impact, readiness, effort, deadline. A deterministic, transparent scoring engine then ranks them and tells you the one thing to start now, showing every number behind the call. No cloud, no API keys, runs on a laptop.
Built for the Hugging Face Build Small hackathon (Backyard AI track).
π Field notes: an honest write-up of what worked and what didn't β the small-model story, including where a 3B model wobbles and how the design absorbs it.
Demo
βΆ Watch the demo video Β· Try the live Space
Why this exists
Deciding what to do first is a real, daily problem β and most "AI to-do" apps answer it with a black box. This one keeps the AI where it earns its keep (turning vague human language into structured fields) and makes the prioritization itself legible: two competing scores (do-it-now vs. de-risk-first), an urgency curve that explodes as a deadline nears, a quick-win boost for short, high-impact tasks, and deadlines treated as a hard constraint rather than a number folded into a blob.
The problem β and the prioritization approach β come from what-first.com, a full web app the same team built in June 2026. There, a frontier cloud model (Claude) does the language work β reading your tasks and proposing their impact, readiness, and effort β and a deterministic engine ranks them. This entry asks a smaller question: can a 3B model running offline on a laptop do that same language work? The ranking engine here is a clean-room Python reimplementation with its own tests, not a copy of the original.
How it works
brain-dump / photo βββΆ Qwen2.5-VL-3B (llama.cpp, localhost) βββΆ structured tasks
β
score.py (deterministic)
β
ranked list + "do this first"
score.pyβ the scoring + deadline-ranking engine (pure standard-library math).llm.pyβ client for the local llama.cpp server (brain-dump parse, image extract, single-task re-score). Each call is grammar-constrained to a JSON object; every model output is re-clamped before scoring.prompts.pyβ the system prompts that ask for strict-JSON output and define the scoring scales.app.pyβ the Gradio UI: capture, ranked table, and sliders to correct any score and re-rank live.
Run it locally
docker build -t whatfirst-small .
docker run -p 7860:7860 whatfirst-small # first boot downloads ~3.3 GB (model + vision projector)
Then open http://localhost:7860. On a CPU-only box, expect a few seconds per task β that's the cost of staying fully on the grid-less side. Tests:
python -m pytest test_score.py # or: python test_score.py
Notes
- Model:
ggml-org/Qwen2.5-VL-3B-Instruct-GGUF(Q4_K_M + f16 mmproj), β€ 32B and laptop-runnable. - Off the grid: all inference is local llama.cpp over localhost; nothing leaves the box at runtime.
π See the full story in our field notes β what worked, where a 3B model wobbles, and how the design absorbs it.
