Watchers¶
Watchers are the parts of ActivityWatch that do all the data collecting.
ActivityWatch comes with two watchers enabled 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).
These 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.
Window watchers¶
Watches the active window, its title, and application name.
aw-watcher-window - The official window watcher for Windows, macOS, and Linux (X11 only).
aw-watcher-window-wayland - A window watcher for Wayland, by @johan-bjareholt.
2e3s/awatcher - A compiled watcher for X11 and Wayland to replace default window and AFK watchers, by @2e3s.
aw-watcher-window-hyprland - A window watcher for Hyprland, by @bobvanderlinden.
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)
aw-watcher-vim - vim extension, by @johan-bjareholt and @ahnlabb.
aw-watcher-vscode - Visual Studio Code extension, by @Otto-AA.
pauldub/activity-watch-mode - emacs mode forked from wakatime-mode, by @pauldub.
OlivierMary/aw-watcher-jetbrains - For all JetBrains editors IDEA/Goland/Android Studio/PyCharm/WebStorm/DataGrip/RubyMine/… See compatibility/Download, by @OlivierMary.
LaggAt/ActivityWatchVS - Visual Studio extension, by @LaggAt
pascalwhoop/aw-idea - (WIP) JetBrains IntelliJ IDEA/PyCharm/WebStorm/etc extension forked from wakatime, by @pascalwhoop
kostasdizas/aw-watcher-sublime - Sublime Text 3, by @kostasdizas, and others
NicoWeio/aw-watcher-atom - Atom, by @NicoWeio
pytlus93/AwWatcherNetBeans82 - NetBeans 8.2, by @pytlus93
LordGrimmauld/aw-watcher-obsidian - Obsidian.md extension, by @LordGrimmauld
lowitea/aw-watcher.nvim - neovim extension, by @lowitea.
sachk/aw-watcher-zed - Zed extension, by @sachk.
Media watchers¶
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.
0xbrayo/aw-watcher-lastfm - Watches the currently playing track on Last.fm(supports most streaming services including Apple Music).
Other watchers¶
Other watchers to collect all kinds of data.
aw-watcher-input - Tracks the number of keypresses and distance that mouse is moved.
Alwinator/aw-watcher-table - Monitors whether you have set your height-adjustable table to sitting or standing, by @Alwinator
akohlbecker/aw-watcher-tmux - A plugin for tmux that allows monitoring activity in sessions and panes, by @akohlbecker
bcbernardo/aw-watcher-ask - (WIP) Periodically poses questions to the user and records her answers.
Alwinator/aw-watcher-utilization - Monitors CPU, RAM, disk, network, and sensor usage, by @Alwinator
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.
RTnhN/aw-watcher-toggl - A Watcher to import time entries from Toggl.
sameersismail/aw-watcher-netstatus - Monitors if you’re connected to a network, by @sameersismail.
RTnhN/aw-watcher-buttons - (WIP) A watcher for tracking external hardware buttons based on an Arduino used for working state.
Importers¶
ActivityWatch can’t track everything, so sometimes you might want to import data from another source.
aw-import-ical, supports importing from
.ical
files or syncing with Google Calendar.aw-importer-smartertime, imports from smartertime Useful for importing Android screentime data.(Note ActivityWatch also has an Android app aw-android)
aw-import-screentime, attempt at importing from macOS’s Screen Time (and potentially iOS through syncing).
0xbrayo/aw-import-wakatime, imports from Wakatime (For tracking time spent programming).
rtnhn/aw-importer-lastfm, imports from Last.fm data export (For tracking time spent listening to music).
rtnhn/aw-importer-lifecycle, imports from a Lifecycle app export (For tracking time spent in locations).
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:
Note
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 in Python.
Have you written one yourself? Send us a PR to have it included!