跳到内容
分享网

月底填工时表想不起时间去哪了:ActivityWatch 在后台自己记,数据只落在本机、连账号都不用注册

软件工具 Linux macOS Windows 4 天前更新 浏览 6 ↓ 直达下载
ActivityWatch — activitywatch.net
本页目录 13 节
  1. 1 先看规格:它是什么,边界在哪
  2. 2 它是怎么做到「不用你点」的
  3. 3 三种真的用得上的用法
  4. 4 三个视图,各管一件事
  5. 5 装和上手:五步
  6. 6 两个必须动一下的设置
  7. 7 它做不到的七件事(这部分必须说清楚)
  8. 8 它适合谁,不适合谁
  9. 9 两个常见故障,先自己排一遍
  10. 10 隐私:数据不上云,但这份日志很细
  11. 11 免费软件怎么活:它把商业模式写在明面上
  12. 12 和站上几篇的分工
  13. 13 结语:它卖的不是数据,是「别再凭印象」

先说个具体场景。

月底填工时表,或者给客户报这一轮的外包价,你脑子里只剩一句话:这个月很忙。忙到什么程度?哪几件事吃掉了时间?答不上来。于是凭印象填一个数字——这种事几乎每个人都干过。

不是不想记,是「手动计时」这个动作本身活不过三天。开会前忘了点开始,回来发现空了两小时;下午切过十几个窗口,哪个属于哪个项目自己也理不清。任何需要「先点一下」的计时工具,最后都会变成一堆忘记关的计时器。

ActivityWatch 走的是另一条路:你什么都不用点,它自己在后台记。每几秒一条心跳,记下当前是哪个程序、哪个窗口标题、浏览器里哪个页面;这些碎片在本地拼成时间线、应用排行、分类统计。你要做的只有一件事——事后去看。

先看规格:它是什么,边界在哪

项目 情况
是什么 自动(被动)时间记录器:不用手动开始/结束,后台记录应用与窗口标题
平台 Windows / macOS / Linux / Android;浏览器扩展支持 Chrome、Firefox(Edge 亦可)
许可 MPL-2.0 开源,免费、无功能锁、无广告、无用量上限
版本 v0.14.1(2026-10-10);另有一个实验性的 Tauri 发行版(Windows 安装包 41.5 MB,经典版 77.7 MB)
数据在哪 本机 SQLite 数据库(Windows 默认在 %LOCALAPPDATA%activitywatch 下),不上传、不注册账号
界面在哪 装完常驻托盘,用浏览器打开 localhost:5600 就是完整界面
社区 GitHub 19,376 星、1,053 个 fork(2026-10-27 抓取),2016 年立项、至今仍在活跃提交

它是怎么做到「不用你点」的

理解它的结构,后面那些限制就都能提前想到。ActivityWatch 不是一个大程序,是一组小程序围着本地一个服务转:

  • aw-server:本地服务端,默认监听 localhost:5600,负责收数据和提供网页界面。它不连外网。
  • aw-watcher-window:每隔几秒看一眼「当前前台窗口是谁、标题是什么」,写成一条事件。
  • aw-watcher-afk:判断你有没有在动键盘鼠标,用来把「开着电脑但人不在」的时间剔掉。
  • 浏览器扩展:把「哪个标签页」这一层补上——否则你只能看到「Chrome」三个字,看不到具体网页。
  • 编辑器 / 媒体类 watcher:社区写的 VS Code、JetBrains、Spotify 等,按需装。

这些 watcher 把数据塞进 bucket(可以理解成按来源分的表),再统一落到本机 SQLite。所以有两条实用推论:第一,所有统计都可以被导出和重算,不是黑箱;第二,某个 watcher 崩了,只是它那张表停更,不影响别的——服务端短暂不可用时,心跳会先在本地排队。

它还有一个 REST API。会写脚本的话,可以自己做 watcher(比如记录你在某个内部系统里点了多少次),也可以把数据拉去做自己的图表。这一点是它跟商业时间追踪工具最本质的区别:数据在你的硬盘上,而且有接口。

三种真的用得上的用法

一、看清「忙」的构成

