前言¶
DSH 的理念是「一切皆插件」,社区目录里的插件也越来越多。日常用 DSH 开会话时,积累下来的会话日志基本没人回头看。想知道自己一个月里到底写了多少轮、调了多少次工具、花了多少主动时间,一般只能翻日志或者手动统计。dsh-activity-heatmap 就是为这件事做的:它从本机会话日志里按天统计使用量,再用类似 GitHub 贡献图的热力图展示出来,并且支持切换形状、配色和日历布局。
这个插件由 4uthen7(高本)维护,在社区目录中被归入「趣味换装」分类,本质是一个界面展示类插件:不改工作流,只是把已有的会话数据画出来。下面介绍它的能力、安装方式和需要注意的地方。
这是什么¶
一句话定位:给 DeepSeek Harness 加一个 GitHub 风格的活动热力图,数据完全来自本机会话日志。
它统计的指标包括消息数、工具调用、轮次、token 数、活跃分钟数和会话数,按天画一个格子,支持方形、圆角、圆形、六边形、菱形、星形以及自定义 SVG 路径。默认行为不需要联网,Host 侧只返回聚合后的计数。
核心功能¶
-
多指标按天计数:消息取
user/message和assistant/message事件,工具调用取tool/call,轮次取turn/start,token 取 assistant 消息上报的输入加输出,活跃时间取当天产生过事件的不同分钟数,会话数按头部createdAt统计当天新建的会话。 -
多种外观:形状可从 Square、Rounded、Circle、Hexagon、Diamond、Star 中选,也可以填自定义 SVG path(view box 为
0 0 100 100)。配色有 GitHub、Ocean、Violet、Sunset、Mono、Custom 六种,另有四级强度色和主题色的空日期。 -
多种日历布局:Year(53 周)、Months(12 张小日历)、Rolling(13/26/52 周)三选一。
-
多个展示位置:侧栏底部 widget(7–52 周,默认 22 周)、侧栏导航里的 Activity 行、Composer 下方的可选细条(默认关闭),以及 Settings → Activity 完整设置页。
-
隐私边界:Host 侧只注册一个精确的本地回环路由
/plugin-api/activity-heatmap/stats,返回的字段只有 date、sessions、turns、messages、tool calls、tokens、events、active minutes,不包含 prompt、回复内容、文件路径、标题或工具参数。插件本身不做任何出网请求。
安装与启用¶
插件支持三种安装方式,前两种等价,无非是让 Agent 代劳还是自己操作。
方式一:在会话里让 Agent 安装。把下面这段话粘贴进去发送即可:
Install the plugin at https://github.com/4uthen7/dsh-activity-heatmap into DeepSeek Harness.
Verify that Settings → Activity opens, then tell me what you changed.
Agent 会调用 plugin_manager 工具完成安装。对应的工具调用形式是:
plugin_manager { action: "install_bundle", target: "https://github.com/4uthen7/dsh-activity-heatmap" }
方式二:从 Plugins 页面手动安装。
- 打开侧栏的 Plugins。
- 选择 Add plugin(或箭头里的 Install a third-party plugin)。
- 粘贴
https://github.com/4uthen7/dsh-activity-heatmap并确认。 - 如果装完是关闭状态,手动启用该 bundle。
方式三:从本地工作副本安装,适合改完代码直接验证:
plugin_manager { action: "install_bundle", target: "/absolute/path/to/dsh-activity-heatmap" }
安装前需要确认环境满足两个条件:使用带 Web UI 的 DeepSeek Harness(Desktop 或 web profile),并且 DSH 版本同时提供 sessionPersistence、sessionQuery 和 webServer 服务。插件对缺失情况做了降级:如果没有 persistence,就只统计会话创建日。webServer 是它声明的唯一硬性 Host 依赖,缺了插件会保持不激活。
配置项¶
所有选项按浏览器保存在 localStorage,键为 dsh-activity-heatmap/settings/v1,改动即时生效。设置页完整路径是 Settings → Activity → Appearance(中文界面下名为「活动」)。
| 选项 | 可选值 | 默认值 |
|---|---|---|
| Measure | Messages / Active time / Tool calls / Turns / Sessions / Tokens | Messages |
| Calendar | Year(53 周)/ Months(12 张小日历)/ Rolling(13/26/52 周) | Year |
| Shape | Square / Rounded / Circle / Hexagon / Diamond / Star / Custom SVG path | Square |
| Cell size | 5–20 px | 8 px |
| Spacing | 1–8 px | 2 px |
| Palette | GitHub / Ocean / Violet / Sunset / Mono / Custom | GitHub |
| Colors | 4 级强度色 + 主题色空日期 | GitHub 绿 |
| Week starts on | Sunday / Monday | Monday |
| Intensity | Linear / Log / Rank(分位) | Linear |
| Labels | 月份标签、星期标签、图例 | 开启 |
| Sidebar widget | 显示/隐藏,7–52 周 | 开启,22 周 |
| Composer strip | 显示/隐藏 | 关闭 |
自定义形状那一项填 SVG path 即可,例如指向三角形的 M50 4 L96 92 L4 92 Z。路径不合法时插件会忽略并退回方形,不会报错。
适用场景与注意¶
适合想给 DSH 加个可视化、又不想折腾脚本的人。统计口径偏使用量浏览,不是计费依据:会话日志每个修订版本只读一次并在 Host 内存里缓存,克隆或 seed 出来的会话会继承历史,导致早前的日期被重复计入。
有几点需要留意:
-
安装前检查源码与许可证。这是第三方插件,当前版本为 1.1.0,MIT 许可。安装意味着 DSH 进程会加载它的 Host 模块,建议先读
index.js、client.js和cordis.patch.yml,确认 patch 只增加所需的行、不夹带其他操作。 -
以当前 DSH 进程权限运行。Host 侧模块获得的权限取决于 DSH 进程本身,插件声明的 Host 依赖只有
webServer,计数走的是只读的sessionPersistence/sessionQuery,但仍建议在可信环境里使用。 -
卸载方式:Plugins → 该 bundle 页面 → Remove。浏览器侧保存的设置会保留,直到你清理站点数据。
-
改代码后的重载规则:编辑
client.js后刷新页面即可;编辑index.js后需要把对应行关闭再打开(或重启),Host 模块才会重新导入。
结尾¶
dsh-activity-heatmap 的价值比较明确:不引入新数据源,不改变使用习惯,只是把已有的本地会话日志画成一张能看的使用热力图,同时承担了明确的隐私边界。如果你只是想在侧栏加一个不涉及任何会话内容的统计装饰,可以优先试;要确认行为,直接读仓库里的源码。
目录页:https://www.skillhub.cn/plugins/4uthen7/dsh-activity-heatmap
GitHub:https://github.com/4uthen7/dsh-activity-heatmap