记录您的活动,让您了解自己如何度过时间。
以安全的方式进行,您可以完全掌控数据。
网站
— 论坛
— 文档
— 发布
贡献者统计
— CI概览
您想接收重大公告的电子邮件更新吗?
注册订阅我们的通讯!
关于
ActivityWatch的目标很简单:在不损害用户隐私的情况下,尽可能多地收集有价值的生活数据。
为实现这一目标,我们创建了一个应用程序,用于在用户本地机器上安全存储数据,并开发了一系列监视器来记录以下数据:
- 当前活动的应用程序及其窗口标题
- 当前活动的浏览器标签页及其标题和URL
- 键盘和鼠标活动,以检测您是否离开键盘("AFK")
作为用户,您可以自由选择收集多少或少量数据(我们希望一些用户能帮助编写监视器,以便我们收集更多数据)。
截图
您可以在网站上找到更多(和更新的)截图。
安装与使用
可以在发布页面下载。
有关如何开始使用的说明,请参阅文档中的指南。
有兴趣从源代码构建吗?这里也有相关指南。
这是又一个时间跟踪器吗?
是的,但我们发现大多数时间跟踪器都缺少一个或多个重要功能。
常见的问题:
- 非开源
- 用户不拥有数据(非开源选项常见)
- 缺乏同步功能(即使有:通常是集中式的,同步服务器知道所有信息)
- 难以设置/使用(大多数开源选项倾向于面向程序员)
- 数据分辨率低(细节程度低,不存储原始数据,条目之间间隔长)
- 难以或无法扩展(收集更多数据并不像它本可以的那样简单)
总结:
- 闭源解决方案存在隐私问题和功能有限的问题。
- 开源解决方案并非针对最终用户开发,通常不易扩展(缺乏适当的API)。它们也缺乏同步功能。
我们有计划解决所有这些问题,并且进展顺利。请参见下表了解我们的进展。
功能对比
基础功能
用户拥有数据 | 图形界面 | 同步 | 开源 | |
---|---|---|---|---|
ActivityWatch | :white_check_mark: | :white_check_mark: | 进行中,去中心化 | :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: | 集中式 | :x: |
WakaTime | :x: | :white_check_mark: | 集中式 | 客户端 |
平台
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: | 功能有限 |
追踪
应用和窗口标题 | AFK | 浏览器扩展 | 编辑器插件 | 可扩展 | |
---|---|---|---|---|---|
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: | 仅适用于文本编辑器 |
有关ActivityWatch可以追踪的完整列表,请参阅文档中关于观察器的页面。
架构
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'>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 -- 管理 --> aw-server;
aw-qt -- 管理 --> aw-notify -- 查询 --> aw-server;
aw-qt -- 管理 --> aw-watcher-window -- 监视 --> S1[活动窗口] -- 心跳 --> aw-server;
aw-qt -- 管理 --> aw-watcher-afk -- 监视 --> S2[AFK状态] -- 心跳 --> aw-server;
浏览器 -- 管理 --> aw-watcher-web -- 监视 --> S3[活动标签] -- 心跳 --> aw-server;
SF -- Dropbox/Syncthing等 --> SF;
aw-server <-- 推送/拉取 --> aw-sync <-- 读/写 --> SF[同步文件夹];
aw-server -- 提供 --> aw-webui -- 查询 --> aw-server;
%% 用户 -- 交互 --> aw-webui;
%% 用户 -- 观察 --> aw-notify;
%% 用户 -- 交互 --> 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;
关于此仓库
这个仓库是ActivityWatch核心组件和官方模块的集合(使用git submodule
管理)。它主要用作提供所有组件的元包,便于打包和安装。这里也是发布完整套件的地方(参见releases)。
服务器
aw-server
是核心服务的官方实现,其他ActivityWatch服务与之交互。它为数据存储和查询引擎提供REST API。它还提供aw-webui
项目开发的Web界面(作为Web应用的前端部分)。
REST API包括:
- 访问适用于时间序列/时间段数据的数据存储
- 针对此类数据的查询引擎和语言
Web应用包括:
- 数据可视化和浏览器
- 查询浏览器
- 导出功能
观察器
ActivityWatch预装了两个观察器:
aw-watcher-afk
通过键盘和鼠标输入跟踪用户活动/非活动状态aw-watcher-window
跟踪当前活动的应用程序及其窗口标题。
ActivityWatch还有很多其他观察器可以跟踪更多类型的活动。比如aw-watcher-web
可以跟踪在网站上花费的时间,多个编辑器观察器可以跟踪编码时间,还有更多!完整的观察器列表可以在文档中找到。
库
aw-core
- 核心库,不提供可运行模块aw-client
- 客户端库,在编写观察器时很有用
文件夹结构
贡献
想要帮忙吗?太好了!请查看CONTRIBUTING.md文件!
问题和支持
有问题、建议、遇到问题,或者只是想打个招呼?请在论坛上发帖!