打开 localhost:5600 的 Activity 视图,一天会被摊成几块:应用排行(哪个程序多久)、窗口标题排行(哪个文件/项目多久)、分类统计(工作、沟通、媒体各占多少)、时间线柱状图(几点在干什么)。

第一次看通常会有两个发现:某几个「以为只用了十分钟」的东西其实吃了两小时;而真正推进项目的那段时间,比自己估计的短得多。这些数字不改变你的能力,但它改变你下次估工时的依据。

拿官网那张演示截图当例子读一遍,会更直观(截图是官方的演示数据,不是我的实测结果):那天「活跃时间 11 小时 4 分 53 秒」,应用排行第一是代码编辑器 3 小时 58 分,第二是 Chrome 2 小时 20 分,接着是 Firefox 56 分、YouTube 42 分、Slack 35 分;窗口标题排行第一是某个 .tsx 文件 1 小时 5 分;分类统计里「工作 > 编程」5 小时 37 分、「媒体 > 视频」1 小时 37 分、「沟通 > 即时消息」47 分。

这组数字最值得看的不是「编程 5 小时 37 分」,而是「编程 5 小时 37 分 + 视频 1 小时 37 分」出现在同一天。换成一个手动计时的工具,这一天只会被记成「工作 5 小时 37 分」——那 1 小时 37 分的视频,你根本不会想起来点开始。被动记录的价值就在这些「想不起来」的地方。

二、找回「上周改的那段」

窗口标题这一栏,在多数编辑器里就是文件名加项目名。所以当你说「上周三下午我好像改过一个配置文件、但忘了是哪个」的时候,翻时间线比翻聊天记录快:定位到那天下午,看窗口标题的时间段,文件名直接写在上面。

这也是它比「截图监控类工具」更实用的地方——它记的是坐标,不是内容。坐标足够让你回忆起在哪,但不至于把屏幕上的每一个字都留下来。

三、工时核对与报价

接私活的人最需要这一条。报价时按「三天」估,实际做了六天;下次还敢这么估吗?ActivityWatch 可以把某一周里落在某个项目上的时间单独挑出来,用真实工时去校正下一次报价。这件事手动计时永远做不准,因为改代码的时候你根本不会想起来点开始。

三个视图,各管一件事

  • Activity(活动):按天/7 天/30 天聚合,就是上面那些排行和分类。适合「复盘」——一周结束时看一次,比每天看有用。
  • Timeline(时间线):把一天切成一条横带,几点在哪个窗口一目了然。适合「定位」——想找某件事发生在什么时候,翻这条带子最快。
  • Stopwatch(秒表):手动计时,可选项。它存在的意义是给「必须精确到分钟去开票」的活兜底,平时不用碰。

另外两个不显眼但很有用的功能:自定义视图(Activity 页右上角的「New view」,可以只留自己想看的几个板块,存下来当固定仪表盘)和数据导出(把原始事件导成文件,自己拿去做表或备份)。这两个加起来,意味着它不只是个「看板」,还是一个能把原始数据带走的记录器。

装和上手:五步

  1. 下载。官网下载页按系统给安装包(Windows 是 .exe,也有便携 zip;macOS 按芯片分 dmg;Linux 有 deb / rpm / AppImage / zip)。不想折腾就用经典版;Linux 走 Wayland 的可以试实验性的 Tauri 版(原因见下一节)。
  2. 装完别关,让它待在托盘里。数据是从这一刻开始攒的,装之前的时间它补不回来——这一点要提前有心理准备。
  3. 浏览器打开 localhost:5600。这就是全部界面:Activity(当天/7 天/30 天)、Timeline(时间线)、Stopwatch(手动计时,可选)。
  4. 装浏览器扩展。只装桌面端的话,浏览器里永远显示「Chrome」「Firefox」,看不到具体网页。Chrome 和 Firefox 都有官方扩展。
  5. 调两个设置:分类规则和 AFK 阈值。分类默认会给你一套通用规则,把自己的项目名加进去才有意义(见下一节)。

两个必须动一下的设置

分类(Categories)支持正则。默认给的是「工作/媒体/沟通」这类通用目录,你想知道「这个月在某客户上花了多少小时」,就得自己加一条规则,匹配项目名或窗口标题里的关键词。规则从上往下匹配,第一条命中就停——所以越具体的规则要放越前面。

