🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

用量光球 zhifeiNi/dsh-usage-orb

DeepSeek Harness
zhifeiNi17 天前有提交已提供中文文档扫描:含敏感能力

常驻圆环看余额,跨会话统计 token 与成本

30.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zhifeiNi/dsh-usage-orb
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/10/21·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 17 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 18 处,展示前 14 条)
  • 读取本地文件
    lib/index.js:68
    value = JSON.parse(await readFile(join(resolveDshHome(), 'usage-panel', 'config.json'), 'utf8')) ?? {}
  • 读取本地文件
    lib/index.js:77
    try { await stat(p); return true } catch { return false }
  • 读取本地文件
    lib/index.js:125
    const info = await stat(resolved.path)
  • 读取本地文件
    lib/index.js:417
    text = await readFile((await resolveIconPath(cfg)).path, 'utf8')
  • 读取本地文件
    lib/prices.js:104
    override = JSON.parse(await readFile(join(dshHome, 'usage-panel', 'prices.json'), 'utf8'))
  • 读取本地文件
    lib/balance.js:53
    const raw = JSON.parse(await readFile(file, 'utf8'))
  • 写入本地文件
    lib/balance.js:92
    await mkdir(dirname(file), { recursive: true })
  • 写入本地文件
    lib/balance.js:93
    await writeFile(file, JSON.stringify({ version: 1, points: hist.points, recharges: hist.recharges }), 'utf8')
  • 读取本地文件
    lib/parse.js:68
    entries = await readdir(root, { withFileTypes: true })
  • 读取本地文件
    lib/parse.js:153
    info = await stat(file)
  • 读取本地文件
    lib/parse.js:162
    buf = await readFile(file)
  • 读取本地文件
    lib/parse.js:396
    info = await stat(file)
  • 读取本地文件
    lib/parse.js:403
    data = JSON.parse(await readFile(file, 'utf8'))
  • 读取本地文件
    lib/parse.js:453
    info = await stat(file)
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-slots
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 用量光球:右下角常驻圆环 + 可拖动的跨会话用量面板(token/缓存命中率/成本/余额/工具归因,支持 iOS 式磁贴 DIY 与 bloub 机器人)。DeepSeek Harness 插件,MIT。

README

由 DeepSeek 最新模型翻译生成
dsh-usage-orb DSH 用量光球 —— 常驻右下角的圆形进度环 + 可拖动的用量面板。 跨会话统计 token / 缓存命中率 / 成本 / 余额,全部数据只从本地日志读取。 | 面板 | 面板 | | 面板 | 面板 | 这是什么 DSH 自带的用量胶囊只显示当前会话的账。本插件读取全部会话日志做跨会话聚合,补上「这周一共用了多少」「缓存帮我省了多少钱」「钱都烧在哪个工具上」这类原生给不了的视图。 - 常驻圆环:右下角一个环,悬停即看余额百分比;画面会呼吸/扫圈提示状态 - 跨会话用量:token 四分类、会话/请求/轮次、按模型拆分、缓存命中率 - 成本与省钱:按模型计价估算(人民币)、缓存省下的钱、峰谷占比与「把高峰挪到空闲」模拟器 - 余额追踪:水位曲线、掉血与充值提示(需 DSH 账户服务可用) - 工具烧钱榜:把成本归因到具体工具/命令,含失败率 - 磁贴 DIY:iOS 控制中心式直接编辑 —— 拖卡片重排、拖右下角把手改宽高、⊙ 隐藏 - 可拖动按钮:位置按比例记忆,双击复位 - 按钮面孔:内置图标,或 bloub 机器人(眼睛追光标、被戳会弹、你久不动它会困) - 等级条:累计 token 分 Lv.1–6,附连续使用天数与今日强度 - 余额血条:以历史最高水位为满格,见底会呼吸告警
展开完整文档(README 剩余 1 节)
dsh-usage-orb

DSH 用量光球 —— 常驻右下角的圆形进度环 + 可拖动的用量面板。
跨会话统计 token / 缓存命中率 / 成本 / 余额,全部数据只从本地日志读取。

| 面板 | 面板 |
| 面板 | 面板 |

这是什么

DSH 自带的用量胶囊只显示当前会话的账。本插件读取全部会话日志做跨会话聚合,补上「这周一共用了多少」「缓存帮我省了多少钱」「钱都烧在哪个工具上」这类原生给不了的视图。

- 常驻圆环:右下角一个环,悬停即看余额百分比;画面会呼吸/扫圈提示状态
- 跨会话用量:token 四分类、会话/请求/轮次、按模型拆分、缓存命中率
- 成本与省钱:按模型计价估算(人民币)、缓存省下的钱、峰谷占比与「把高峰挪到空闲」模拟器
- 余额追踪:水位曲线、掉血与充值提示(需 DSH 账户服务可用)
- 工具烧钱榜:把成本归因到具体工具/命令,含失败率
- 磁贴 DIY:iOS 控制中心式直接编辑 —— 拖卡片重排、拖右下角把手改宽高、⊙ 隐藏
- 可拖动按钮:位置按比例记忆,双击复位
- 按钮面孔:内置图标,或 bloub 机器人(眼睛追光标、被戳会弹、你久不动它会困)
- 等级条:累计 token 分 Lv.1–6,附连续使用天数与今日强度
- 余额血条:以历史最高水位为满格,见底会呼吸告警
- 点按热力图看当天明细(token / 成本 / 请求 / 模型占比)
- 分享卡片:导出一张只含聚合数字的 PNG
- 简洁 / 详细两档文案密度;15 项玩法开关

截图取自作者本机(真实使用数据),只包含聚合数字与面板界面本身,不含会话内容。

目录结构

D:\path\to\dsh-usage-orb\
├── package.json 插件元数据(dsh.bundle / dsh.client / peerDependencies) ├── cordis.patch.yml 叠加层:把插件插入 Loader
├── lib\
│ ├── index.js host 侧:读会话文件、聚合四类 token │ └── client.js client 侧:右侧栏按钮 + 自建面板(手写 CJS,无需打包) └── README.md

零依赖、零构建步骤:两端都只使用 Node 内置模块和宿主提供的 react。
不需要 pnpm install,不需要编译。

安装

桌面端(DeepSeek Harness 应用)

桌面端的 profile 由应用独占管理,不能用 CLI 修改(会报 profile "desktop" is managed exclusively by the Electron application)。
请在应用内操作:

1. 打开左侧栏 插件 页面
2. 用「从 GitHub / 本地路径安装」填入本仓库地址: https://github.com/zhifeiNi/dsh-usage-orb
3. 安装后重启应用,右下角出现圆形进度环即成功

装好后可随时在该页面开关 / 卸载本插件。

CLI 或 Web 端(profile 由 CLI 管理时)

dsh plugin --profile web add github:zhifeiNi/dsh-usage-orb
dsh plugin --profile web remove dsh-usage-orb

--profile 换成你实际在用的、且由 CLI 管理的 profile 名。桌面端请用上面的应用内安装。

手工安装(旧版 DSH 既不支持应用内安装、也没有 dsh plugin 时)

① profile 的 package.json 里加依赖(以 desktop 为例)
"dependencies": { "dsh-usage-orb": "link:D:/path/to/dsh-usage-orb" }
② 同一文件把它加入 bundles
"dsh": { "profile": { "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-usage-orb"] } }
③ 建软链接(Windows: mklink /J;类 Unix: ln -s) ~/.dsh/profiles/desktop/node_modules/dsh-usage-orb -> 你的仓库目录

手工安装时,cordis.patch.yml 里的 name 需要改成你的绝对路径 (仓库里保留的是包名 dsh-usage-orb,只有经包管理器安装时才能被解析)。

预期现象

启动后:

1. 宿主日志里出现两行: [dsh-usage-orb] host 侧已加载 [dsh-usage-orb] 自检:扫描 12 个会话文件,采用 9 个,跳过 3 个;合计 857218617 tokens,缓存命中率 99.63%,模型 1 个,有日期的 2 天

看到这两行 = host 侧活着、数据读取正确。

2. 对话区顶部工具栏(复制/点赞/分支按钮那一排)右侧出现一个 「用量」 按钮。

3. 点它 → 右上角出现一个固定定位面板,写着「链路已打通」,并显示插件 id、 React 版本、加载时间。

排错

| 现象 | 说明 |
| 日志里没有 [dsh-usage-orb] | 插件没被加载。检查 patch 路径是否正确、文件是否存在 |
| 有 host 日志但界面没有「用量」按钮 | host 活了但 client bundle 没被物化。最可能是 client 模块发现失败(见下方「已知风险」) |
| 按钮在但点击没反应 | panel host 挂载失败;看浏览器控制台(Ctrl+Shift+I)的报错 |

已知风险

1. client 模块的发现机制未实测。DSH 的 ctx.clientModules 扫描 Loader entry,找出声明了 dsh.client 的包。我们的插件在 profile 之外,通过 --patch 以绝对路径插入,其 package.json 里的 dsh.client 是否会被扫描到尚未验证。
若未生效,退路是改成「安装进 profile」的分发方式(dsh.bundle + dsh plugin add)。

2. conversation.session.header.utilities 这个 slot 名来自第三方插件 dsh-ui-workbench 的实践,不是从官方文档直接抄的。若该 slot 名在你的版本里不同,按钮不会出现——需要按官方 ui-sidebar-right 文档改用 ctx.sidebarRightTabs.register()。

3. 面板用固定定位自挂载(借鉴 workbench 的做法),不占用官方 dock 布局。
好处是链路短、不易冲突;代价是不会参与官方的分栏/全屏切换。

数据口径

严格沿用 DSH 自己的四类 token 口径,与官方胶囊一致:

未缓存输入 uncachedInputTokens 按全价计费的部分缓存读取 cacheReadTokens 命中缓存的部分缓存写入 cacheWriteTokens 写入缓存的部分输出 outputTokens 模型生成的部分

缓存命中率 = 缓存读取 / (未缓存输入 + 缓存读取)

绝不把不同来源的口径相加——这是从 DSH 官方用量面板学到的原则。

实测数据(截至 2026-10-15)

扫描 12 个会话文件,采用 9 个未缓存输入 3,197,603 缓存读取 852,143,488 缓存写入 0 输出 1,877,526 合计 857,218,617 缓存命中率 99.63% 轮次/步数 110 / 1,925

注意 99.63% 的缓存命中率:这意味着上下文重发几乎全部走缓存价,真正的全价输入只有约 320 万 token。用量成本几乎完全由缓存命中率决定。

隐私

- 只读本地:会话日志(~/.dsh/storages/ 下的 .jsonl)、插件自己的 ~/.dsh/usage-panel/ 缓存(余额水位 / 布局偏好 / 报错记录)
- 不联网、无遥测、不上传任何数据;没有任何第三方统计
- 余额通过 DSH 自己的 deepseekAccount 服务读取,本插件不存储凭据
- 想彻底重置:删除 ~/.dsh/usage-panel/ 即可

免责与兼容性

- 非官方插件,与 DeepSeek、x.ai 均无隶属、背书或关联关系
- 数据口径依赖 DSH 的内部实现(事件流中的 usage 字段、.jsonl 布局) → DSH 升级后可能失效,届时以新版为准修复
- 按 MIT 提供,无任何担保;统计数字仅供观察,不作为账单依据

已知限制

- 网页搜索触发的 LLM 调用不计入统计(面板会显式提示「未计入」)
- 余额需要账户服务可用;不可用时静默降级为「仅用量」
- bloub 机器人面孔是可选外观、默认关闭(默认使用项目自带图标),其代码许可与设计归属说明见 THIRD-PARTY-NOTICES.md
- 兼容性以 package.json 的 peerDependencies 为准

致谢

- bloub(MIT,© 2026 Jérémy Perret)——机器人表情引擎与几何测量数据。上游声明与 x.ai 无关联,且 MIT 仅覆盖代码、不覆盖其模仿的设计。

开发与测试

踩坑记录(框架激活契约、插件为何必须可被解析为包、速度/限窗口径)见 docs/DEVNOTES.md。

npm test # 三个离线套件(~1 秒,不依赖网络与真实数据,CI 跑这个)
npm run test:e2e # 端到端:启动真实 DSH + headless Chrome

测试钩子:USAGE_PANEL_FAKE_BALANCE=''\ 可让宿主注入一个假余额,仅在 e2e 里使用,正常运行时无影响。

⚠️ test:e2e 会改动你的环境:克隆 ~/.dsh/profiles/desktop 到临时 profile、结束相关进程、写入 ~/.dsh/usage-panel/,并需要本机已安装 DSH 桌面端(可用 DSH_EXE / DSH_APP_ROOT / DSH_E2E_OUT 覆盖路径)。只在你自己的机器上跑。

许可

MIT。第三方组件与设计归属见 THIRD-PARTY-NOTICES.md。
预览分享卡片长什么样 ↓zhifeiNi/dsh-usage-orb
分享 · DeepSeek Harness Hub
zhifeiNi/dsh-usage-orb

常驻圆环看余额,跨会话统计 token 与成本

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部