activitywatch README

The project's README from github.com/ActivityWatch/activitywatch. As one markdown file: 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.


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

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:

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 the releases page.

For instructions on how to get started, please see the 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:

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.

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

Architecture

graph TD;
  aw-qt[<a href='https://github.com/ActivityWatch/aw-qt'>aw-qt</a>];
  aw-notify[<a href='https://github.com/ActivityWatch/aw-notify-rs'>aw-notify</a>];
  aw-server[<a href='https://github.com/ActivityWatch/aw-server'>aw-server</a>];
  aw-webui[<a href='https://github.com/ActivityWatch/aw-webui'>aw-webui</a>];
  aw-watcher-window[<a href='https://github.com/ActivityWatch/aw-watcher-window'>aw-watcher-window</a>];
  aw-watcher-afk[<a href='https://github.com/ActivityWatch/aw-watcher-afk'>aw-watcher-afk</a>];
  aw-watcher-web[<a href='https://github.com/ActivityWatch/aw-watcher-web'>aw-watcher-web</a>];
  aw-sync[<a href='https://github.com/ActivityWatch/aw-server-rust/tree/master/aw-sync'>aw-sync</a>];

  aw-qt -- Manages --> aw-server;
  aw-qt -- Manages --> aw-notify -- Queries --> aw-server;
  aw-qt -- Manages --> aw-watcher-window -- Watches --> S1[Active window] -- Heartbeats --> aw-server;
  aw-qt -- Manages --> aw-watcher-afk -- Watches --> S2[AFK status] -- Heartbeats --> aw-server;
  Browser -- Manages --> aw-watcher-web -- Watches --> S3[Active tab] -- Heartbeats --> aw-server;
  SF -- Dropbox/Syncthing/etc --> SF;
  aw-server <-- Push/Pull --> aw-sync <-- Read/Write --> SF[Sync folder];
  aw-server -- Serves --> aw-webui -- Queries --> aw-server;

  %% User -- Interacts --> aw-webui;
  %% User -- Observes --> aw-notify;
  %% User -- Interacts --> aw-qt;

classDef lightMode fill:#FFFFFF, stroke:#333333, color:#333333;
classDef darkMode fill:#333333, stroke:#FFFFFF, color:#FFFFFF;

classDef lightModeLinks stroke:#333333;
classDef darkModeLinks stroke:#FFFFFF;

class A,B,C,D,E,G lightMode;
class A,B,C,D,E,G darkMode;

%% linkStyle 0 stroke:#FF4136, stroke-width:2px;
%% linkStyle 1 stroke:#1ABC9C, stroke-width:2px;

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

ActivityWatch has two server implementations:

Both provide a REST API to a datastore and query engine, and serve the web interface developed in the aw-webui project (which provides the frontend).

The REST API includes:

The frontend (aw-webui) includes:

Watchers

ActivityWatch comes pre-installed with two watchers:

There are lots of other watchers for ActivityWatch which can track more types of activity. Like 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 the documentation.

Libraries

Folder structure

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!

activitywatch (ActivityWatch/activitywatch)

Searching Database…

这是什么?ActivityWatch 是一款免费开源的自动时间记录工具。它会记录你用了哪些应用和网站、活跃程度如何,数据保存在你自己的电脑上,并通过仪表盘展示出来,让你看清时间到底花在了哪里。
它到底会记录我哪些东西?当前正在使用的应用及其窗口标题、浏览器标签页(包括标题和网址),以及键盘和鼠标的活动——最后这项是它用来判断你是否离开电脑的依据。还可以通过额外的 watcher 采集更多数据来源。
我怎么把它装起来跑起来?从发布页面下载适合你操作系统的版本,然后按照文档里的入门指南操作即可。发布包自带整套工具,开箱即用;这个仓库本身是一个由 git 子模块组成的元包,主要用于打包和从源码构建。
需要注册账号或使用在线服务吗?不需要——没有任何需要注册的东西,也不依赖任何云服务,整套程序都运行在你自己的电脑上。除了内置的两个 watcher,如果你想监控更多内容,浏览器和代码编辑器的 watcher 是仅有的可选额外安装。
能在多台设备上使用吗?暂时不行:同步功能还在开发中,计划采用去中心化方案,这样就不会有中央服务器看到你的数据。目前请把它当作单机工具来用。
它支持哪些平台?Windows、macOS、Linux 和 Android。不支持 iOS——README 的平台表格里标注 ActivityWatch 在 iOS 上不可用。
我的活动数据会离开我的电脑吗?不会。数据写入本地存储,完全归你所有——这正是该项目宣称的目标:尽可能多地收集生活数据,同时不损害用户隐私。
它和 RescueTime 或 WakaTime 有什么区别?那些是闭源服务,你的数据保存在它们的服务器上。ActivityWatch 则是完全开源的,数据本地归你所有,计划中的同步采用去中心化而非中心化方案,而且它保存的是原始事件,而不是粗略的汇总统计。
仪表盘上能看到什么?一个基于浏览器的界面,带有时间线和活动汇总,可以按应用、网站和自定义分类来细分查看;此外还有用于编写和调试查询的 query explorer、原始事件浏览,以及对单个 bucket 或整个数据集的 JSON 导出。
可以扩展它或在上面开发自己的工具吗?可以。本地服务器提供 REST API——包括 buckets、events、heartbeats 和一个小型查询脚本语言——并附带 Python、JavaScript 和 Rust 的官方客户端库。基于 aw-core 和 aw-client 编写新的 watcher,就是官方推荐的扩展数据采集方式。
Size
1.8 MB
Stars
19.3K
Age
10y
Commits · 90 Days