Watchers are the parts of ActivityWatch that do all the data collecting.
ActivityWatch comes bundled with two watchers by default:
aw-watcher-afk - Watches for mouse & keyboard activity to detect if the user is active (by default, an inactive period of at least 3 minutes is flagged as AFK: away from keyboard).
aw-watcher-window - Watches the active window, its title, and it’s url (on Chrome-based browsers & Safari).
The default watchers are collecting some of the most important data. But there is more to collect, so here are some other watchers that let you do so.
Watches properties of the active browser tab like title, URL, audible and incognito state.
aw-watcher-web - The official browser extension, supports Chrome, Edge, and Firefox.
Watches the actively edited file and associated metadata like path, language, and project name (folder name of git root)
If you want to more accurately track media consumption.
aw-watcher-spotify - (Beta) Uses the Spotify Web API to get the active track.
aw-watcher-chromecast - (not working yet) Watches what is playing on you Chromecast device.
aw-watcher-openvr - (not working yet) Watches active VR applications.
RundownRhino/aw-watcher-mpv-sender - (WIP) Watches mpv and reports the currently playing video.
2e3s/aw-watcher-media-player - Watches the currently playing media which is reported by most players to the system.
Other watchers to collect all kinds of data.
aw-watcher-input - (WIP) Tracks the number of keypresses and distance that mouse is moved.
bcbernardo/aw-watcher-ask - (WIP) Periodically poses questions to the user and records her answers.
abdnh/aw-watcher-anki - An add-on for Anki that tracks time spent reviewing cards.
Edwardsoen/aw-watcher-steam - A Watcher to monitor current game being played.
2e3s/awatcher - A compiled watcher for X11 and Wayland to replace the original active window and AFK watchers, with workarounds for KDE and Gnome on Wayland.
RTnhN/aw-watcher-toggl - A Watcher to import time entries from Toggl.
ActivityWatch can’t track everything, so sometimes you might want to import data from another source.
aw-import-ical, supports importing from
.icalfiles or syncing with Google Calendar.
aw-import-screentime, attempt at importing from macOS’s Screen Time (and potentially iOS through syncing)
LastFM importer, @ErikBjare has code for it somewhere, ask him if you’re interested.
Custom watchers might not be supported by the default visualizations, but ActivityWatch offers a way for watchers to provide their own visualizations. It is currently an experimental feature, but the following watchers have experimental custom visualizations:
Looking for more than just watchers? Check out the awesome-activitywatch list for more projects related to ActivityWatch.
For help on how to write your own watcher, see Writing your first watcher.
Have you written one yourself? Send us a PR to have it included!