Projects · Tools & libraries

Mood Tracker

Stable 2026 Author

Log a 0-10 mood with reasons in one command, then review it in an interactive terminal view or as PNG charts. One log file per computer, so Syncthing never has to merge one.

Originally built to keep track of my own emotional state. mood 6 work, bad sleep logs a score from 0 to 10 with optional reasons and gets out of the way; a bare mood shows today and the last 7 days.

  • Backdating in plain words: mood 4 at yesterday 21:00, at friday 9, at 19.10 20:00.
  • mood stats: an interactive terminal view of any span, grouped by hour, exact time, timeline, day, week, month, year or weekday, drawn as line, step, scatter, bar, area, heatmap or histogram.
  • mood graph: the same charts as PNG files, through a small matplotlib script.
  • mood reasons: how each reason compares with your average.
  • One log file per computer (<hostname>.jsonl, one JSON object per line), so a sync tool such as Syncthing never has to merge one. A summary.json is rebuilt from them.

A single Rust binary, with a static x86_64 Linux build and an aarch64 Android build for Termux on every release.