Description
"The world's best free and open-source automated time-tracker"
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. Runs on Linux, Windows, macOS, Android.
ActivityWatch alternatives and similar software solutions
Based on the "Personal Dashboards" category.
Alternatively, view activitywatch alternatives based on common mentions on social networks and blogs.
-
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more. -
Thingsboard
Open-source IoT Platform - Device management, data collection, processing and visualization. -
Dashing
Sinatra based, open sourced dashboard builder from Shopify. -
Habitica
A habit tracker app which treats your goals like a Role Playing Game. -
Dashy
🚀 A self-hostable personal dashboard built for you. Includes status-checking, widgets, themes, icon packs, a UI editor and tons more! -
Freeboard
A damn-sexy, open source real-time dashboard builder for IOT and other web mashups. A free open-source alternative to Geckoboard. -
wger
Self hosted FLOSS fitness/workout, nutrition and weight tracker written with Django -
Personal management system
Your web application for managing personal data. <[email protected]> -
Baby Buddy
A :baby: buddy to help caregivers track sleep, feedings, diaper changes, and tummy time to learn about and predict baby's needs without (as much) guess work. -
Thingspeak
ThingSpeak is an open source “Internet of Things” application and API to store and retrieve data from things using HTTP over the Internet or via a Local Area Network. With ThingSpeak, you can create sensor logging applications, location tracking applications, and a social network of things with status updates. -
Phant
Phant is a modular data logging tool for collecting data from the Internet of Things. -
DashMachine
Another web application bookmark dashboard, with fun features. -
simple-dash
A simple, fully responsive Dashboard to forward to the services of your choice! -
Homepage
A simple, standalone, self-hosted PHP page that is your window to your server and the web. -
iDashboard-PHP
HTPC Dashboard to load website services, written in PHP -
Hiccup
A static start page to get to your most important links, FAST.
Updating dependencies is time-consuming.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ActivityWatch or a related project?
README
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
<!--
TODO: Best practices badge that we should work towards, see issue #42.
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 an application for safe storage of the data on the user's 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 its 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
You can find more (and newer) screenshots on the website.
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 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 | :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 |
Platforms
<!-- TODO: Replace Platform names with icons -->
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 |
Tracking
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.
About this repository
This repo is a bundle of the core components and official modules of ActivityWatch (managed with git submodule
). Its 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 its 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 track 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 modulesaw-client
- client library, useful when writing watchers
Folder structure
Contributing
Want to help? Great! Check out the [CONTRIBUTING.md file](./CONTRIBUTING.md)!
Questions and support
Have a question, suggestion, problem, or just want to say hi? Post on the forum!