实时把 token 用量变成彩色气泡逐个冒出
28.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Player047/dsh-token-bubbles该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 69 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 实时可视化token用量
- 彩色气泡逐个冒出
一个对 DeepSeek Harness 有用或没用的插件,实时可视化你的 token 用量。看着彩色气泡不断冒出来、而智能体正掏空你的钱包,是不是很爽?
README
由 DeepSeek 最新模型翻译生成dsh-token-bubbles
这是一个氛围编程(Vibe Coding)项目。使用 Deepseek V4 Pro 模型,@Deepseek-Harness。
一个对 DeepSeek Harness 有用——或者令人愉悦地无用——的插件,可在你使用过程中将 token 用量可视化。看着彩色气泡在你家 agent 掏空你钱包时冒出来,难道不是很愉悦吗?
DeepSeek Harness web GUI 的 token 可视化插件:生成 token 时,右下角会冒出一个个彩色小方块,按顺序排列,每行 10/20 个,每个方块代表的 token 数可以分别设置(输入系 / 输出系各一个除数,自由调倍数)。
| 颜色 | 含义 |
| 🟪 紫红 #e446f9 | 输出 token(可见回复文本) |
| 🟣 深紫 #5524a4 | 思考 token(reasoning) |
| 🔵 浅蓝 #79c4ff | 输入 token(缓存未命中) |
| 🔵 深蓝 #2d5cf6 | 输入 token(缓存命中) |
颜色可在 COLORS 常量里改。
展开完整文档(README 剩余 1 节)
dsh-token-bubbles
这是一个氛围编程(Vibe Coding)项目。使用 Deepseek V4 Pro 模型,@Deepseek-Harness。
一个对 DeepSeek Harness 有用——或者令人愉悦地无用——的插件,可在你使用过程中将 token 用量可视化。看着彩色气泡在你家 agent 掏空你钱包时冒出来,难道不是很愉悦吗?
DeepSeek Harness web GUI 的 token 可视化插件:生成 token 时,右下角会冒出一个个彩色小方块,按顺序排列,每行 10/20 个,每个方块代表的 token 数可以分别设置(输入系 / 输出系各一个除数,自由调倍数)。
| 颜色 | 含义 |
| 🟪 紫红 #e446f9 | 输出 token(可见回复文本) |
| 🟣 深紫 #5524a4 | 思考 token(reasoning) |
| 🔵 浅蓝 #79c4ff | 输入 token(缓存未命中) |
| 🔵 深蓝 #2d5cf6 | 输入 token(缓存命中) |
颜色可在 COLORS 常量里改。
所有方块进入同一条 FIFO 队列,由定时器按 revealIntervalMs 的节奏逐个放出:每个方块上屏时都落在右下角最贴近角落的位置,所以无论哪种颜色,网格都从下往上生长(最新方块在最下,旧的被推向左侧和上方;换行时整块网格带 150ms 平滑上移动画)。队列不会中途清空——每一步产生的方块都排在队尾接着显示,只有切换会话时清屏。整层 pointer-events: none,不会遮挡或阻挡对话操作。
两个可选机制(都默认开启,见配置表):
- 超时消失:每个方块显示 lifetimeMs 后,从最老的开始溶解——从顶行开始、行内从左往右、逐行向下,节奏由 expireIntervalMs 控制。溶解时其余方块原地不动,最底下一行始终保持满员,直到上方全部消完才轮到它;网格自动变成时间窗口;
- 自适应速度:等待队列越长,每 tick 放出的方块越多(积压每多 adaptiveStep 个多放 1 个,单 tick 上限 adaptiveCap 个),不会让显示等太久。
同屏数量超出 maxSquares 时仍会整行淘汰最顶上的一行(带离场动画),作为兜底。
数据来源有两个:
- 紫红(输出)/ 深紫(思考):实时估算——直接订阅当前会话快照的流式 partial 块,按语言自适应折合(CJK ≈ 1.2 字符/token、其他 ≈ 4 字符/token,常数由真实会话的官方用量标定),把 text 与 reasoning 两类块分开计数,模型一边写、方块就一边排队;每次模型调用结束时,再用官方 outputTokens 对账(calibrateWithUsage),差额补发/回扣,把总数校准到官方真值。
- 浅蓝(输入未命中)/ 深蓝(缓存命中):token-meter 的 tokenUsage 会话投影(uncachedInputTokens / cacheReadTokens / cacheWriteTokens),在每次模型调用上报用量时推送。
安装
方式一:从 GitHub 安装(推荐)
dsh plugin --profile web add github:Player047/dsh-token-bubbles
想锁版本可以带 tag(按仓库实际 tag 替换):
dsh plugin --profile web add github:Player047/dsh-token-bubbles#v0.4.5
方式二:本地开发(link 安装)
git clone https://github.com/Player047/dsh-token-bubbles.git
dsh plugin --profile web add .\dsh-token-bubbles
两种方式都会在 web profile 目录里执行 pnpm 安装,并把 dsh-token-bubbles 自动追加进 dsh.profile.bundles(包的 cordis.patch.yml 会插入宿主行,宿主行是 no-op,仅用于让客户端 bundle 被 /plugins/dsh-token-bubbles/client.js 提供)。
- GitHub 安装 = 拷贝进 profile,改配置请改自己 profile 里的 node_modules/dsh-token-bubbles/lib/client.js,改完重启生效;
- link 安装 = 直接指向本地源码,改源码后重启即可生效,适合开发迭代。
安装后重启 web profile 生效:
dsh web
(旧进程退出后重新启动即可;会话有持久化,对话不会丢。还没有 web profile 的用户,dsh plugin 会自动初始化。)
卸载
dsh plugin --profile web remove dsh-token-bubbles
然后重启 dsh web。
配置
客户端 bundle 顶部的 CFG 常量就是全部配置,改完重启 dsh web 生效:
| 键 | 当前值 | 说明 |
| inputTokensPerSquare | 1000 | 输入系(未缓存输入 + 缓存命中)每个方块代表的 token 数 |
| outputTokensPerSquare | 10 | 输出系(正文 + 思考)每个方块代表的 token 数;调小(如 100)让输出方块更密,与输入量级平衡 |
| columns | 20 | 每行方块数(可选 10 / 20) |
| squareSize / gap | 12 / 3 | 方块边长与间距(px) |
| maxSquares | 1100 | 屏幕上同时存在的方块数上限,超出时整行淘汰最顶上的一行(带离场动画,兜底) |
| pendingCap | 100000 | 待显示队列的软上限(防异常堆积) |
| batchCap | 100000 | 单次用量更新最多入队的方块数 |
| revealIntervalMs | 1 | 显示节奏:每多少 ms 一个 tick |
| timeoutEnable | true | 超时消失开关:开启后每个方块显示 lifetimeMs 后从最早的开始逐个消失 |
| lifetimeMs | 20000 | 方块显示时长(ms),配合 timeoutEnable |
| expireIntervalMs | 10 | 逐个消失的节奏:每多少 ms 让最老的 1 个过期方块离场 |
| adaptiveSpeed | true | 自适应速度开关:积压越多每 tick 放出越多 |
| adaptiveStep | 100 | 每积压多少方块,每 tick 多放 1 个 |
| adaptiveCap | 50 | 每 tick 最多放出的方块数 |
| cjkCharsPerToken | 1.2 | 流式估算:CJK 字符每 token 字符数(官方用量标定) |
| otherCharsPerToken | 4 | 流式估算:英文/数字/代码每 token 字符数(思考实测 ≈3.9) |
| calibrateWithUsage | true | 官方校准开关:每次调用结束用官方 outputTokens 对账补差 |
| corner | {right:16, bottom:16} | 右下角留白 |
工作原理
- 宿主侧:包被挂载为 composition 里的一行(no-op 插件),dsh-client-modules 据此把 lib/client.js 以 /plugins/dsh-token-bubbles/client.js?rev=… 注入启动清单。
- 客户端侧:bundle 通过 window.__ModuleLoader__ 注册为 Cordis 客户端插件(inject: ["slots", "sessions", "timer"]),把可视化组件注册进 shell.overlay(框架级浮层,点击穿透)。
- 组件订阅 sessions.currentProvideInfo 拿到当前会话;tokenUsage 投影的可观察面产生蓝色方块(输入/缓存增量),会话快照的流式 partial 产生深紫(思考)与紫红(输出)方块(按 CJK/其他 语言自适应折合估算 token,边写边排队,调用结束时用官方用量校准)。所有方块都进入同一条 FIFO 队列,由 timer 服务按 revealIntervalMs 逐个放出,因此所有颜色都从右下角向上生长;超出行数上限时最顶上一行播放离场动画后移除,会话切换时清屏并重新建立基线。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Player047/dsh-token-bubbles
实时把 token 用量变成彩色气泡逐个冒出
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,364已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,709已汉化DSH
71.8
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,319已汉化DSH
71.5
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,533已汉化DSH
71.1
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 93,105已汉化DSH
71.1
这是你的仓库?认领条目