AFK 阈值默认 3 分钟。意思是三分钟没有任何键鼠输入,那段时间就不算「活跃」。这个默认值对写文档的人合适,对看视频、开会的人偏严。改法在文档里写得很清楚:托盘菜单打开配置目录,编辑 aw-watcher-afk/aw-watcher-afk.toml,把 timeout 改成想要的秒数(比如 300 就是 5 分钟),重启生效。另外有一条例外:浏览器标签页正在放声音时,默认不算离开——所以看视频、开线上会不会被记成 AFK。

它做不到的七件事(这部分必须说清楚)

  1. 它只记窗口标题,不记内容。你在文档里写了什么、代码改了什么,它一概不知。想当「行为审计」用,它不够;这恰恰是它比截图类工具安全的地方。
  2. AFK 判断很粗。看纸质材料、用笔在平板上写字、盯着屏幕思考,都会被算成离开。官方文档自己也写了:这些数据只能当估算看,因为「什么算活跃」本身就是主观的。
  3. 不装浏览器扩展,网页层就是空的。你只能看到「Chrome 2 小时」,看不到「在某个网站 1 小时 40 分」。
  4. Linux 的 Wayland 下拿不到活动窗口。Wayland 协议里根本没有「当前活动窗口」这个概念,官方也直言这是出于安全的设计。解法三条:切回 X11、换一个支持 Wayland 的 watcher、或者用 v0.14 起的 Tauri 发行版(Linux 上捆绑了 awatcher)。
  5. macOS 要授权「辅助功能」。读窗口标题需要这个权限。好消息是它不需要屏幕录制、也不需要全盘访问——权限要得越少,越说明它确实没在偷看。
  6. 跨设备同步要自己搭。v0.13.0 起内置 aw-sync,v0.14.0 起能跨桌面和 Android;但它走的是「自带网盘」路线:把 ~/ActivityWatchSync 目录用 Syncthing、Dropbox、网盘或 rsync 同步,各设备只写自己的文件、只读别人的。默认不开,默认也只推送不拉取,要拉取得改配置文件。这不是「登录就能同步」的体验。
  7. 多屏和高分屏下,窗口标题可能只反映主屏应用。它记录的是「活动窗口」,不是「你眼睛在看哪里」——分屏工作时,两个窗口各占一半,它只能记其中一个。

如果确实要把笔记本、台式机和手机的数据合到一起看,顺序是这样(官方文档给的路径,三步):① 先用 Syncthing 或任意网盘把 ~/ActivityWatchSync 这个目录在设备之间同步起来;② 在每台机器上跑一次 aw-sync sync,它会把自己的数据写进去、把别人的数据拉下来;③ 想让它常驻,就在模块菜单里启动 aw-sync,并到配置文件里把 [daemon] pull = true 打开(默认只推不拉)。别的设备的数据会以 -synced-from-设备名 的桶单独存在,不会和你本机的数据混成一锅——这也是它敢「没有服务器」还不出同步冲突的原因。

它适合谁,不适合谁

你的情况 结论
接私活 / 自由职业,需要按项目算工时 装。但配 Toggl Track 一起用效果最好:一个记「该收多少钱」,一个记「时间到底花在哪」
总觉得一天过完却说不出干了什么 装。这是它最对症的场景,一周就能看出规律
在意隐私、不接受把使用记录传到别人服务器 装。无账号无云,数据在本地 SQLite,可导出可删
要的是「精确到分钟的工时发票」 别指望它。它给的是估算,开票请用手动计时
老板想用它监控员工 不合适,也不该。它没有服务端、没有远程上报,天生不是这个用途
Linux 且坚持用 Wayland 先试 Tauri 版,再决定要不要切 X11

两个常见故障,先自己排一遍

① 打开 localhost:5600 报「端口 5600 被占用 / Address already in use」。九成是它已经在跑了——比如上次没正常退出,或者开机自启的同时你又手动开了一次。先直接刷新那个网页:能打开就是已经在跑,关掉多余的那次启动即可。网页打不开才是真的被别的程序占了,用 netstat -ano(Windows)或 lsof -i :5600(macOS/Linux)查是谁。

