Activitywatch
The best free and open-source automated time tracker. Cross-platform, extensible, privacy-focused.
Under Mozilla Public License 2.0
By ActivityWatch
The best free and open-source automated time tracker. Cross-platform, extensible, privacy-focused.
Under Mozilla Public License 2.0
By ActivityWatch
Records what you do so that you can know how you've spent your time.
All in a secure way where you control the data.
Website
— Forum
— Documentation
— Releases
Contributor stats
— CI overview
Do you want to receive email updates on major announcements?
Signup for the newsletter!
Table of Contents
* [About](#about)
* [Screenshots](#screenshots)
* [Is this yet another time tracker?](#is-this-yet-another-time-tracker)
* [Feature comparison](#feature-comparison)
* [Installation & Usage](#installation--usage)
* [About this repository](#about-this-repository)
* [Server](#server)
* [Watchers](#watchers)
* [Libraries](#libraries)
* [Contributing](#contributing)
About
The goal of ActivityWatch is simple: Enable the collection of as much valuable lifedata as possible without compromising user privacy.
We've worked towards this goal by creating a application for safe storage of the data on the users local machine and as well as a set of watchers which record data such as:
It is up to you as user to collect as much as you want, or as little as you want (and we hope some of you will help write watchers so we can collect more).
Downloads are available on our releases page.
For instructions on how to get started, please see our guide in the documentation.
Interested in building from source? There's a guide for that too.
Yes, but we found that most time trackers lack in one or more important features.
Common dealbreakers:
To sum it up:
We have a plan to address all of these and we're well on our way. See the table below for our progress.
| | User owns data | GUI | Sync | Open Source |
| ------------- |:------------------:|:------------------:|:--------------------------:|:------------------:|
| ActivityWatch | :white_check_mark: | :white_check_mark: | WIP, decentralized | :white_check_mark: |
| Selfspy | :white_check_mark: | :x: | :x: | :white_check_mark: |
| ulogme | :white_check_mark: | :white_check_mark: | :x: | :white_check_mark: |
| RescueTime | :x: | :white_check_mark: | Centralized | :x: |
| WakaTime | :x: | :white_check_mark: | Centralized | Clients |
| | Windows | macOS | Linux | Android | iOS |
| ------------- |:------------------:|:------------------:|:------------------:|:------------------:|:-------------------:|
| ActivityWatch | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |:x: |
| Selfspy | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: |:x: |
| ulogme | :x: | :white_check_mark: | :white_check_mark: | :x: |:x: |
| RescueTime | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |Limited functionality|
| | App & Window Title | AFK | Browser Extensions | Editor Plugins | Extensible |
| ------------- |:------------------:|:------------------:|:------------------:|:------------------:|:---------------------:|
| ActivityWatch | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Selfspy | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: |
| ulogme | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: |
| RescueTime | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | :x: |
| WakaTime | :x: | :white_check_mark: | :white_check_mark: | :white_check_mark: | Only for text editors |
For a complete list of the things ActivityWatch can track, see the page on watchers in the documentation.
This repo is a bundle of the core components and official modules of ActivityWatch (managed with git submodule
). It's primary use is as a meta-package providing all the components in one repo; enabling easier packaging and installation. It is also where releases of the full suite are published (see releases).
aw-server
is the official implementation of the core service which the other ActivityWatch services interact with. It provides a REST API to a datastore and query engine. It also serves the web interface developed in the aw-webui
project (which provides the frontend part of the webapp).
The REST API includes:
The webapp includes:
ActivityWatch comes pre-installed with two watchers, aw-watcher-afk
which logs the presence/absence of user activity from keyboard and mouse input and aw-watcher-window
which logs the currently active application and it's window title.
There are lots of other watchers for ActivityWatch which can track more types of activity such as aw-watcher-web
which tracks time spent on websites, multiple editor watchers which tracks spent time coding and many more! A full list of watchers can be found in our documentation here.
aw-core
- core library, provides no runnable modulesaw-client
- client library, useful when writing watchersWant to help? Great! Check out the CONTRIBUTING.md file!
Have a question, suggestion, problem, or just want to say hi? Post on the forum!