wakatime在vscode中真正工作需满足三硬条件:wakatime-cli可执行、~/.wakatime.cfg存在且格式正确(含[settings]和api_key)、项目根目录有.git或.wakatime-project文件;状态栏显示“connecting…”或“idle”说明cli未调用,必须终端验证wakatime-cli --version、检查配置权限与内容,并彻底重启vscode。

装上插件不等于开始统计,WakaTime 在 VSCode 中真正工作必须满足三个硬条件:本地 wakatime-cli 可执行、~/.wakatime.cfg 配置文件存在且格式正确、每个项目根目录有明确的项目标识(否则全是 Unknown Project)。
为什么状态栏一直显示 “Connecting…” 或 “Idle”
这不是插件卡住,而是 wakatime-cli 根本没被调用起来。VSCode 插件只是个触发器,所有解析、认证、上报都靠 CLI 完成。
- 终端运行
wakatime-cli --version,报command not found→ CLI 没装进PATH;macOS/Linux 常因代理中断自动安装脚本,Windows 常因 PowerShell 权限失败 - CLI 装了但插件仍 idle → 检查
~/.wakatime.cfg是否存在、权限是否为600(macOS/Linux)、内容是否严格包含[settings]和api_key = xxxxx两行(不能多空格、不能中文等号、不能带 BOM) - 改完配置或装完 CLI 后只重载窗口 → 必须彻底退出 VSCode(包括菜单栏残留进程),再重新打开,它只在启动时读一次配置
项目名为什么总是 “Unknown Project”
WakaTime 不看 VSCode 工作区名、不看文件夹名、也不认 .code-workspace 文件——它只依赖两个来源:离当前文件最近的 .git 目录名,或项目根目录下的 .wakatime-project 文件。
- 你打开的是
/monorepo/packages/frontend,但.git在/monorepo→ 它取名monorepo,不是frontend - 你并排打开
auth-service和payment-service两个独立目录,但都没初始化 Git → 全部 fallback 到Unknown Project - 最稳解法:在每个实际想区分的目录下(如
auth-service/)手动建一个纯文本文件.wakatime-project,内容就一行,比如auth-service-go
怎么确认某段编辑行为真被统计了
别只盯着状态栏时钟,直接查日志和 CLI 手动验证更可靠。
- VSCode 输出面板(
Ctrl+Shift+U)切换到WakaTime日志,搜索Successfully或ERROR;反复出现Skipping file because it matches ignore说明路径被ignore规则过滤了 - 手动触发一次上报:
wakatime-cli --write --file /tmp/test.py --project test --time $(date +%s),返回Success才说明 CLI 层通了 - 语言统计不准(比如
.ts算进 JavaScript)→ 编辑~/.wakatime.cfg,在[settings]下加[languages]段,写明typescript = ts,tsx
最容易被忽略的是:WakaTime 的「今日时间」有 5–10 分钟延迟,且每 2 分钟才发一次心跳;关机前如果没联网,最后几分钟的编辑可能缓存未上传——别等刷新 Dashboard,先确保 wakatime-cli --sync 能跑通。











