dsh-token-mascot
DiscoveredXiao Wang: A chibi token mascot in the bottom-right corner of DSH (DeepSeek), displaying in real-time the current session's tokens, throughput, context usage, current task, and the total across all sessions today; click to expand details for each session.
小汪 · DSH Token 看板娘
给 DeepSeek(DSH) 用的右下角 Q 版看板娘: 实时显示本会话 token 消耗、速率、上下文占用、当前任务,以及今日全部会话合计(点开还能看各会话明细)。

小汪会一直待在窗口右下角。点她展开面板,拖拽可以移动;「今日 · 全部会话」点一下会展开各会话消耗。
目录
功能
| 区域 | 说明 |
|---|---|
| 本会话累计 | tokenUsage 投影:输入 + 缓存读/写 + 输出;tokens 后同时显示中文「万 / 亿」 |
+N 气泡 | 每结算一步出现的增量 |
| 速率 | 运行中按流式增量估算;空闲时显示整会话解码均速 |
| 上下文条 | 上下文占用 / 窗口大小 / 百分比(卡片最下方) |
| 今日 · 全部会话 | 今日新增(相对今天首次看到时的增量)的会话合计;点击展开各会话明细(本会话有标记) |
| 当前任务 | 出错 → 工具调用 → todo 进行中 → 思考中 → 待命 |
| 六种神情 | 眨眼(空闲)、害羞(思考)、生气(工具)、惊讶(吃 token)、开心(完成)、难过(出错) |
角色尺寸可在配置里调整,默认 112px。
截图
真实面板(本会话累计 2.35亿,今日新增 76万,展开后的各会话明细):

六种神情:

右下角的角色(展开时):

