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.

Browser watchers

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.

Editor watchers

Watches the actively edited file and associated metadata like path, language, and project name (folder name of git root)

Media watchers

If you want to more accurately track media consumption.

Other watchers

Other watchers to collect all kinds of data.


ActivityWatch can’t track everything, so sometimes you might want to import data from another source.

Custom visualizations

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.

Custom watchers

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!