Skip to content
The best free and open-source automated time tracker. Cross-platform, extensible, privacy-focused.
Python Inno Setup Shell Batchfile
Branch: master
Clone or download

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github docs: fixed emoji in bug report issue template title May 8, 2020
aw-client @ 07bb9c2 build: switched to using poetry for `make build` (#379) Mar 21, 2020
aw-core @ 5d7c04f build: switched to using poetry for `make build` (#379) Mar 21, 2020
aw-qt @ 91f250b updated submodule Mar 22, 2020
aw-server @ 32a201a build: switched to using poetry for `make build` (#379) Mar 21, 2020
aw-server-rust @ 214ff66 Added basic GitHub Actions config (#382) Mar 23, 2020
aw-watcher-afk @ e8bae0b build: switched to using poetry for `make build` (#379) Mar 21, 2020
aw-watcher-window @ 25ae699 build: switched to using poetry for `make build` (#379) Mar 21, 2020
scripts docs: added new script to build changelog (#381) Mar 30, 2020
.appveyor.yml build: switched to using poetry for `make build` (#379) Mar 21, 2020
.gitattributes configured linguist to hide build scripts from language summary Oct 4, 2017
.gitignore fixed icon and version for .app, added .app building to CI Jan 27, 2020
.gitmodules readded aw-server-python Feb 1, 2020
.travis.yml ci: downgraded setuptools as workaround for PyInstaller issue Mar 23, 2020
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Oct 7, 2018
CONTRIBUTING.md
LICENSE.txt added LICENSE Mar 29, 2017
Makefile ci: downgraded setuptools as workaround for PyInstaller issue Mar 23, 2020
README.md README: Removed outdated statement that import is not supported May 15, 2020
aw.spec Add node_modules fix in appveyor back to aw-server, update version nu… Mar 11, 2020
poetry.lock ci: downgraded setuptools as workaround for PyInstaller issue Mar 23, 2020
pyproject.toml docs: added GitHub actions badge to README Mar 23, 2020

README.md

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.


WebsiteForumDocumentationReleases
Contributor statsCI overview



Do you want to receive email updates on major announcements?
Signup for the newsletter!

Table of Contents

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:

  • Currently active application and the title of its window
  • Currently active browser tab and it's title and URL
  • Keyboard and mouse activity, to detect if you are AFK ("away from keyboard") or not

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).

Screenshots

Installation & Usage

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.

Is this yet another time tracker?

Yes, but we found that most time trackers lack in one or more important features.

Common dealbreakers:

  • Not open source
  • The user does not own the data (common with non-open source options)
  • Lack of synchronization (and when available: it's centralized and the sync server knows everything)
  • Difficult to setup/use (most open source options tend to target programmers)
  • Low data resolution (low level of detail, does not store raw data, long intervals between entries)
  • Hard or impossible to extend (collecting more data is not as simple as it could be)

To sum it up:

  • Closed source solutions suffer from privacy issues and limited features.
  • Open source solutions aren't developed with end-users in mind and are usually not written to be easily extended (they lack a proper API). They also lack synchronization.

We have a plan to address all of these and we're well on our way. See the table below for our progress.

Feature comparison

Basics
User owns data GUI Sync Open Source
ActivityWatch WIP, decentralized
Selfspy
ulogme
RescueTime Centralized
WakaTime Centralized Clients
Platforms
Windows macOS Linux Android
ActivityWatch WIP
Selfspy
ulogme
RescueTime
Tracking
App & Window Title AFK Browser Extensions Editor Plugins Extensible
ActivityWatch
Selfspy
ulogme
RescueTime
WakaTime Only for text editors

For a complete list of the things ActivityWatch can track, see the page on watchers in the documentation.

About this repository

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).

Server

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:

  • Access to a datastore suitable for timeseries/timeperiod-data
  • A query engine and language for such data

The webapp includes:

  • Data visualization & browser
  • Query explorer
  • Export functionality

Watchers

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.

Libraries

  • aw-core - core library, provides no runnable modules
  • aw-client - client library, useful when writing watchers

Contributing

Want to help? Great! Check out the CONTRIBUTING.md file!

Questions and support

Have a question, suggestion, problem, or just want to say hi? Post on the forum!

You can’t perform that action at this time.