A collections of awesome links to resources relating to ActivityWatch, the free and open-source automated time-tracker.
Please star ⭐ and share this repo! 📢
This list is just getting started. Do you see anything missing? Make a pull request! ✏️
- Website
- GitHub
- Forum
- Discord
- r/ActivityWatch (mostly inactive), subreddit for ActivityWatch
The main ActivityWatch application and alternative implementations:
- ActivityWatch (releases) - The official distribution, includes:
- aw-qt (tray application)
- aw-server & aw-server-rust (storage and API)
- aw-watcher-window (window tracking)
- aw-watcher-afk (idle detection)
- aw-watcher-input (keyboard/mouse usage)
- aw-sync (data syncing)
- aw-notify (notifications)
- aw-tauri (WIP), experimental/alternative distribution of ActivityWatch using Tauri
- Workflow, basic screentime application using GTK
- Codewatch, desktop client for ActivityWatch focused on software development and productivity.
- yet-another-UI-for-AW, a native UI for ActivityWatch with Japanese localization (announcement forum post)
ActivityWatch has a modular architecture that includes a server component for storing and analyzing the collected data.
- aw-server, an official server implementation written in Python
- aw-server-rust, an official server implementation written in Rust for improved performance
The ActivityWatch ecosystem provides client libraries to help developers interact with the ActivityWatch server API and create custom watchers, integrations, extensions, or applications. Here are the official client libraries:
- aw-client, a client library written in Python
- aw-client-js, a client library written in JavaScript/TypeScript
- aw-client-rust, a client library written in Rust
- activitywatch-plasmoid, a KDE Plasma widget for ActivityWatch
- activitywatch-status-gnome-shell, GNOME Shell extension that shows the total time spent today (source)
ActivityWatch comes with two watchers enabled by default:
- aw-watcher-afk - Watches for mouse & keyboard activity to detect if the user is active
- aw-watcher-window - Watches the active window and its metadata
- aw-watcher-window - The official window watcher for Windows, macOS, and Linux (X11)
- aw-watcher-window-wayland - Window watcher for Wayland by @johan-bjareholt
- awatcher - A compiled watcher for X11 and Wayland by @2e3s
- aw-watcher-web - Official browser extension for Chrome, Edge, and Firefox
- aw-watcher-vim - Vim extension by @johan-bjareholt and @ahnlabb
- aw-watcher-vscode - Visual Studio Code extension by @Otto-AA
- activity-watch-mode - Emacs mode by @pauldub
- aw-watcher-jetbrains - For all JetBrains IDEs by @OlivierMary (JetBrains Marketplace)
- ActivityWatchVS - Visual Studio extension by @LaggAt
- aw-idea - JetBrains IDE extension by @pascalwhoop (WIP)
- aw-watcher-sublime - Sublime Text 3 by @kostasdizas
- aw-watcher-atom - Atom by @NicoWeio
- AwWatcherNetBeans82 - NetBeans 8.2 by @pytlus93
- aw-watcher-obsidian - Obsidian.md extension by @LordGrimmauld
- aw-watcher-spotify - Tracks currently playing Spotify tracks (Beta)
- aw-watcher-chromecast - For Chromecast devices (WIP)
- aw-watcher-openvr - For VR applications (WIP)
- aw-watcher-mpv-sender - Tracks currently playing mpv videos (WIP)
- aw-watcher-media-player - Tracks system-wide media playback
- aw-watcher-lastfm - Tracks Last.fm scrobbles (supports most streaming services)
- aw-watcher-input - Tracks keyboard/mouse usage statistics
- aw-watcher-table - Monitors height-adjustable desk position by @Alwinator
- aw-watcher-tmux - Monitors tmux sessions by @akohlbecker
- aw-watcher-ask - Periodically asks user questions (WIP)
- aw-watcher-utilization - System resource monitoring by @Alwinator
- aw-watcher-anki - Tracks Anki flashcard review time
- aw-watcher-steam - Tracks Steam gaming sessions
- aw-watcher-toggl - Imports time entries from Toggl
- aw-watcher-netstatus - Network connectivity monitoring by @sameersismail
- aw-watcher-buttons - Arduino-based hardware button tracking (WIP)
We also maintain a list of watchers in the documentation.
Want to create your own watcher? Check out the writing watchers guide in the documentation.
Have you written a watcher? Submit a PR to have it included here!
- aw-sync, the official sync-with-folder/bring-your-own-sync solution for ActivityWatch
- aw-sync-suite, a centralized sync solution backed by Prometheus and visualized with Grafana, by @phrp720
- activitywatch-exporter, CLI tool that uploads the ActivityWatch data from the aw-server API to InfluxDB on a daily basis
- activitywatch-mcp-server - A Model Context Protocol (MCP) server that connects to ActivityWatch, allowing LLMs like Claude to interact with your time tracking data
- ActivityWatch - Application time tracking done well (2023-2-3)
- ActivityWatch: Save Time With Helpful Telemetry by @BrodieRobertson (2021-6-13)
- ActivityWatch Development Visualization 2014-2020 (with Gource) by @ErikBjare (2020-12-20)
- Metabase dashboard by @SqrtMinusTwo: https://twitter.com/ActivityWatchIt/status/1522126015082151936
- Grafana + PrometheusDB + InfluxDB dashboard by @KShivendu: https://twitter.com/KShivendu_/status/1697483679495557228
Support the development of ActivityWatch by making a donation. Your contribution helps maintain and improve the software, ensuring its continued development.
- GitHub Sponsors, support the project through GitHub Sponsors
- Open Collective, donate and view transparent expenses and funding on Open Collective
- Support individual contributors
- Erik Bjäreholt's GitHub Sponsors or Patreon
- Johan Bjäreholt's GitHub Sponsors
- For more, see the Donate page on the website
Thank you for supporting ActivityWatch and helping it stay afloat financially as free and open-source software! ❤️
- Awesome Quantified Self, a list of awesome quantified self resources
- Superuser Labs, company owned and run by founder Erik Bjäreholt for consulting and other ActivityWatch-related services (among other things).