WakaTime插件无数据需检查三件事:API密钥是否正确配置、VSCode启动时是否联网并显示“Ready”提示、企业网络是否拦截api.wakatime.com;非源码文件如.md/.json默认不统计,需通过extraArgs正则匹配;本地时间不准或多设备共用API key会导致统计错乱,应同步系统时间并分设备使用独立key。

WakaTime 插件装了但没数据?先检查这三件事
WakaTime 在 VSCode 里不显示时间,大概率不是插件坏了,而是认证或权限卡住了。
-
~/.wakatime.cfg文件里api_key必须填对——从 wakatime.com/settings/api-key 复制,别手敲,漏一个字符就静默失败 - VSCode 启动时如果没联网,
wakatime-cli可能卡在初始化,关掉 VSCode 再重开一次,看右下角有没有「WakaTime: Ready」提示 - 某些企业网络会拦截
api.wakatime.com,终端跑curl -I https://api.wakatime.com/api/v1/users/current能通才行;不通就得配代理或换网络
为什么 Python 文件计时正常,但 .md 或 .json 没记录?
WakaTime 默认只统计「被识别为源码」的文件,不是所有后缀都算。
- 它靠 VSCode 的
languageId判断类型,比如python、javascript会记,markdown和json默认不记(哪怕你用它写脚本) - 想让
.json也算编码时间,得在 VSCode 设置里加配置:"wakatime.extraArgs": ["--include", ".*\.json$"] - 注意正则要写完整,
--include .*\.md$才匹配 Markdown,只写md会被忽略
本地时间不准、多台设备混用,会导致统计错乱吗?
会,而且错得挺隐蔽:WakaTime 用的是你本地系统时间戳,不是服务器时间。
- 如果你笔记本休眠后唤醒,系统时间跳了十几分钟,那段「休眠中编辑」会被算成真实编码时间
- 两台电脑用同一个 API key,且都开了自动保存,
fileA.py在 A 机改一行、B 机改一行,可能被合并成一条超长心跳,语言分类也会偏移 - 解决办法只有两个:
timedatectl set-ntp true(Linux/macOS),Windows 开启「同步时间」;多设备务必用不同 API key,或至少关掉其中一台的 WakaTime
想导出每天各语言时长做分析,别手动扒网页
WakaTime 提供了干净的 API,比截图或爬 dashboard 可靠得多。
- 直接调
curl -X GET "https://api.wakatime.com/api/v1/users/current/stats/last_7_days?api_key=xxx",返回 JSON 里languages数组就是你要的数据 - 注意它默认按「最近 7 天」聚合,要单日数据得用
/users/current/durations?start=2024-04-01&end=2024-04-01,日期格式必须是YYYY-MM-DD - 响应里每个语言条目有
digital字段(如"02:15:43"),别直接当秒数用——得自己解析成秒再累加
~/.wakatime.log 最后几行,比反复重装插件有用。



















