open source Β· local-first Β· macOS

Know where your day actually went.

ScoreGoals sits in your menu bar, watches what you really do β€” screen, meetings, commits β€” and scores the day against goals you wrote. Correct it when it's wrong, and it learns your patterns until it rarely needs you.

$ git clone Β· ./scripts/setup.sh Β· your data never leaves your Mac

watch→understand→score→nudge→you adjust→ ↺

Teach it in one tap

Mislabeled a session? Reassign it, mark it off-track, or call it not-work. The score moves instantly β€” and three consistent corrections become a rule it applies by itself.

Safari β€” twitter.com β†’ Not work
score 64 β†’ 72 Β· rule candidate saved

It never fakes a number

Under thirty active minutes, the day reads "insufficient data" β€” a dash, not a guess. Unknown is unknown. The score only exists when the evidence does.

β€” not enough captured time yet (14m)

Local first, secrets never

Capture, scoring, and storage stay on your Mac. Keys, cards, and codes are scrubbed before anything is stored β€” and recording pauses the moment you lock your screen or walk away.

deploy with sk-[REDACTED:api-key] then rotate the [REDACTED:credential] before…

Three commands to your first scored day

macOS 14+ Β· Python Β· works with a free local model, no API key required

# clone + set up (venv, engine, menu bar app)
git clone https://github.com/contains-studio/scoregoals
cd scoregoals && ./scripts/setup.sh

# health check β€” it tells you exactly what's missing
scoregoals doctor
βœ“ screenpipe   βœ“ frames   βœ“ audio   βœ“ a11y text   βœ“ ollama

# write your goals, then let the day run
open goals.md