Skip to content

ActivityWatch

Self-hosted time tracking with ActivityWatch

A big chunk of my time is spent at the computer, also during my downtime, and there is no clear separation between study, chores, entertainment, etc. Work happens at other computers, where time flies by sometimes at ridiculous speeds. I often find myself wondering where did my day/week go?

For some time I've been using a badly-cobbled-together solution with Bash scripts doing a few basic operations, all the time:

  1. Detect when the screen saver is active (AFk).
  2. Capture the id and title of the active windown (when not AFK).
  3. Store those details in plain-text log files.
  4. Aggregate those by window id into CSV files.
  5. Import CSV files into a spreadsheet to clean it up.

The results have been barely enough to keep track of where my weeks go, which has already been a relief; when someone (often me) asks "why so little progress on X?", I can check the spreadsheet and answer with numbers: because this week, out of 40 hours, ...

At home, however, the results have been very underwhelming. This is due to completely different behaviour patterns, which is where I hope ActivityWatch will help.