安装
环境要求
- DSH Desktop ≥ 0.2.1-rc.3(旧版能用,但「今日 · 全部会话」会自动隐藏)
- 用「Git 地址」方式安装时,电脑上需要能访问 GitHub,DSH 自带的包管理器会通过 pnpm 拉取仓库
- 不需要安装 Node、不需要编译;插件产物已经构建好
方式一:Git 地址(推荐)
-
打开 DSH:设置 → 插件 → 添加插件
-
在输入框粘贴仓库地址:
https://github.com/zouyuhang233/dsh-token-mascot -
点 安装,等待完成
-
完全退出并重开 DSH(或刷新窗口)
-
右下角出现小汪即安装成功
装不上 / 网络连不上 GitHub? 用方式二下载 Release 里的 zip,再用本地路径安装即可。
如果 DSH 提示「安装源 / registry」相关选项,保持默认即可;这是 Git 来源,不走 npm。
方式二:下载 ZIP / Release → 本地路径
-
打开 Releases 下载现成压缩包(推荐):
https://github.com/zouyuhang233/dsh-token-mascot/releases/latest
下载
dsh-token-mascot-1.4.2-plugin.zip;或者仓库页 Code → Download ZIP 下载源码包。 -
解压,得到包含
package.json的目录,例如dsh-token-mascot-1.4.2/或dsh-token-mascot-main/ -
DSH:设置 → 插件 → 添加插件
-
填这个目录的本地绝对路径:
C:\Users\你的用户名\Downloads\dsh-token-mascot-main -
安装后完全退出并重开 DSH
路径要选到含
package.json的那一层,不要选到lib子目录。
方式三:本地安装脚本(开发者)
如果你是在自己的电脑上改源码,仓库根目录提供 install.ps1,会把本仓库的 plugin/ 链接进 DSH desktop profile(并备份 profile):
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -WhatIf
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1
卸载:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -Uninstall
普通用户不需要这一步;用方式一或方式二即可。
方式四:npm(维护者发布后可用)
插件还没有发布到 npm。若之后发布,包名会是 dsh-token-mascot,届时在「添加插件」里只填包名即可。
第一次使用
- 安装完成后重开 DSH,右下角出现小汪。
- 点小汪展开 / 收起卡片。
- 拖拽小汪可以换位置,位置会记住。
- 点卡片里的「今日 · 全部会话」展开各会话消耗,再点收起(带过渡动画)。
- 卡片里没显示「今日」也没关系:检查 DSH 版本是否 ≥ 0.2.1-rc.3。
- 第一次打开时各会话投影按需加载,「今日」会先显示
…/M+,随后变成准确值。
配置
配置在 DSH profile 的补丁层里覆盖。打开(默认位置):
C:\Users\<你的用户名>\.dsh\profiles\desktop\cordis.patch.yml
在数组里加一项(已有的 - id: ... 同级):
- id: dsh-token-mascot
config:
mascot:
collapsed: false # 打开客户端时卡片是否默认展开
showLiveEstimate: true # 是否显示「本步实时估算」
showContext: true # 是否显示上下文占用条
showTask: true # 是否显示当前任务
showToday: true # 是否显示「今日 · 全部会话」
size: 112 # 角色尺寸 px(64–220)
offsetX: 18 # 默认位置:右边距
offsetY: 104 # 默认位置:底边距
accent: '#4d93f8' # 强调色
保存后重开 DSH 生效。拖拽后的位置和展开状态另存在浏览器 localStorage,不受这里影响。
数字口径
- 大数字来自官方
tokenUsage投影:输入 + 缓存读 + 缓存写 + 输出。缓存读往往占大头,所以数字看起来会比「新输入」大很多。 - 「今日 · 全部会话」= 今日新增:插件在当天第一次看到某会话时记录当时的累计作为「今日基准」,之后显示
当前累计 − 今日基准;跨 0 点自动更换基准,所以第二天会重置。升级/当天首次打开前的消耗无法回填,从加载那一刻开始计。\n- 卡片顶部的大数字是本会话累计,不按天重置;「今日」才是按天新增。 - 单位规则:≥ 1 亿显示「亿」(两位小数,如
1.05亿),否则显示「万」(如9725万)。 - 花费在模型响应结束时才结算,所以大数字是「每步跳一次」;生成中的
≈N是流式字符估算,结算后被精确值覆盖。
常见问题
插件页显示「运行中」,但右下角没有角色?
- 安装/更新后要完全退出并重开 DSH,或至少刷新窗口(Ctrl+R)。
- 确认 DSH 版本 ≥ 0.2.1-rc.3。
- 看插件页里有没有「页面同步失败 / 重试」;有就点重试。
- 如果仍然没有,把 DSH 开发者工具 Console 里的报错发到 Issues。
「今日 · 全部会话」不显示?
它依赖 DSH 0.2.1-rc.3+ 的全局 useSessions 和 ctx.sessions.refreshProjections。旧版会自动隐藏这一行,其余功能正常。
第二天「今日」会重置吗?为什么大数字没变?
会重置。插件在当天第一次看到某个会话时记录当时的累计作为「今日基准」,之后显示 当前累计 − 今日基准;跨 0 点自动换基准,所以第二天「今日」会归零再重新累计。卡片顶部的大数字是本会话累计,本来就不按天重置;「今日」才是今天新增。升级/当天首次打开之前的消耗无法回填,会从加载那一刻开始计。
数字特别大,是不是算错了?
没算错。累计口径包含缓存读(命中缓存的 prompt 也计 token),通常会远大于新输入。看副标题里的缓存命中率,或悬停「今日」行看输入/缓存/输出拆分就能对上。
角色太大 / 卡片超出屏幕?
把配置里的 size 调小(如 96),或把 offsetY 调大;也可以直接拖拽角色到合适位置。
今日明细里的会话标题很长?
会省略显示;鼠标悬停可看完整标题和精确 token 数。
支持哪些 DSH 版本?
面向 DSH 0.2.1-rc.3 开发;旧版大部分功能可用,但「今日 · 全部会话」会隐藏。DSH 后续版本如果调整插件 API,我会在 Releases / Issues 里说明。
插件会联网吗?会上传我的数据吗?
不会。插件不发起任何网络请求,角色图片内嵌,所有数字都来自 DSH 宿主内存里的投影和事件。
更新与卸载
更新(Git / 本地路径安装):
- 在插件页卸载旧版本(或直接重新安装新版本)
- 重新按「安装」步骤添加
- 重开 DSH
版本变化见 CHANGELOG.md。
卸载:
- 插件页 → 插件 → 卸载;
- 或本地安装脚本:
.\install.ps1 -Uninstall。
开发与验证
不需要构建:浏览器侧是单文件 plugin/lib/client.js,角色图已内嵌为 WebP data URI。
# 静态契约校验(manifest / patch / 产物标志 / require 白名单 / 纯函数)
node test/validate.mjs
# 重新生成离线预览页 preview/preview.html(需要 Node)
node preview/build-preview.mjs
浏览器契约测试:直接用浏览器打开 test/harness.html,应显示 ALL PASS。
仓库根目录的 package.json 是给 DSH / npm 用的包入口:
main/exports指向plugin/lib/*dsh.bundle.patch指向plugin/cordis.patch.ymldsh.client.platform = "web"
所以 Git 地址安装时仓库根目录就是插件包,不需要额外构建步骤。
目录结构
dsh-token-mascot/
├─ package.json DSH / npm 包入口(指向 plugin/)
├─ plugin/ 可安装的插件包
│ ├─ package.json
│ ├─ cordis.patch.yml Loader 行 + 可调配置
│ └─ lib/
│ ├─ index.js 宿主侧:空 apply + 产物静态审计
│ └─ client.js 浏览器侧:角色 + 面板 + 数据接线(含内嵌 WebP)
├─ test/ 静态契约校验 validate.mjs + 浏览器 harness.html
├─ preview/ 离线预览页、角色大图、6 神情 sprites + 生成脚本
├─ docs/images/ README 用的截图
├─ install.ps1 / install.cmd / rollback.*
├─ CHANGELOG.md
└─ README.md
隐私
- 不发起任何网络请求;
- 角色素材已内嵌,无外部图片/字体/CDN;
- 所有 token 数字来自 DSH 宿主的内存投影与事件,不写入外部服务。
License
MIT。角色素材由作者提供并在本地处理;面板 SVG/CSS 为原创;插件契约形状参考 DSH 官方包,未复制第三方代码。
Comments
Loading…
Similar plugins
by l956615272-hub
统计本机全部 DSH 会话的历史 token 总消耗,按 message.id 去重,支持按天/模型/Provider/项目分组。
★ 1
↓ 231/wk
MIT
JavaScript
Oct 22, 2026
dsh plugin --profile web add dsh-token-usageRealtime token badges beside the deep-thinking indicator — merged or split in/out, auto K/M/G/T units, per-step operation counts
★ 1
MIT
JavaScript
dsh plugin --profile web add dsh-where-did-my-tokens-goby averyzhoux
DSH Web GUI 会话余额徽标:在会话头部显示 DeepSeek 账户余额、会话 token 用量与费用估算。Session balance badge for the DSH web GUI.
★ 0
MIT
JavaScript
Oct 5, 2026
dsh plugin --profile web add dsh-session-balanceby xinmo114514
DSH(DeepSeek Harness)Web 插件:设置页 Token 消耗仪表盘 —— 指标卡、近 7 天/逐时趋势图、按模型/会话分布,数据全部来自本机会话日志,零外部请求。
★ 0
Unlicense
TypeScript
Aug 15, 2026
dsh plugin --profile web add dsh-usage-dashboardby wssfk12138
DeepSeek Harness Token 余额监控插件:鲸鱼娘待机/扣费/复苏动画、峰谷计费、连续扣费飘字与会话费用统计。
★ 276
↓ 1.5k/wk
MIT
TypeScript
Oct 25, 2026
dsh plugin --profile web add dsh-damage-pulseby zazzzzzzz
DeepSeek Harness (dsh) 左侧栏的模型 Token 用量统计插件:跨会话汇总累计用量、连续使用天数、年度活动热力图、每日分模型趋势与模型占比
★ 0
MIT
JavaScript
Oct 14, 2026
dsh plugin --profile web add dsh-usage-stats