Repolode
ActivityWatch

ActivityWatch/activitywatch

Open-source automated time tracker that records active apps, window titles, browser tabs and AFK status, storing all data locally under your control.

Open-source alternative to:RescueTimeWakaTime

Stars
19,278
Forks
1,045
Open issues
132
Last commit
yesterday

What is it?

ActivityWatch records how you spend your time on your computer. Small programs called watchers collect data such as the currently active application and its window title, the active browser tab with its title and URL, and keyboard and mouse activity used to detect whether you are away from the keyboard. The data is stored in a local server, and you decide which watchers to run.

The project includes a REST API with buckets, events, heartbeats and a query language for filtering, merging and grouping events. A web interface provides dashboard and timeline views, a query explorer, a raw data browser, and JSON export. Client libraries for Python, JavaScript and Rust let developers write their own watchers. The core server is available in Python and Rust implementations.

The application runs on Windows, macOS, Linux and Android, and sync between devices is listed as work in progress using a decentralized sync folder.

Key features

  • 01Tracks active application and window title, browser tabs, and AFK status.
  • 02Stores data locally so you control it.
  • 03REST API with buckets, events, heartbeats and a query language.
  • 04Web UI with dashboards, timeline view and raw data browser.
  • 05Extensible through custom watchers and Python, JavaScript and Rust client libraries.
  • 06Runs on Windows, macOS, Linux and Android.

Use cases

  • Reviewing how much time you spend on different apps and websites each day.
  • Building a personal quantified-self dataset with your own watchers.
  • Measuring focused work versus time away from the keyboard.

Quick start

  1. 1

    Download the app from the releases page

  2. 2

    Read the getting started guide in the documentation

  3. 3

    Build from source if you prefer (see the installing-from-source guide)

Things to know

  • The README's feature comparison marks iOS as unsupported.
  • Sync between devices is still work in progress according to the README.
  • The Python server is the current default, while the Rust server is planned as the future default.

Topics

FAQ

What is activitywatch?
Open-source automated time tracker that records active apps, window titles, browser tabs and AFK status, storing all data locally under your control. ActivityWatch records how you spend your time on your computer. Small programs called watchers collect data such as the currently active application and its window title, the active browser tab with its title and URL, and keyboard and mouse activity used to detect whether you are away from the keyboard. The data is stored in a local server, and you decide which watchers to run.
Is activitywatch free to use? What license does it have?
activitywatch is open source under the MPL-2.0 license. Check the license terms before using it in commercial products.
Is activitywatch still maintained?
Actively maintained. The last commit to activitywatch was on Oct 18, 2026.
What can I use activitywatch for?
Reviewing how much time you spend on different apps and websites each day. Building a personal quantified-self dataset with your own watchers. Measuring focused work versus time away from the keyboard.
How do I install activitywatch?
Download the app from the releases page Read the getting started guide in the documentation Build from source if you prefer (see the installing-from-source guide)
Where can I get activitywatch?
The source code and installation instructions are on GitHub: https://github.com/ActivityWatch/activitywatch

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects