使用 dsh-heatmap 在 DeepSeek Harness 网页界面显示 GitHub 风格活动热力图

前言

DeepSeek Harness(以下简称 dsh)是 DeepSeek AI 开源的智能体运行时,核心理念是「一切皆插件」:模型、工具、会话、界面都可以用插件替换或组合。官方仓库目前仍处于 developer preview,接口还会继续变。社区里已经有一份独立的插件目录,用来检索、核对安装命令,它和 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。

日常用网页界面跑任务时,提交次数、Token 用量、花费往往散落在会话日志和各个工作区的 git 历史里。想回答「这周写了多少、烧了多少 Token、大概花了多少钱」,通常要自己翻日志。GitHub 贡献图解决的是同一类问题:把按日活动铺成一张格子图,颜色深浅一眼能看出来。

dsh-heatmap 做的就是这件事。它把近 90 天的提交、Token 消耗和估算花费画成 GitHub 风格热力图,挂在 DSH 网页界面左侧栏底部。本文按目录页和 GitHub 仓库交叉核实后的材料,说明它是什么、怎么装、怎么用,以及安装前需要注意的权限问题。

这是什么

dsh-heatmap 是一款界面增强插件,由 283Gawin 维护,仓库地址是 https://github.com/283Gawin/dsh-heatmap。目录页把它归在「界面增强」,许可证为 MIT,主要语言是 TypeScript。截至 2026-08-18,GitHub 星标为 3,目录收录日期是 2026-08-14,最近一次推送也在同一天。npm 包名在仓库里写作 @linxin666/dsh-client-ui-activity-heatmap,当前版本号是 0.1.0;本文写作时 npm 仓库返回 404,因此安装请以 GitHub 来源为准。

它解决的问题很具体:在 DSH 网页界面里常驻一张活动热力图,按日汇总提交次数、计费 Token 总量和按模型估算的花费,并在格子下方给出今日统计。数据不靠手工记账,而是由宿主进程读取本机会话的 durable 日志,再对各个工作区跑 git log 聚合。

核心功能

仓库 README 和目录页对能力的描述一致,主要有下面几块。

1、近 90 天热力图(固定窗口)。格子按 GitHub 贡献图的方式排布:周一到周日为行、按周分列。颜色深浅按当前所选维度做对数分级。鼠标悬停可以看到当日明细,包括提交数、Token 和花费。源码里窗口长度定义为 91 天,大约覆盖 13 周,和侧栏宽度匹配。

2、三个可切换维度。提交:统计所有 DSH 工作区 git 仓库的提交,默认不含 merge。Token:计费总量。花费:按内置模型定价估算。当前选中的维度会记在浏览器 localStorage 里。

3、今日统计块。热力图下方固定一行,形态参考 Codex 个人资料页,展示今日所有会话的 Token 总量、缓存命中率、今日花费,以及近 90 天窗口内的 Token / 提交 / 花费合计,还有今日按模型的花费细分。缓存命中率按 cacheRead / (cacheRead + cacheWrite + miss input) 计算。花费以美元计,可配置汇率后同时显示人民币。

4、常驻侧栏。面板挂在左侧栏底部、工作区列表下方。挂载是自愈式的,React 重渲染后会自动复位。标题可以点击折叠,折叠状态会持久化。

5、设置卡片。注册在设置页「插件」分区,可配置主题色(蓝色 / 绿色)、总开关、是否计入 merge 提交、USD→CNY 汇率,以及模型定价覆盖。也可以写在插件行的 config 里。

数据通路在 README 和宿主源码里都能对上:host 进程通过官方 SDK 的 sessionPersistence 列出全部会话并重放 durable 日志(assistant/message 上的 provider usage,以及 request/headerrequest/context 上的模型名),再用 subprocessgit log 统计各工作区每日提交。聚合结果做 60 秒 TTL 缓存,经 GET /activity-heatmap/stats 提供给浏览器一侧。

安装与启用

目录页给出的安装命令如下,在 DeepSeek Harness 终端中运行即可:

dsh plugin add github:283Gawin/dsh-heatmap

需要可复现安装时,把 commit 哈希钉死。本文核实到 main 分支当时的提交是 4ba131df0980c8c8af72901ca9fa0f31accb9a6d

dsh plugin add github:283Gawin/dsh-heatmap#4ba131df0980c8c8af72901ca9fa0f31accb9a6d

仓库 README 补充了两条信息。第一,这是 Web GUI 插件,package.json 里声明了 "platform": "web",本地开发安装时明确写了 --profile web。第二,从源码 link 安装需要先构建出 lib/

git clone https://github.com/283Gawin/dsh-heatmap
cd dsh-heatmap
pnpm install && pnpm build
dsh plugin --profile web add link:$PWD

装完后重启 dsh web,左侧栏底部应出现热力图面板。若界面没有立刻出现,可按目录站安装指南用 dsh plugins list 确认插件是否已写入当前配置。

README 还写过一条 npm 安装命令(dsh plugin --profile web add @linxin666/dsh-client-ui-activity-heatmap)。本文写作时该包名在 npm registry 上不存在,所以不要把它当成当前可用的安装方式。

配置与典型用法

重启网页界面后,热力图会常驻在左侧栏底部。日常使用很直接:

1、看格子。颜色越深,当天在当前维度上的量越大。对数刻度会把极端高峰压一压,避免只有某几天特别亮、其余全是空白。
2、切换维度。在提交、Token、花费之间切换,用来分别看「写了多少」「消耗了多少」「估算花了多少」。选择会留在本机浏览器里。
3、看今日数字。格子下方能看到今日 Token、缓存命中率、花费,以及近 90 天合计和按模型的花费拆分。
4、需要时折叠。面板占侧栏底部一块空间,不看的时候点标题收起来即可。

设置页「插件 → 活动热力图」卡片对应的配置项如下(与插件行 config 等价)。键名以 README 和源码中的 HeatmapConfig 为准:

类型 默认 含义
theme string blue 热力图主题色:blue / green
enabled boolean true 插件总开关
includeMerges boolean false 提交数是否计入 merge 提交
extraRepos string[] [] 额外纳入统计的 git 仓库路径(源码配置项)
usdCnyRate number 0 USD→CNY 汇率,0 表示不显示人民币
priceOverrides 对象 {} 按模型覆盖单价

插件行配置示例(来自 README):

- insert:
  - id: ui-activity-heatmap
    name: '@linxin666/dsh-client-ui-activity-heatmap'
    config:
      theme: green
      usdCnyRate: 7.2
      priceOverrides:
        my-model:
          inputPerM: 0.5
          outputPerM: 2

改配置后需要重启 dsh web 才生效。

内置定价表按厂商公开 API 的美元 / 百万 Token 价格填写,并对照 xiufengsun/TokenTracker 的 curated overrides 做了校准(README 写明对照时间为 2026-06/07)。DeepSeek 系按官方页把 cache_write 计为输入价;Anthropic 系的 cache_write0.25 × 输入 计费;其余厂商通常没有 write 附加费。模型 id 支持前缀匹配,带日期快照后缀的 id(例如 claude-sonnet-4-5-20250929)会落到基础行。未收录的模型走默认档 0.27 / 0.07 / 1.10(输入 / 缓存读 / 输出),可以用 priceOverrides 覆盖。完整表在仓库 README 里,这里不逐行抄录,以免和上游更新脱节。

有一个设置页限制需要单独说。DSH 宿主对客户端可见的 settings namespace 有白名单(dsh-host-apiproxyWEB_SETTINGS_NAMESPACES,写在官方包里)。新插件必须把自己的 namespace 加进去,否则设置卡片会显示 Settings not available for this plugin.。本插件需要把 "activity-heatmap" 追加到该数组;升级 dsh 后这个修改会被覆盖,需要重新打补丁。修改后重启 dsh web 生效。热力图面板本身不依赖这张设置卡,只是图形化改配置会受影响。

适用场景与注意事项

比较适合这几类用法:

  • 长期用 DSH 网页界面写代码,希望像看 GitHub 贡献图那样回看近三个月的提交节奏。
  • 同一套环境里会切换多个模型,想按日、按模型估算 Token 花费,而不是只看单次会话账单。
  • 关心缓存是否真的打中,需要一个按日可见的命中率数字。

使用前有几件事必须清楚。

插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前请检查源代码仓库和许可证;需要可复现安装时请固定 commit 哈希。目录页把这条警告写在安装命令正下方,不是套话:宿主一侧会读本机全部会话日志,并对工作区执行 git log

花费是估算值,不是账单。定价表会过时,未收录模型走默认档,实际渠道折扣、套餐、免费额度都不会自动反映。usdCnyRate 也要自己填,插件不会去拉实时汇率。

提交统计默认不含 merge,范围是「所有 DSH 工作区的 git 仓库」,不是整个磁盘上的全部仓库。要把额外路径算进去,需要配置 extraRepos

这是社区 MIT 项目,不是 DeepSeek 官方插件。目录站只是检索入口。dsh 本身还在 developer preview,宿主白名单、settings API、Web UI 结构都可能变,升级后热力图不出现或设置卡不可用时,先对照仓库 README 而不是假定插件坏了。

小结

dsh-heatmap 把近 90 天的提交、Token 和估算花费画成侧栏热力图,数据来自本机会话日志和工作区 git 历史。安装命令以目录页为准:

dsh plugin add github:283Gawin/dsh-heatmap

目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-heatmap/

GitHub:https://github.com/283Gawin/dsh-heatmap

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

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

小夜