@dingyi222666/dsh-wakatime:DeepSeek Harness 的 WakaTime 插件

前言

DSH 的插件模型允许把外部能力挂到具体 profile 上。若你在使用 DeepSeek Harness (dsh) 时,希望把 AI 编码活动、代码行数和耗时汇总到 WakaTime,就需要一个能读取 dsh 工具活动并调用 wakatime-cli 的插件。

下面介绍 @dingyi222666/dsh-wakatime

插件定位

@dingyi222666/dsh-wakatime 是 WakaTime plugin for DeepSeek Harness (dsh),用于 track AI coding activity, lines of code, and time spent。

  • 维护者:dingyi222666
  • 许可:MIT
  • 来源:ported logic from opencode-wakatime(MIT)

它适合安装到会运行 agent loop 的 dsh profile,例如:

web
headless
tui

从 npm 安装时需要:

dsh >= 0.1.2-alpha.5

该插件声明零运行时依赖,只导入 Node builtins,以及 host 提供的 @deepseek-ai/* peers。列出的 peer dependencies 为:

@deepseek-ai/cordis >=4.0.0
@deepseek-ai/dsh-session >=0.1.0-rc.0
@deepseek-ai/schemastery >=3.0.0

核心能力

1、Automatic CLI management:自动下载和更新 wakatime-cli,也可以使用全局安装。

2、Detailed file tracking:跟踪 editwritereadread_imagestr_replace_editor 操作。

3、AI coding metrics:发送 --ai-line-changes,由 fs tools 的 diff hunks 计算。

4、Rate-limited heartbeats:每个项目每分钟 1 次心跳,并 persisted to disk。

5、Session lifecycle flush:在 session disposal 和 plugin teardown 时 flush 待发心跳,包括 one-shot headless runs。

6、Batch tool support:一次编辑涉及多个文件时,通过 --extra-heartbeats 在单次 wakatime-cli 调用中发送。

7、Zero runtime dependencies:只依赖 Node builtins 和 host 提供的 @deepseek-ai/* peers。

安装前准备

先确认 WakaTime API key 已配置在 ~/.wakatime.cfg[settings] 段:

[settings]
api_key = waka_your_api_key_here

wakatime-cli 可以不手动安装;插件会在缺失时下载和更新。若要手动安装,可以用:

brew install wakatime-cli

或从 WakaTime releases 下载。

安装与启用

先安装到 web profile,再启动/重启 dsh web

dsh plugin --profile web add @dingyi222666/dsh-wakatime
dsh web

如果会运行 headless,也安装到对应 profile:

dsh plugin --profile headless add @dingyi222666/dsh-wakatime

需要安装到每个会运行 agent loop 的 profile。更新时,重新执行相同的 dsh plugin add 命令。

如果使用源码启动的 dsh CLI,可以直接执行 bin:

node --import tsx/esm apps/cli/src/bin.ts plugin --profile web add @dingyi222666/dsh-wakatime

从源码安装

先拉取仓库并构建,再把本地目录加入 web profile:

git clone https://github.com/dingyi222666/dsh-wakatime
cd dsh-wakatime
pnpm install && pnpm run build
dsh plugin --profile web add .
dsh web

配置

配置字段都是可选的,加载时由 schemastery schema 校验。可以在 profile 的 user patch layer 或 --patch 中加入 id: wakatime。例如只打开 debug:

- id: wakatime
  config:
    debug: true

其他可选字段包括 heartbeatIntervalMsclienttimeoutMs,按需填写。

适用场景与注意

适合需要把 dsh 中的 AI 编码活动接入 WakaTime 的开发者,尤其是同时使用 webheadlesstui 多个 profile 的场景。

注意:

  • 插件以当前 dsh 进程权限运行。安装前应检查源码与许可证,确认其调用 wakatime-cli、读取工具事件,并使用已配置的 WakaTime API key 的行为符合预期。
  • bash 命令不会被归因到具体文件。
  • 沙箱或远程文件系统里的工具调用可能按模型可见的 file_path 参数记录;如果沙箱解析方式不同,可能落为 project-relative entities。
  • 当插件位置无法解析 @deepseek-ai/dsh 时,--plugin tag 中的 dsh host version 会显示为 unknown

参考

GitHub:https://github.com/dingyi222666/dsh-wakatime

社区目录页可按插件名 @dingyi222666/dsh-wakatime 搜索;社区目录是独立站点,并非官方应用商店。目录页 URL 未在本文资料中列出。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye