ActivityWatch is a free, open-source, privacy-first automated time tracker. It runs entirely on your local machine and automatically records how you spend your time across applications, websites, and editor sessions — giving you a detailed picture of your day without sending any data to external servers. Licensed under the Mozilla Public License 2.0, ActivityWatch is fully transparent: you own your data and you control what gets tracked.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ActivityWatch/activitywatch/llms.txt
Use this file to discover all available pages before exploring further.
What ActivityWatch tracks
ActivityWatch collects activity data through a system of modular watchers. Out of the box, it records:- Active application and window title —
aw-watcher-windowcontinuously logs the foreground application and its window title at high resolution. - AFK / idle detection —
aw-watcher-afkmonitors keyboard and mouse input to determine whether you are active or away from your keyboard. - Browser tab and URL — the
aw-watcher-webbrowser extension (available for Chrome and Firefox) captures the active tab title and URL so you can see exactly which websites you visit and for how long. - Editor activity — editor plugins for VS Code, Vim, Emacs, and others report which files and projects you are working on, integrating coding time directly into your activity timeline.
Why ActivityWatch?
- Privacy-first local storage — all data is written to a local datastore on your machine. Nothing is transmitted to any external server. You can inspect, export, or delete your data at any time.
- Open source (MPL-2.0) — the full source code is available on GitHub. You can audit it, fork it, and contribute to it.
- Cross-platform — ActivityWatch runs on Windows, macOS, Linux, and Android, with a consistent web-based dashboard on every platform.
- Extensible watcher system — any developer can write a custom watcher using the Python client library (
aw-client) or the REST API, making it straightforward to track new types of activity. - 17,000+ GitHub stars — ActivityWatch is one of the most starred open-source time trackers, backed by an active community of contributors and users.
Get started
Download ActivityWatch and start tracking your time in under five minutes.
Installation
Install from a release package or build from source on Windows, macOS, or Linux.
Watchers
Explore all available watchers for apps, browsers, editors, and more.
Architecture
Understand how the server, watchers, and web UI fit together.
Architecture overview
ActivityWatch is composed of three layers that work together:aw-server— a local REST API server that stores all activity data in buckets (time-series containers). There are two server implementations: the default Python-basedaw-serverand the faster Rust-basedaw-server-rust. Both expose the same API on port 5600.- Watchers — lightweight background processes that observe system state (active window, AFK status, browser tab, etc.) and send timestamped heartbeat events to
aw-serverover the local REST API. The core bundle ships withaw-watcher-windowandaw-watcher-afk; additional watchers can be installed separately. aw-webui— a web interface served byaw-serverathttp://localhost:5600. It provides an activity dashboard, timeline view, category editor, query explorer, and raw data browser — all querying the local server directly from your browser.
aw-qt manages the lifecycle of the server and built-in watchers, making it easy to start, stop, and monitor all components from a single icon.
Have a question or need help getting set up? Post on the ActivityWatch forum — the community is active and welcoming.
