Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心
工具与能力 #deepseek-harness#dsh#dsh-plugin#heatmap#token-usage

dsh-plugin-token-heatmap

GitHub-style daily token usage heatmap for DeepSeek Harness Web

p-camile @p-camile ⬇ 1 ★ 0 main

安装

dsh plugin --profile web add github:p-camile/dsh-plugin-token-heatmap
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

GitHub-style daily token usage heatmap for DeepSeek Harness Web

该插件未提供要点说明,请参考仓库 README。

deepseek-harnessdshdsh-pluginheatmaptoken-usage
  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/p-camile/dsh-plugin-token-heatmap
许可证MIT
主要语言main
下载量1
GitHub 星标0
最近推送2026-09-12
收录日期2026-09-19
分类工具与能力

事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-plugin-token-heatmap

该插件为每日 Token 用量热力图插件,面向 DeepSeek Harness Web GUI(dsh web profile)。

![截图](./screenshot.png)

## 功能

- **双数据视图**:「全局」(所有会话合计)与「当前会话」,悬浮窗内切换
- **历史回填**:首次安装自动扫描全部会话日志,把过去的 token 消耗计入热力图
- **实时更新**:窗口可见时每 3 秒轮询,数据带版本号,仅变化时更新
- **5 级蓝色色阶**:12 个月窗口内非零天数按四分位分档,最深色 `#396BE2`
- **竖向网格**:最新一周在顶部,向下滚动回看 12 个月,带「回到最新」浮层
- **悬浮窗交互**:头部拖动、位置 clamp 在视口内、显隐/位置/视图记忆于 localStorage
- **汇总统计**:今日 / 本周 / 本月 / 12 个月合计,tooltip 展示输入 / 输出 / 缓存读写分项
- **主题适配**:深浅主题均正常显示(DSH 主题 token)

## 环境要求

- Node.js ≥ 20,pnpm
- DeepSeek Harness web profile(宿主需提供 `@deepseek-ai/*` 运行时,见 `peerDependencies`)
- 依赖 `@deepseek-ai/*` 为内部私有包,仅能在 DSH 环境内安装

## 构建

```bash
pnpm install
pnpm build          # 产出 lib/index.js(宿主)+ lib/client.js(客户端 bundle)
```

## 验证

```bash
pnpm typecheck      # tsc --noEmit
pnpm test           # node --test,宿主端单元测试
pnpm test:ui        # vitest,客户端组件测试
```

## 安装

```bash
dsh plugin --profile web add dsh-plugin-token-heatmap
```

重启dsh web,右下角出现方形图标即安装成功。首次启动后台执行回填,期间界面可用。

## 数据存储

宿主端持久化在 `$DSH_HOME/token-heatmap/`(即 `~/.dsh/token-heatmap/`):

| 文件 | 内容 |
|---|---|
| `global.json` | 全局每日用量(近 13 个月) |
| `sessions.json` | 按会话每日用量 |
| `meta.json` | 回填状态(done / scanned / skipped) |

写入策略:内存合并 → 5 秒节流 → 原子写(临时文件 + rename)。文件损坏时从空状态启动并告警,不阻断插件。

## localStorage 键(客户端)

| 键 | 说明 |
|---|---|
| `dsh.tokenHeatmap.visible` | 悬浮窗显隐 |
| `dsh.tokenHeatmap.position` | 悬浮窗位置 |
| `dsh.tokenHeatmap.iconPosition` | 图标位置 |
| `dsh.tokenHeatmap.view` | 视图(global / session) |

## 架构

一个 npm 包、双半区(宿主 + 客户端):

```
src/
├── index.ts                  # 宿主端入口:实时累计 + 一次性回填
├── usage-store.ts            # 每日聚合存储(节流原子写、13 个月裁剪)
├── backfill.ts               # 会话日志扫描回填
├── service.ts                # TypertRemoteService:tokenHeatmap Remote 服务
├── day.ts                    # 本地时区自然日工具
├── usage.ts                  # 聚合/合并/裁剪纯函数
└── client/
    ├── index.tsx             # 客户端入口:挂载 Remote + shell.overlay
    ├── remote.ts             # 手工 Typert Remote 描述符 + strict 校验器
    ├── TokenHeatmapOverlay.tsx  # 悬浮窗 + 右下角图标
    ├── HeatmapGrid.tsx       # 周×天网格(竖向滚动)
    ├── ToggleIcon.tsx        # 右下角方形图标
    └── palette.ts            # 5 级色阶与四分位映射
```

- **数据通道**:客户端 ↔ 宿主走 Typert Remote 机制(`@Remote` 方法暴露为 `/` 端点);方法有 `getGlobalUsage` / `getSessionUsage` / `getBackfillStatus`
- **UI 注册**:`ctx.slots.inject('shell.overlay', ...)` 挂到根级浮动层
- **用量口径**:input + output + cacheRead + cacheWrite 合并为每日 total 用于着色

## License

[MIT](LICENSE)

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。