前言¶
在 DeepSeek Harness(DSH)里用智能体改代码,墙钟时间往往分散在多次会话、多个工作目录之间。若想事后按项目回顾「这波 AI 一共活跃了多久、动了哪些文件、增删了多少行」,常见做法是翻日志或凭印象估算,既难对齐真实 diff,也容易把未采集的数据当成零。
dsh-coding-time 是维护者 Dclef 发布的 DSH 插件,归类为「记忆」类扩展。它在本地按项目(cwd)记录 AI 活跃的墙钟区间、基于工具返回的真实 diff 元数据统计增删行,并可选择性地统计人类编辑时长;数据落在本机 ~/.dsh 下,不经第三方账号或上报。下面介绍其能力、安装方式与使用时的注意点。
这是什么¶
dsh-coding-time 面向已在运行 Harness 且具备 dsh CLI 的环境,提供编码活动计时与汇总 Web 面板。插件复用 Harness 既有 webServer 挂载仪表盘,不单独开端口;存储为 JSONL,并支持 CSV 导出。
当前版本在 package 中为 0.1.0,许可证 MIT。项目状态为实验性、仅本地使用,以源码形式发布供审阅与自托管。
核心功能¶
下列能力均来自项目 README 的说明。
按项目的活跃时间¶
记录 AI 活动(工具调用与助手事件)的墙钟区间,按工作目录分组。重叠区间会做并集合并,总时长不是简单相加。
真实行数统计¶
增删行仅来自工具显式返回的 diff 元数据;缺少元数据时保持为未知,不会填成 0。
可选的人类编辑计时¶
默认关闭;仅在编辑器集成能提供明确「真实输入」证据时才会启用。
时间与文件维度展示¶
活跃区间会分摊到涉及文件,以环形图等形式展示占比;项目按并集活跃时长排序,带进度条与相对领先项目的百分比。
日程与近期活动¶
按日展示 AI(及在已连接时的人类)活跃时间的柱状图;另有近期事件时间线,以及各项目当前 Git 工作树的只读快照。
设置与导出¶
在 Host 为插件暴露可写配置命名空间时,可在设置页调整心跳、空闲与刷盘间隔、采集开关、本地存储目录及存储统计等。支持将汇总下载为 CSV,未知值与零值区分显示。
本地与隐私¶
无第三方 API、无出站统计、UI 不读写凭证。运行时核心逻辑仅使用 Node 内置模块;设置表单依赖 Host 提供的 @deepseek-ai/schemastery 作为 peer。未采集或未连接项在界面上标明(如 “not collected” / “not connected”),不伪造为 0。
安装与启用¶
环境要求:Node >=22.14.0(package 中亦为 ^22.14.0 || >=24.0.0),Harness 运行中且 dsh 在 PATH 上;与 dsh 版本需满足 >=0.2.1-rc.2 <0.3.0-0。
从 npm 安装并加入 web profile:
npm install dsh-coding-time@0.1.0
dsh plugin --profile web add dsh-coding-time
或直接从 GitHub 仓库添加:
dsh plugin --profile web add 'https://github.com/Dclef/dsh-coding-time'
更细的安装说明见仓库内 docs/INSTALL.md。
配置要点¶
默认配置摘录如下(完整校验规则见 README):无效字段、凭证字段、非法数字、非法时区或非绝对路径会被拒绝,而非静默截断。idleThresholdSeconds 不得小于 heartbeatIntervalSeconds。
| 字段 | 默认值 |
|---|---|
enabled |
true |
heartbeatIntervalSeconds |
60 |
idleThresholdSeconds |
180 |
flushIntervalSeconds |
10 |
trackAgentActivity |
true |
trackAiLines |
true |
humanTracking.enabled |
false |
storageDirectory |
~/.dsh/coding-time |
timezone |
本机 IANA 时区 |
weekStartsOn |
1(周一) |
exclude |
常见构建、版本控制与敏感路径 |
若 Host 未暴露本插件的可写 Config 命名空间,客户端会处于只读状态,不会发起保存请求。
典型用法¶
- 按上文完成安装后,通过 Harness 自带的 Web 入口打开 coding-time 仪表盘(会话头可查看当日 AI 活跃时长摘要)。
- 在日常智能体开发中保持插件
enabled;按需调整心跳与空闲阈值,避免长时间无操作仍计为活跃。 - 需要归档或外部分析时,在面板使用 CSV 导出;注意导出中未知行数与时间会与零值区分。
- 若要统计人类编写时长,需具备能上报真实输入证据的编辑器集成,并将
humanTracking.enabled设为true(默认仍为关闭)。
中文说明另见仓库 README.zh.md。
适用场景与注意¶
适合希望在 本机 追溯各仓库 AI 编码投入、对比项目间活跃时长、并结合真实 diff 行数做回顾的 DSH 用户。不适合需要云端多人协作统计或官方 SLA 的场景;项目自述为实验性,自动化测试通过并不等同于已在所有浏览器环境做过人工验收。
插件以当前 dsh 进程权限运行,可读工作区与 Git 状态;安装前建议通读 GitHub 仓库 源码与 MIT 许可证,确认 exclude 与存储路径符合本机安全策略。DSH 生态采用「一切皆插件」思路,社区目录站点 SkillHub 上的条目 与 DeepSeek / 幻方无官方从属关系,本文不因目录分类「记忆」而暗示官方背书。
结尾¶
dsh-coding-time 把项目级 AI 活跃时长、diff 行数与可选的人类编辑计时收拢到本地 JSONL 与可视化面板,强调未知即未知、数据不出本机。若要查看简介与安装入口,可访问 SkillHub 目录页 或 GitHub:Dclef/dsh-coding-time。