The application still works fairly well. Like, it's accuracy is probably around 70-80%, which is decent, but activity tracking could always be more intelligent. Accuracy as in faithful represenation of whether you were being productive or not. The actual subject/productive categorization is like 99% accurate.
The goal would be to build an opensource activity tracker that runs locally. Could keep adding features/improving the algorithm to more intelligently measure your producivity/provide more insights. I think it's useful to at least have the information of how you are spending your time given the fuck ton of optionality/distractions that we are exposed to nowadays.
Mac screentime is not granular enough. Screentime/activity tracking should be open source anyways.
The current way that the project works is that Rust sets up an event tap. When an event is detected, algo determines whether window/tab is new or not. If it's new, it's processed as a distraction or part of the current session. Categorized into productive/unproductive and by subject. There's a cache with mappings and an LLM is used as a fallback.
The algorithm has endless potential for optimization. I'm not good enough at Rust rn and don't have the time to improve the algo, so Rustaceans interested in contributing would be warmly welcomed.
To run the app:
cd collection
cargo run --bin collection
This starts the collection module
To run the frontend:
npm i
npm run electron:dev