你有没有过这样的感觉:一天忙得不可开交,回头一想“到底做了啥?”却答不上来。ActivityWatch 就是那种可以悄悄帮你记下生活和工作轨迹,又不会把数据扔到云端卖掉隐私的工具。
ActivityWatch 是什么玩意儿简单说,ActivityWatch 是一套用 Python(核心 server)和前端(web UI)写成的本地时间与活动记录系统。它会在你电脑上运行“watcher”(观察者),悄悄记录:
- • 当前活跃的浏览器标签页和 URL(如果装了对应 watcher)
- • 键盘鼠标活动,用来判定是否 AFK(离开键盘)这些数据存到你自己的本地数据库(你掌控数据),前端界面可以以图表、时间线、明细等形式展示,支持导出 JSON,甚至通过 REST API 被其他工具读取。
安装与快速上手(以桌面用户为主,Windows/macOS/Linux 都支持)
- • 下载方式去 Releases 页面下载对应平台的安装包(或从 GitHub release 页面)。Linux 用户也能从源码或包管理安装。
- 1. 下载并安装 ActivityWatch 所有组件(aw-server、aw-webui、以及默认的 watcher)。
- 2. 启动 aw-server(Python 实现是默认):通常运行 aw-server 的可执行文件或用命令行启动。
- 3. 启动 watcher(例如 aw-watcher-window、aw-watcher-afk)。大多数平台的安装包会把这些作为启动项自动运行。
- 4. 打开浏览器访问本地 Web UI(通常是 http://127.0.0.1:5600/ 或说明里给的地址)。
- 5. 在界面里看 Dashboard、Timeline、Activity Browser;导出或用 Query Explorer 深挖数据。
- • 想自己开发或扩展 watcher?官方提供 aw-client(Python)、aw-client-js 等客户端库,写一个 watcher 其实就是发 heartbeat 到 server 的过程。文档里有 watchers 列表和 API 说明,适合会写脚本的用户自己扩展。
- • 同步与多设备官方有去中心化同步的规划(目前是 WIP),你也可以把 aw-server 放到你自己的远程主机上,自建同步服务;但默认情况下数据是本地的。
优点
- • 高可扩展:多种 watchers,社区驱动不断增加支持(浏览器、编辑器等)。
- • 高分辨率数据:原始心跳/事件可用来做深度分析。
- • API 完整:REST + client libs + Query API,方便自动化或二次开发。
缺点与现实权衡
- • 初始设置对非技术用户仍有门槛:虽然安装包越来越友好,但要自定义或搭远程 server 需要动手能力。
- • iOS 支持受限:桌面平台支持好,iOS 原生受限(Android 支持更好)。
- • 同步尚不完善:官方去中心化同步仍在完善中,跨设备集成需要自己搭建或等待后续稳定方案。
- • 数据过多或许也会引发焦虑:强迫症用户可能被“太多数据”搞得想不停优化工作方式(这其实是优点也是副作用)。
总结ActivityWatch 是一款非常适合注重隐私、又想深入了解时间使用情况的工具。它用 Python 的 server 做后端,插件式的 watcher 体系让它既强大又灵活。对技术用户和对隐私敏感的用户尤其友好;对纯粹想“点开就用”的非技术用户,可能需要一点耐心配置。总的来说,如果你想要一套可控、开放、能定制的自动时间记录解决方案,ActivityWatch 值得长期投入。
项目地址:https://github.com/ActivityWatch/activitywatch