OpenCode WakaTime 追踪插件
将 OpenCode 中的 AI 编码活动、文件变更和耗时记录到 WakaTime。
- Star 数
- ★ 204
- 最近更新
- 21 天前
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 64/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 平台专用
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 使用 OpenCode v1 或 v2、希望将 AI 编码时长汇总到 WakaTime 的个人开发者。
- 不适合
- 不使用 OpenCode 的开发者
- 不希望向 WakaTime 发送活动数据的团队
- 源码审查
- 64/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
这是一个面向 OpenCode v1 和 v2 的 WakaTime 插件,通过相应版本的插件接口收集编码活动。它跟踪文件读取及 edit、write、patch、multiedit 和 batch 等操作,并把文件路径、项目目录及可用的增删行数交给共享心跳队列处理。插件调用 wakatime-cli 向 WakaTime API 发送心跳,按项目每分钟限流一次,并在会话空闲或结束时刷新队列。心跳包含“ai coding”类别和 AI 行变更数据,便于在 WakaTime 查看 AI 编码指标。它通过 OpenCode 配置或 npm 安装器注册,需配置 WakaTime API 密钥;安装器只修改全局 OpenCode 配置。
插件从 OpenCode v1 的 message.part.updated、chat.message 和 session 事件,或 v2 的 ctx.tool.hook、ctx.session.hook 与 ctx.event.subscribe 收集活动。它提取文件路径和可获得的 additions、deletions;写入操作不估算行数。活动进入心跳队列后,插件按项目每分钟最多发送一次,并在 idle/end 时刷新待处理心跳。wakatime-cli 将实体路径、项目工作目录、净 AI 行变更和“ai coding”类别发送到 WakaTime API;需要 WakaTime API 密钥,CLI 不存在时插件可自动下载。
- 使用 OpenCode v1 或 v2、希望将 AI 编码时长汇总到 WakaTime 的个人开发者。
- 需要按文件查看 OpenCode 读取和修改活动的开发者。
- 想把可识别的增删行数作为 AI 编码指标发送到 WakaTime 的团队成员。
- 通过 batch 工具执行文件操作、仍希望记录其子操作活动的 OpenCode 用户。
如何安装或部署这个 Agent?
先在 ~/.wakatime.cfg 配置 WakaTime API 密钥;如设置了 WAKATIME_HOME,配置文件路径为 $WAKATIME_HOME/.wakatime.cfg。随后在 OpenCode 配置中注册插件:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-wakatime"]
}也可以通过 npm 全局安装器注册:
npm i -g opencode-wakatime
opencode-wakatime --install安装后重启 OpenCode。安装器编辑全局 OpenCode 配置,不修改项目配置。
如何使用这个 Agent?
配置好 API 密钥并重启 OpenCode 后,照常使用 OpenCode。插件会自动跟踪支持的文件工具活动并发送限流心跳;会话空闲或结束时会刷新队列。要移除全局注册:
opencode-wakatime --uninstallWakaTime CLI 可由插件自动下载;macOS 用户也可手动安装:
brew install wakatime-cli这个 Agent 有哪些优点和局限?
- 支持 OpenCode v1 和 v2,并提供共享插件配置和 npm 安装器。
- 跟踪 read、edit、write、patch、multiedit,以及可识别子操作的 batch 工具。
- 按项目每分钟限流,并在会话空闲或结束时刷新心跳。
- 可自动下载和更新 wakatime-cli,并发送 AI 行变更指标。
- 仅面向 OpenCode,且需要 WakaTime API 密钥和 WakaTime 服务。
- 心跳依赖 wakatime-cli;自动下载需要网络和对 WakaTime 文件目录的写入权限。
- write 操作没有行数估算;v2 不支持内置 multiedit 工具。
- README 指出 v2 插件 API 仍在变化,目标接口为 @opencode/plugin 2.0.18。
这个 Agent 与同类方案有什么区别?
README 将本插件的灵感来源指向 claude-code-wakatime,并另行推荐 codex-wakatime 用于 OpenAI Codex CLI;本插件本身面向 OpenCode。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| OpenCode WakaTime 追踪插件 当前 | 64 · 存在缺口 | Agent 插件 / 技能 | ★ 204 | 21 天前 | TypeScript | — |
| cc-router 多模型聚合网关 | 77 · 表现良好 | 桌面应用免费 + 模型费 | ★ 283 | 2 天前 | Rust | Codex · Claude Code · OpenAI API · Claude API |
| UmaDev | 73 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 265 | 20 天前 | Rust | Codex · Claude Code |
| Autoprompt Skill | 69 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 1.2k | 15 天前 | JavaScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
插件只围绕 OpenCode 活动、项目文件路径及心跳工作,文档列明发送到 WakaTime 的实体、目录、AI 行数、类别和插件标识,且说明 API 密钥放在 WakaTime 配置中。未说明心跳是否包含其他敏感元数据或提供数据最小化选项;配置插件后会自动追踪并联网下载 CLI,没有逐次确认机制,因此未给满分。安装器提供卸载和保留其他设置的说明;README 与包元数据给出仓库和包名,但作者字段为空,发布者身份也未验证,来源归属有限。
README 解释 v1/v2 的入口、钩子、速率限制、队列刷新和部分清理行为,且对写操作不提供行数、v2 API 变化等边界有说明。包依赖包括固定版本的 jsonc-parser,并声明 tar 覆盖版本下限;但自动下载的 CLI 及上游 OpenCode/WakaTime 服务仍是外部依赖。故障排查列出配置、日志、API 密钥、网络及权限检查;没有证据可将静态说明视作实际运行验证。
适用对象是使用 OpenCode v1 或 v2、希望把 AI 编码活动记录到 WakaTime 的用户。文档逐项说明两版钩子及工具覆盖,并指出 v2 API 目标版本、旧预览可能不同、v2 不支持内置 multiedit 等限制。安装说明覆盖 npm 配置、全局安装器、XDG 路径及项目级配置差异;对非标准环境的支持范围仍有限。
README 按功能、先决条件、安装、工作方式、文件、开发与故障排查组织;安装、升级入口、卸载和多种配置文件处理写得细致。MIT 许可证文件与包元数据一致。命名和入口有说明,但版本变更依据主要见包版本及 CI/语义化发布配置,未提供本次材料中的逐版变更记录;维护者责任和支持渠道也没有明确说明,因此扣分。
插件声称记录文件活动、AI 行数和耗时,并按项目限频、在会话结束时刷新,可为 WakaTime 仪表盘提供有用活动数据。README 说明心跳字段及读取/修改工具差异,但写入不估算行数,v1/v2 覆盖并不完全。日常价值明确,然而没有量化追踪精度、资源成本或效益,故为中等分。
主要功能声明可在 README 中追溯到具体工具、钩子、心跳字段及安装逻辑;包元数据、许可证和 CI 配置可补充支持包名、许可证及项目流程的说明。多处行为有跨文件线索,但源材料没有测试文件内容或独立运行结果;文档对限制和目标 API 版本有区分,仍有一些功能表述仅由 README 声明,未给满分。
- 插件会将文件路径及 AI 编码活动心跳发送至 WakaTime;使用前应确认这符合你的数据记录要求。
- CLI 可自动下载并更新,依赖网络及 ~/.wakatime/ 或 WAKATIME_HOME 的写入权限;v2 API 仍可能变化。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
[1.4.0](https://github.com/angristan/opencode-wakatime/compare/v1.3.9...v1.4.0) (2026-09-27) Features * support OpenCode v1 and v2 in one package ([#87](https://github.com/angristan/opencode-wakatime/issues/87)) ([e771a3c](https://github.com/angristan/opencode-wakatime/commit/e771a3c84f4d5379a04d85eb46f58ef76680ecf9))在 GitHub 查看 ↗ -
发布说明摘录
[1.3.9](https://github.com/angristan/opencode-wakatime/compare/v1.3.8...v1.3.9) (2026-07-14) Bug Fixes * batch wakatime heartbeats ([cdc1520](https://github.com/angristan/opencode-wakatime/commit/cdc15208fb85b409aba06f77bad9fcaef53cf904)) * flush pending heartbeats on idle ([4231886](https://github.com/angristan/opencode-wakatime/commit/4231886ab781d372c185d8d9b9727023644fe02f)) * kill heartbeats when opencode exits ([1840e5c](https://github.com/angristan/opencode-wakatime/commit/1840e5c04d45bc272b120ee35700aa762c25ea62)) …在 GitHub 查看 ↗ -
发布说明摘录
[1.3.8](https://github.com/angristan/opencode-wakatime/compare/v1.3.7...v1.3.8) (2026-05-13) Bug Fixes * update vulnerable dev dependencies ([b068880](https://github.com/angristan/opencode-wakatime/commit/b068880b9939136412124c5083f31130f9776b06))在 GitHub 查看 ↗