② 明明坐在电脑前,却显示一大片「离开」。先确认 aw-watcher-afk 在跑,再看时间线里离开的那段是不是真的没有任何输入(看视频、读纸质材料都会这样)。要么调大 timeout,要么接受它就是估算——这是被动记录的固有代价,不是 bug。

隐私:数据不上云,但这份日志很细

「本地优先」是它最主要的卖点,也是它区别于 RescueTime 这类服务的地方:没有账号、没有服务器、没有上传,数据在你自己硬盘的 SQLite 里,随时可以导出、备份、删掉。

但这句话要反过来读一遍才完整:这份日志细到什么程度?它会告诉你某天 14:03 到 15:47 你在哪个文件、哪个网页、哪个聊天窗口里。放在自己电脑上,这是一面镜子;放在会被同步的目录里、或者共享的办公电脑上,它就是一份自动写好的工作流水。

所以给三个很具体的建议:① 别把数据目录塞进会自动云同步的文件夹(除非你清楚后果);② 笔记本外带、多人共用一台机器时,考虑开系统盘加密;③ 定期清理——它不需要你攒十年的数据,看最近三个月足够了。顺便说一句,这类工具本身是中性的:同一份技术,可以是「自我认知」,也可以是「员工监控」。ActivityWatch 选择了不给服务端,等于把「被远程监控」这条路自己堵死了,但数据文件本身还是能被拷走。

免费软件怎么活:它把商业模式写在明面上

这一点值得单独说,因为它解释了「为什么这东西免费还没有广告」。

它的订阅叫 AW Pro:个人 5 美元/月(或 50 美元/年,等于送两个月),团队 20 美元/座位/月,还有一次性的「Believer」250 或 450 美元。而官网把最关键的一句话直接写在页面上:「订阅不解锁任何功能,所有功能对所有人开放。」

钱去哪了也写得清楚:开发维护、保持独立,公司是瑞典的 Superuser Labs,创始人 100% 持股、没有外部投资人、财务公开。它甚至提到,只要大约 10 万活跃用户里有一小部分人订阅,就够养一个全职开发者。

对比一下就很直观:RescueTime 的付费档是 12 美元/月,而且数据在人家服务器上;ActivityWatch 一分钱不付也能用全部功能,付钱只是「别让它死」。这是两种完全不同的软件生意。

和站上几篇的分工

站上写过几个容易和它混淆的工具,这里划清界线:

  • Toggl Track:手动计时,点了开始才有记录,适合对外出工时、按项目开票;ActivityWatch 是自动记录,适合事后复盘。两个可以一起用——一个记账,一个照镜子。
  • Forest:管的是「别摸手机」,靠正反馈逼你专注;它不产出任何时间报表。
  • NetLimiter:按程序限制带宽并统计流量,统计的是「网络」而不是「注意力」。
  • CopyQ:剪贴板历史,解决的是「刚复制的东西被覆盖了」,跟时间记录不冲突。

一句话:想知道「时间花在哪」,用 ActivityWatch;想知道「这单该收多少钱」,用 Toggl。

结语:它卖的不是数据,是「别再凭印象」

这类工具最大的价值,不在于那张漂亮的统计图,而在于它会在某个瞬间打你一巴掌:你以为每天写代码六小时,实际四小时;你以为只在社交媒体上花了二十分钟,实际一小时四十分钟。

数据不会让你变自律,但它会让「凭印象」这件事失效。而所有的估工时、报价、复盘、年度总结,本质上都是在跟自己的印象打交道——印象一旦有一个客观参照,判断的质量立刻不一样。

ActivityWatch 没有花哨功能,界面甚至有点工程师味,但它做对了三件事:不用你操作、数据留在本地、全平台免费开源。这三条同时成立的工具,市面上不多。想搞清楚自己的时间到底去哪了,从这一个开始就够了。

资源信息
界面语言 安装包为英文向导,界面是跑在 localhost:5600 的网页;文档有社区翻译,若浏览器开了网页翻译也能读
收费方式 开源免费
适用平台 Linux / macOS / Windows
获取方式 直链下载
资源更新 2026-10-27
页面更新 2026-10-27

↓ 获取资源

点击按钮直接前往资源页面。