ActivityWatch
ActivityWatch is a bundle of software that tracks your computer activity. You are, by default, the sole owner of your data.
ActivityWatch is:
- A set of watchers that record relevant information about what you do and what happens on your computer (such as if you are AFK or not, or which window is currently active).
- A way of storing data collected by the watchers.
- A dataformat accomodating most logging needs due to its flexibility.
- An ecosystem of tools to help users extend the software to fit their needs.
Installation⚑
- Download the latest release
- Unpack it and move it for example to
~/.local/bin/activitywatch
. - Add the
aw-qt
executable to the autostart.
It will start the web interface at http://localhost:5600 and will capture the data.
Configuration⚑
First go to the settings
page of the Web UI, you can define there the rules for the categories.
More advanced settings can be changed on the files, but I had no need to go there yet.
The used directories are:
- Data:
~/.local/share/activitywatch
. - Config:
~/.config/activitywatch
. - Logs:
~/.cache/activitywatch/log
. - Cache:
~/.cache/activitywatch
.
Watchers⚑
By default ActivityWatch comes with the next watchers:
- aw-watcher-afk: Watches for mouse & keyboard activity to detect if the user is active.
- aw-watcher-window: Watches the active window and its title.
But you can add more, such as:
-
aw-watcher-web: The official browser extension, supports Chrome and Firefox. Watches properties of the active tab like title, URL, and incognito state.
It doesn't work if you Configure it to Never remember history, or if you use incognito mode
It's known not to be very accurate. The overall time spent in the browser shown by the
aw-watcher-window
is greater than the one shown inaw-watcher-web-firefox
. -
aw-watcher-vim: Watches the actively edited file and associated metadata like path, language, and project name (folder name of git root).
It's impressive, plug and play:
It still doesn't add the branch information, it could be useful to give hints of what task you're working on inside a project.
They even show you how to create your own watcher.
Syncing⚑
There is currently no syncing support. You'll need to export the data (under Raw Data
, Export all buckets as JSON
), and either tweak it so it can be imported, or analyze the data through other processes.
Issues⚑
- Syncing support: See how to merge the data from the different devices.
- Firefox not logging data: Once it's solved, try it again.
- Making it work in incognito mode: Try it once it's solved.
- Add branch information in vim watcher: try it once it's out.
- Web tracking is not accurate: Test the solution once it's implemented.
- Physical Activity Monitor Integration (gadgetbridge): Try it once there is a solution.