Free open-source time tracker that automatically monitors your device usage. Cross-platform support with local data storage for complete privacy.

At a Glance:

ActivityWatch is an open-source, cross-platform time tracker that records application usage, browser activity, and AFK status while storing all data locally on the user's machine.

Overview:

ActivityWatch is an open-source time tracking tool designed for individuals who want detailed insight into how they spend time on their devices without compromising privacy. It collects data such as active application and window titles, browser tab URLs, and keyboard and mouse activity to detect AFK states. All recorded information is stored locally, keeping the user in control. The project ships with a web-based GUI, a REST API for querying and exporting data, and an extensible watcher system that allows developers to add custom data sources. It runs on Windows, macOS, Linux, and Android.

Key Decision Points:

  • Local data storage: All tracked activity is stored on the user's local machine by default, avoiding the privacy trade-offs of centralized cloud solutions.

  • Extensible watcher system: New data sources can be added by writing custom watchers, which the project explicitly encourages to expand tracking capabilities.

  • API-first architecture: A REST API with client libraries in Python, Rust, and JavaScript is available for programmatic access, querying, and integration.

  • Cross-platform with a GUI: It provides a graphical interface for dashboards and data exploration, and runs on Windows, macOS, Linux, and Android, making it usable beyond developer-centric tools.

Core Features:

  • Application and window tracking: Records the currently active application and its window title to build usage summaries.

  • Browser tab tracking: Captures active browser tab titles and URLs through dedicated watchers.

  • AFK detection: Monitors keyboard and mouse activity to determine when the user is away from the computer.

  • REST API and client libraries: Exposes Buckets, Events, Heartbeat, and Query APIs with official aw-client libraries for Python and Rust.

  • Web-based query interface: Includes a query explorer for writing, executing, and debugging queries against collected activity data.

  • Data visualization and export: Provides dashboard and timeline views of activity, with the ability to export raw data in JSON format.

Use Cases:

  • Individual productivity tracking: Users who want to understand their daily application and website usage patterns can run this tool locally without sharing data with a third party.

  • Developers wanting extensible time logging: Developers can write custom watchers to record domain-specific activities, such as time spent in particular editors or tools.

  • Privacy-conscious time analysis: Those who avoid cloud-based trackers like RescueTime or WakaTime can use this as a local alternative for detailed activity measurement.

Open-Source Alternative Value:

ActivityWatch provides a practical open-source alternative to centralized time trackers by combining local-first storage, a GUI, and an extensible watcher system under a single project. Unlike other open-source options that lack a user interface or are limited to developer setups, it is packaged as an end-user application across multiple platforms. The REST API and client libraries allow for custom integrations without relying on a cloud service, meaning users can access and query their own data programmatically while keeping it on their own machine.

分享XLinkedInReddit

相关工具

项目数据

Stars

17,421

Forks

885

许可证

MPL-2.0

元数据

替代对象
RescueTime