Activity Watch
Open-source, privacy-first time tracking.
Open the official app on activitywatch.net
This tool is hosted by its maintainers. Click below to open activitywatch.net in a new tab — it's their official demo.
Browse productivity tools →What's next with Activity Watch?
Choose how you want to get started.
Use it free
Open the official tool or demo — no account needed.
Self-host it
Run the open-source version on your own infrastructure.
What is Activity Watch?
ActivityWatch is an open-source automated time tracking tool designed to monitor user activity across devices while prioritizing privacy. It enables individuals and teams to record time spent on applications, websites, and input events without requiring manual logging. The tool is particularly useful for users seeking to analyze productivity patterns, manage workloads, or ensure compliance with data privacy regulations. By focusing on local data storage and extensibility, ActivityWatch addresses the challenge of balancing accurate time tracking with user privacy concerns. Its cross-platform compatibility and modular architecture make it a flexible solution for both personal and organizational use cases.
How it works
ActivityWatch is a free and open-source tool that automates time tracking by recording user interactions with software applications and websites. It operates through a server-client model, with data stored locally to minimize exposure of sensitive information. The primary purpose of ActivityWatch is to provide users with insights into how they spend their time digitally. It is designed for individuals and teams aiming to improve productivity, identify distractions, or meet accountability requirements without compromising privacy. ActivityWatch supports cross-platform tracking via plugins for Windows, macOS, and Linux. It captures data on application usage, website visits, and input events like keyboard and mouse activity. Extensions such as aw-watcher-input and aw-watcher-afk enable granular monitoring of focus and idle states.
How to use it
- 1Install the server component (aw-server) to manage tracking rules and data storage. 2. Deploy the client (aw-client) to interface with the server and apply tracking configurations. 3. Enable specific watchers (e.g., aw-watcher-input) to monitor desired activities. 4. Start the server and client to begin recording data. Practical tips include configuring watchers to exclude sensitive applications, using the aw-tauri frontend for a lightweight interface, and ensuring all components are updated to avoid compatibility issues.
What it can do
- open time tracker
Use cases
Assumptions and limitations
Assumptions
- source: https://activitywatch.net/
- license: MPL-2.0 — free to use
- privacy: Self-hosted — you control your data
Limitations
- Complex setup process requiring manual configuration of server and client components
- Limited real-time analytics compared to commercial alternatives
- Dependence on system resources for accurate input event detection
- Lack of dedicated mobile applications for iOS/Android
- Minimal third-party integrations beyond basic export capabilities
Understanding the result
Open-source, privacy-first time tracking.
Tool details
- Clearly flagged when a network request is needed.
- No account, no sign-up, and no tracking of your content.
- Powered by (MPL-2.0).
- Built with
- (https://activitywatch.net/)
- License
- MPL-2.0
- Runs locally
- No — requires a network request
- Verification
- Not yet verified
- Input
- Query
- Output
- Text
Built with https://activitywatch.net/. OpenToolVault provides the discovery and browser interface while crediting the original project maintainers.
- Built with
- License
- MPL-2.0
Open-source project
OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.
References
- / — GitHub Repository
Upstream project · GitHub
- MPL-2.0 License
Upstream project
Frequently asked
What is ActivityWatch and how does it differ from traditional time tracking tools?
ActivityWatch is an open-source tool that automatically records digital activity without manual input. Unlike traditional tools that require users to log time manually, it tracks application usage, website visits, and input events in real-time. It prioritizes privacy by storing data locally rather than relying on cloud services. This makes it particularly suitable for users concerned about data exposure.
How does ActivityWatch ensure user privacy?
ActivityWatch ensures privacy by storing all tracking data locally on the user's device rather than uploading it to external servers. The server component runs locally, and data is only accessible through the client interface or exported files. This architecture prevents third-party access to sensitive activity logs, making it compliant with data protection regulations like GDPR.
How do I track specific applications or websites?
To track specific applications or websites, configure the aw-watcher-input plugin to monitor desired processes. For websites, use the aw-watcher-afk plugin to detect idle states. Edit the tracking rules in the server configuration file to include or exclude specific programs. Restart the server and client after adjustments to apply changes.
How does ActivityWatch compare to tools like RescueTime or Toggl?
ActivityWatch differs from RescueTime and Toggl by emphasizing local data storage and open-source extensibility. RescueTime and Toggl often rely on cloud-based tracking and may share data with third parties. ActivityWatch allows full customization through plugins and avoids centralized data collection, making it more suitable for privacy-conscious users. However, it lacks some advanced analytics features found in commercial alternatives.
What should I do if the ActivityWatch server fails to start?
If the server fails to start, check the logs in the server directory for error messages. Common issues include missing dependencies like Python libraries or conflicts with existing port usage. Ensure all components (server, client, and watchers) are compatible with your operating system. Reinstalling the server or adjusting configuration files may resolve persistent issues.