OpenCode WakaTime 追踪插件

将 OpenCode 中的 AI 编码活动、文件变更和耗时记录到 WakaTime。

Star 数
★ 204
最近更新
21 天前
License
MIT
主语言
TypeScript

30 秒速览

运行形态
Agent 插件 / 技能命令行工具
可在哪里用
平台专用
上手难度
中 · 需要几步配置
开始前需要
OpenCode v1 或 v2Node.jsWakaTime API 密钥wakatime-cliShell / 命令行网络访问本地文件系统
典型场景
使用 OpenCode v1 或 v2、希望将 AI 编码时长汇总到 WakaTime 的个人开发者。
不适合
  • 不使用 OpenCode 的开发者
  • 不希望向 WakaTime 发送活动数据的团队

这个 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 不存在时插件可自动下载。

  1. 使用 OpenCode v1 或 v2、希望将 AI 编码时长汇总到 WakaTime 的个人开发者。
  2. 需要按文件查看 OpenCode 读取和修改活动的开发者。
  3. 想把可识别的增删行数作为 AI 编码指标发送到 WakaTime 的团队成员。
  4. 通过 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 --uninstall

WakaTime 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?

FollowAgents 源码审查 · FARS-2.1
存在缺口
64/ 100 五分制 3.2 / 5
信任安全 16/29
可靠稳定 9/14
适用触发 12/18
规范维护 13/18
有效结果 9/13
证据核验 5/8
查看各维度的扣分理由
信任安全16 / 29 · 2.8/5

插件只围绕 OpenCode 活动、项目文件路径及心跳工作,文档列明发送到 WakaTime 的实体、目录、AI 行数、类别和插件标识,且说明 API 密钥放在 WakaTime 配置中。未说明心跳是否包含其他敏感元数据或提供数据最小化选项;配置插件后会自动追踪并联网下载 CLI,没有逐次确认机制,因此未给满分。安装器提供卸载和保留其他设置的说明;README 与包元数据给出仓库和包名,但作者字段为空,发布者身份也未验证,来源归属有限。

可靠稳定9 / 14 · 3.2/5

README 解释 v1/v2 的入口、钩子、速率限制、队列刷新和部分清理行为,且对写操作不提供行数、v2 API 变化等边界有说明。包依赖包括固定版本的 jsonc-parser,并声明 tar 覆盖版本下限;但自动下载的 CLI 及上游 OpenCode/WakaTime 服务仍是外部依赖。故障排查列出配置、日志、API 密钥、网络及权限检查;没有证据可将静态说明视作实际运行验证。

适用触发12 / 18 · 3.3/5

适用对象是使用 OpenCode v1 或 v2、希望把 AI 编码活动记录到 WakaTime 的用户。文档逐项说明两版钩子及工具覆盖,并指出 v2 API 目标版本、旧预览可能不同、v2 不支持内置 multiedit 等限制。安装说明覆盖 npm 配置、全局安装器、XDG 路径及项目级配置差异;对非标准环境的支持范围仍有限。

规范维护13 / 18 · 3.6/5

README 按功能、先决条件、安装、工作方式、文件、开发与故障排查组织;安装、升级入口、卸载和多种配置文件处理写得细致。MIT 许可证文件与包元数据一致。命名和入口有说明,但版本变更依据主要见包版本及 CI/语义化发布配置,未提供本次材料中的逐版变更记录;维护者责任和支持渠道也没有明确说明,因此扣分。

有效结果9 / 13 · 3.5/5

插件声称记录文件活动、AI 行数和耗时,并按项目限频、在会话结束时刷新,可为 WakaTime 仪表盘提供有用活动数据。README 说明心跳字段及读取/修改工具差异,但写入不估算行数,v1/v2 覆盖并不完全。日常价值明确,然而没有量化追踪精度、资源成本或效益,故为中等分。

证据核验5 / 8 · 3.1/5

主要功能声明可在 README 中追溯到具体工具、钩子、心跳字段及安装逻辑;包元数据、许可证和 CI 配置可补充支持包名、许可证及项目流程的说明。多处行为有跨文件线索,但源材料没有测试文件内容或独立运行结果;文档对限制和目标 API 版本有区分,仍有一些功能表述仅由 README 声明,未给满分。

风险与缓解建议
  • 插件会将文件路径及 AI 编码活动心跳发送至 WakaTime;使用前应确认这符合你的数据记录要求。
  • CLI 可自动下载并更新,依赖网络及 ~/.wakatime/ 或 WAKATIME_HOME 的写入权限;v2 API 仍可能变化。
证据充分度:低 评估于 2026年10月14日 审查版本 f6d20a18e46d
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.4.0
    发布说明摘录
    [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 查看 ↗
  2. v1.3.9
    发布说明摘录
    [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 查看 ↗
  3. v1.3.8
    发布说明摘录
    [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 查看 ↗

常见问题

需要 WakaTime 账户或 API 密钥吗?
需要配置 WakaTime API 密钥,插件才能向 WakaTime API 发送心跳。
必须手动安装 wakatime-cli 吗?
不必。若未找到 CLI,插件会自动下载;也可以手动安装,例如在 macOS 上运行 brew install wakatime-cli。
插件会跟踪哪些活动?
它跟踪文件读取与支持的文件修改工具,并记录可获得的文件路径和行变更;目录列表读取会被排除。
它会修改项目配置吗?
npm 安装器只编辑全局 OpenCode 配置,不会编辑项目配置或通过 OPENCODE_CONFIG、OPENCODE_CONFIG_DIR 选定的文件。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents