随时查看账户余额、每轮费用与今日花费
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lx950/dsh-spend-meter该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/index.js:733
res = await fetch(BALANCE_URL, {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-host-webserver给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
在可拖拽的 DSH 面板里实时显示 DeepSeek 余额、每轮扣费和今日花费,从计费计数器精确到 1e-8 元。
README
由 DeepSeek 最新模型翻译生成dsh-spend-meter
直接从 GitHub 安装,不需要 npm:dsh plugin --profile <name> add github:lx950/dsh-spend-meter。包内部叫 dsh-spend-panel(dsh-spend-meter 这个名字在 npm 上已被占用),所以你在 node_modules 和 dsh.profile.bundles 里看到的 id 是它。
一块可拖动的小面板,告诉你花了多少钱:账户余额、上一轮的费用、今日总计。数据读自 DeepSeek 的计费计数器(1e-8 元),只在计数器尚未结算的地方才用真实价目表补上。
dsh-spend-meter — DeepSeek Harness 内的实时余额、每轮费用与今日花费
面板示意图
面板示意图。它使用应用自身的设计 token 渲染——字体、圆角、阴影、深色主题都一致——你可以把它拖到任意位置,也可以折叠成一行。
会话花费 谷时 ▾ 余额 ¥9.6540 上轮 ¥0.0759 今日 ¥3.0671 本轮 ¥0.0412 计费 谷时 → 09:00 转峰
为什么做这个
DeepSeek Harness 会流式输出 token,却从不告诉你一轮花了多少钱。余额页是另一个标签页;会话记录里有 token 数,但没有价格。
展开完整文档(README 剩余 1 节)
dsh-spend-meter
直接从 GitHub 安装,不需要 npm:dsh plugin --profile <name> add github:lx950/dsh-spend-meter。包内部叫 dsh-spend-panel(dsh-spend-meter 这个名字在 npm 上已被占用),所以你在 node_modules 和 dsh.profile.bundles 里看到的 id 是它。
一块可拖动的小面板,告诉你花了多少钱:账户余额、上一轮的费用、今日总计。数据读自 DeepSeek 的计费计数器(1e-8 元),只在计数器尚未结算的地方才用真实价目表补上。
dsh-spend-meter — DeepSeek Harness 内的实时余额、每轮费用与今日花费
面板示意图
面板示意图。它使用应用自身的设计 token 渲染——字体、圆角、阴影、深色主题都一致——你可以把它拖到任意位置,也可以折叠成一行。
会话花费 谷时 ▾ 余额 ¥9.6540 上轮 ¥0.0759 今日 ¥3.0671 本轮 ¥0.0412 计费 谷时 → 09:00 转峰
为什么做这个
DeepSeek Harness 会流式输出 token,却从不告诉你一轮花了多少钱。余额页是另一个标签页;会话记录里有 token 数,但没有价格。dsh-spend-meter 让你不用离开对话就能补上这一环。
- 余额 —— 你登录的 DeepSeek 账户里的钱包余额,保留 8 位小数(platform.deepseek.com/api/v0/users/get_user_summary)。不再四舍五入到 2 位。取不到时回退到 api.deepseek.com/user/balance(API key),再回退到宿主的账户服务。
- 上一轮 —— 服务商对这个会话里最近一次已结算回复实际收取的费用:该轮前后累计消费计数器的差值。带工具调用的长轮次会汇总每一步,而不只是最后一步。计数器结算完成前(约一分钟),面板显示价目表估算值,并在提示里说明。
- 今日 —— 当前计数器 − 当天首次读数时的计数器:这一天真实花了多少。插件开始监视之前的那段时间,用宿主自己的会话记录补齐,按价目表计价,再用自校准的实测/估算比值修正。中午才装插件,今日数字依然准确。
- 实时 —— 一轮还在跑的时候,本轮显示它到目前为止的花费。
- 高峰 / 低谷 — DeepSeek 对北京时间 09:00–12:00 和 14:00–18:00 按 2 倍计费,周末和法定节假日全天为低谷。面板会显示你当前处于哪一档,以及何时切换。
- 失败时如实说明 — 如果读不到余额,面板会说明哪条路径失败、原因是什么,而不是悄悄显示一个横杠。
环境要求
- DeepSeek Harness 0.2.0-rc.2 或更新版本,desktop 配置档(面板是一个客户端插槽,所以普通的 dsh web 会话不会显示它)。
- 宿主内需要 Node 22+,用于回填对话记录(多帧 zstd 来自 node:zlib)。运行时版本较低时,面板仍可依靠余额账本工作; diag.transcript.error 会说明回填为何关闭。
安装
目前还没有 npm 包 —— 从 GitHub 安装:
dsh plugin --profile <name> add github:lx950/dsh-spend-meter
从本地检出安装(开发用,改动无需重新安装即可生效):
dsh plugin --profile <name> add link:/absolute/path/to/dsh-spend-meter
重启 DSH。面板会出现在对话中;拖动标题栏可移动,点击角落按钮可折叠。位置和折叠状态按机器记忆(localStorage),所以它会一直待在你放的地方。
桌面应用注意事项: desktop 配置档归 Electron 外壳所有,因此在终端执行 dsh plugin --profile desktop add … 会被拒绝,这是有意设计。你可以从应用内的插件管理器安装(前提是它支持 GitHub 源),或者编辑 %USERPROFILE%\.dsh\profiles\desktop\package.json:
{
"dependencies": { "dsh-spend-panel": "github:lx950/dsh-spend-meter" },
"dsh": { "profile": { "bundles": [ "... keep the existing rows ...", "dsh-spend-panel" ] } }
}
…然后在该文件夹内安装(pnpm install,或使用应用自带的 pnpm:%USERPROFILE%\.dsh\dsh-runtimes\dsh-primary-runtime\dependencies\pnpm\bin\pnpm.cjs),再重启应用。详情见 DEVELOPMENT.md。
数字如何计算
Token 来自宿主自身的用量事件 —— 也就是 DSH 每个助手步骤上报的 inputTokens / cacheReadTokens / outputTokens。推理 token 已包含在 outputTokens 中,不会重复计入。
cost = cache ÷ 1e6 × hit + input ÷ 1e6 × miss + output ÷ 1e6 × out
价格,人民币元 / 1M token:
| 模型 | 缓存命中 | 缓存未命中 | 输出 |
| deepseek-flash、deepseek-v4-flash、deepseek-v4-flash-vision-exp | 0.02 / 0.04 | 1 / 2 | 4 / 8 |
| deepseek-v4-pro | 0.15 / 0.3 | 4.5 / 9 | 13.5 / 27 |
off-peak / peak。未知模型 id 回退到 Flash 价目。高峰时段:北京时间工作日 09:00–12:00 和 14:00–18:00;周末和法定节假日全天为低谷。
这是按标价估算的结果——只在真实计数器无法给出数据时使用:运行中的回合结算之前,以及插件开始监听之前发生的用量。如果 DeepSeek 调整价目表,lib/pricing.js 里只有一个对象需要改(欢迎提 PR,尤其是节假日年度价目表)。
计费计数器
账户页面知道精确数字,这个插件也知道。Platform 的 summary 接口返回一个终身消费计数器(total_costs),它只增不减:
GET https://platform.deepseek.com/api/v0/users/get_user_summary
x-dsh-auth-token: <the grant DSH already holds for platform.deepseek.com>
{"code":0,"data":{"biz_data":{
"normal_wallets":[{"currency":"CNY","balance":"9.9948816200000000"}],
"total_costs":[{"currency":"CNY","amount":"71.6670811400000000"}]}}}
面板里每个金额数字都是这个计数器的差值:
| 数字 | 推导方式 |
| 上一回合 | 回合结束时的计数器 − 回合开始前的计数器 |
| 今天 | 当前计数器 − 当天首次读数时的计数器(+ 会话记录回填) |
| 余额 | normal_wallets.balance,8 位小数 |
因为它是扣费计数器,充值和赠送额度不会干扰它——它们只改变钱包余额,从不改变 total_costs。差值始终 ≥ 0,所以退款或计数器重置永远不会显示为负消费。结算不是即时的:DeepSeek 在回合结束后大约一分钟才入账该回合费用,所以面板在回合结束后前 20 秒快速轮询(2 秒),之后放慢(6 秒,最长两分钟),直到计数器变化。没有回合在等待时到达的扣费记为 unattributed,仍然计入当天总额。
两本账,一个数字
| 账本 | 来源 | 适合做什么 |
| 计数器 | Platform summary 的 total_costs 差值 | 账户实际被扣了多少,精度 1e-8 CNY,不受充值影响 |
| 会话记录 | $DSH_HOME/sessions/*/session.v4.jsonl.zstd,宿主自己的只追加记录 | 一整天,包括插件运行前或重启前的用量 |
今天 = 当天首次读数以来的计数器差值 + 该读数之前的会话记录估算。账户授权缺失时,面板回退到钱包余额差值,再回退到仅用估算,并在 tooltip 里说明用了哪一种。两本账互不削减:修复只会补上缺失的用量。
配置
- insert:
- id: dsh-spend-panel
name: dsh-spend-panel
config:
ledgerFile: /custom/path/ledger.json # default: $DSH_HOME/spend-meter/ledger.json
balanceRefreshMs: 60000 # balance poll interval
balanceTtlMs: 45000 # how long one balance reading is reused
transcriptSyncMs: 30000 # transcript reconciliation interval
sessionsRoot: /custom/sessions # default: $DSH_HOME/sessions
环境变量:
| 变量 | 作用 |
| DSH_SPEND_METER_ALLOW_REMOTE=1 | 允许非回环客户端读取路由(默认:仅回环) |
路由
面板只做同源轮询,不夹带别的东西。宿主通过 Fetch 路由通道(connection.fetch.register)提供这些路由,第一方页面请求本来就走这条通道,所以面板直接沿用应用自己的请求围栏。
POST api/dsh-spend/state {"session":"<id>"} live state for one conversation
POST api/dsh-spend/days {"limit":30} the day ledger, oldest first
POST api/dsh-spend/health {} liveness, ledger path, balance source
另外提供只读 GET 别名,给 curl 用,也给没有 Fetch 通道的宿主用:
GET /api/dsh-spend/state?session=<id>
GET /api/dsh-spend/days?limit=30
GET /api/dsh-spend/health
排查
每次刷新都会把结果记到 $DSH_HOME/spend-meter/diag.json:
{
"version": "0.4.4",
"routes": { "fetch": ["/api/dsh-spend/state", "…"], "http": ["…"] },
"services": { "credentials": "inject", "deepseekAccount": "inject" },
"platform": { "ok": true, "balance": 9.65402082, "totalCosts": 72.00794194, "error": null, "credentialSource": "service" },
"balance": { "apiKey": { "ok": true, "keySource": "service", "error": null }, "account": { "service": false } },
"lastSession": { "raw": "session-4f2a…", "key": "4f2a…", "scope": "session", "known": 2 },
"transcript": { "day": "2026-10-29", "files": 5, "amount": 2.6228, "before": 2.6228, "after": 0.34 },
"events": 128,
"polls": 41
}
读这个文件能回答两个关键问题:面板有没有连上插件(看 polls 是否在涨),以及哪条余额路径失败了(看 balance. / platform.error)。这两部分在面板里也能看到。platform.credentialSource 说明账号授权从哪来:service(宿主凭据服务)或 file($DSH_HOME/.credentials.yaml,当注入的服务权限收得太紧、只回「没存东西」时用这个)。lastSession.scope 说明「上一轮」来自哪里:本会话(session)、最近产生事件的会话(active),还是因为宿主没给出可用 id 而退回到最新一轮(recent)——这时面板会在提示框里说明,而不是显示一个破折号。lastSession.source 和旁边的 probe 块记录 id 由哪个 prop 提供(props.session.id、props.sessionId、……),以及插槽实际收到的 prop 键,这样遇到「会话不对」的反馈,可以直接查文件,不用猜。
隐私
账本留在你自己的机器上($DSH_HOME/spend-meter/ledger.json)。插件只跟两个 DeepSeek 端点通信:platform.deepseek.com/api/v0/users/get_user_summary 用来读账单计数器,api.deepseek.com/user/balance 作为兜底。通信时用的是 DSH 凭据里已经存好的 grant / API key,而且只在需要数字时才发请求。如果注入的凭据服务什么都没返回,插件就从 $DSH_HOME/.credentials.yaml 读取同样的值(只读,不写,也不记日志)。没有遥测,不调用第三方,提示词和消息内容一律不存。
限制
- 价格是一张本地表;费率卡一变就得发版(或者用配置覆盖 —— 见 PRICING)。
- 结算有延迟:一轮的扣费大约一分钟后才出现在计数器里。如果某笔扣费在下一轮开始之后才到账,就记到那一轮更新的轮次上(不会丢,但按轮拆分可能差一轮)。
- 没有轮次在等待时产生的扣费(子代理、后台调用)记为 unattributed:算进今日,但不归到某一轮。
- 今日的回填部分(插件没盯住的那段时间)按标价计价,再用实测/估算的比例修正 —— 很接近,但不精确。
- lastTurn 按会话记录。切换对话,它跟着你切 —— 这正是它的用处。
- 8 位小数的计数器需要登录账户的 grant。没有它,面板退回到 API key 余额(2 位小数)或宿主账户服务,并会说明这一点。
- 峰谷时段按官方公布的北京时间表;法定节假日调休列在 HOLIDAY_VALLEY 里,每年扩充一次。
开发
npm test # 28 assertions + apply-smoke + platform-e2e + today-e2e
+ session-id + credentials-e2e (offline, stubs only)
npm run test:live # one real balance read through the plugin's own code
npm run test:live:platform # real Platform summary: 8-decimal balance + lifetime counter
npm run test:preview # print the exact numbers the panel would render
没有构建步骤:lib/client.js 已经是宿主的 __ModuleLoader__ 工厂格式,宿主直接按原样提供。
- DEVELOPMENT.md —— 目录结构、插件依赖的宿主契约、诊断参考、测试策略
- CONTRIBUTING.md —— 五条不该破坏的契约,以及两个测试陷阱
- CHANGELOG.md —— 每个版本,以及它背后的那个 bug
- PUBLISHING.md —— 逐步上传清单(这份文件给维护者看)
- docs/announcement.md —— 发布文案,想分享的话可以用
MIT 许可。
一个可拖动的小面板,告诉你花了多少: 账户余额、上一轮的扣费、今天的总额 —— 直接读 DeepSeek 账单计数器(1e-8 元精度),计数器还没结算时才用真实价目表兜底。
会话花费 谷时 ▾ 余额 ¥9.6540 上轮 ¥0.0759 今日 ¥3.0671 计费 谷时 → 09:00 转峰安装(暂时没有 npm 包,直接从 GitHub 装):
dsh plugin --profile <name> add github:lx950/dsh-spend-meter
- 余额:宿主已登录账号的 DeepSeek 钱包余额,8 位小数(platform.deepseek.com/api/v0/users/get_user_summary);失败时回退 API key 的 /user/balance(2 位小数),再回退账号服务。
- 上一轮:当前会话里最近一次已结算回复实际被扣的钱 —— 终身消费计数器在该轮前后的差额;带工具调用的长回合会把每一步累加。计数器还没结算(约 1 分钟)时先显示价目表估算,并在悬浮提示里说明。
- 今日:现在计数器 − 当天首次读到的计数器,即这天真实花掉的;插件没看到的时段用宿主自己的会话 transcript 按价目表补算,并用实测/估算比值自校准。中午才装上也依然对得上。
- 本轮:回合进行中时显示它已经花掉多少。
- 峰 / 谷:北京时间 09:00–12:00、14:00–18:00 为峰时(2 倍价),周末与法定节假日全天谷时。
面板按 DSH 自身的设计变量渲染(同一套字体、圆角、阴影、暗色主题):按住标题栏拖动,右上角收起成一行,位置与折叠状态记在本机。计价公式与价目表见英文部分。
余额读不到时不会静默显示 —,面板会写明是哪条路失败、为什么;对应细节同时写进 $DSH_HOME/spend-meter/diag.json。账本只存在本机 $DSH_HOME/spend-meter/ledger.json;插件只访问 DeepSeek 自己的余额接口,不上报任何数据,也不保存对话内容。
开发与发布:DEVELOPMENT.md(宿主契约、诊断字段、测试策略)· CONTRIBUTING.md(贡献须知)· CHANGELOG.md(每个版本的修复由来)。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lx950/dsh-spend-meter
随时查看账户余额、每轮费用与今日花费
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1