在会话标题栏实时查看账户余额与用量
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/5 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add averyzhoux/dsh-session-balance该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 27 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
- 发起网络请求lib/index.js:228
response = await fetch(`${options.baseURL}${BALANCE_PATH}`, { - 发起网络请求lib/client.js:536
const response = await fetch(url, { cache: "no-store", credentials: "same-origin" });
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 会话标题栏显示余额
- 实时查看账户用量
⚖️ 悄悄显示余额。
README
由 DeepSeek 最新模型翻译生成dsh-session-balance
DSH Web GUI 的会话余额插件:在会话标题栏右侧(conversation.session.header.utilities)显示余额徽标,点开后展示 DeepSeek 账户余额、当前会话 token 用量、上下文占用和费用估算。
- 账户余额:调用 DeepSeek GET /user/balance,展示总额、充值余额、赠送余额与是否可用。
- 会话用量:读取会话投影 tokenUsage(未缓存输入 / 缓存读取 / 缓存写入 / 输出)与 sessionStats(轮次 / 步骤 / 模型耗时)。
- 上下文:读取 contextPressure,显示已用 / 窗口 token 与占用百分比。
- 费用估算:按当前模型单价(modelSelection 投影)在浏览器本地换算为 CNY(元) 估算值。
全程只读:插件不会修改会话、不会发起模型请求,也不会把 API Key 返回给浏览器。
界面
折叠态(标题栏):
◉ ¥110.00 · 12.3K tok · ~¥0.05
展开态面板分四段:账户余额、当前会话、上下文、费用估算。
安装
插件以「宿主插件 + 浏览器插件」两半组成,安装到正在使用 dsh web 的 profile(默认 web)。
展开完整文档(README 剩余 1 节)
dsh-session-balance
DSH Web GUI 的会话余额插件:在会话标题栏右侧(conversation.session.header.utilities)显示余额徽标,点开后展示 DeepSeek 账户余额、当前会话 token 用量、上下文占用和费用估算。
- 账户余额:调用 DeepSeek GET /user/balance,展示总额、充值余额、赠送余额与是否可用。
- 会话用量:读取会话投影 tokenUsage(未缓存输入 / 缓存读取 / 缓存写入 / 输出)与 sessionStats(轮次 / 步骤 / 模型耗时)。
- 上下文:读取 contextPressure,显示已用 / 窗口 token 与占用百分比。
- 费用估算:按当前模型单价(modelSelection 投影)在浏览器本地换算为 CNY(元) 估算值。
全程只读:插件不会修改会话、不会发起模型请求,也不会把 API Key 返回给浏览器。
界面
折叠态(标题栏):
◉ ¥110.00 · 12.3K tok · ~¥0.05
展开态面板分四段:账户余额、当前会话、上下文、费用估算。
安装
插件以「宿主插件 + 浏览器插件」两半组成,安装到正在使用 dsh web 的 profile(默认 web)。
1. 把包加入 profile
dsh plugin --profile web add link:/home/eimber/桌面/dev/x/dsh-session-balance
- link: 直接软链到本目录,改代码后重启 dsh web 即生效,适合本地开发。
- 想固定副本用 file:/home/eimber/桌面/dev/x/dsh-session-balance。
- 发布到 npm 后可直接 add dsh-session-balance。
2. 在 profile 里挂载插件行
编辑 ~/.dsh/profiles/web/cordis.patch.yml,加入(该文件默认是 [],把内容替换为下面内容即可):
- insert:
- id: session-balance
name: 'dsh-session-balance'
需要覆盖默认配置时写在这里,例如: config: rate: peak refreshMs: 30000
也可以走 bundle 方式:把 dsh-session-balance 加进 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles,本包自带的 cordis.patch.yml 会自动插入插件行;此时配置覆盖写在 cordis.patch.yml 的 - id: session-balance 条目下。
3. 重启并验证
dsh web
刷新 GUI(http://127.0.0.1:3080 )后,会话标题栏右侧应出现余额徽标。若徽标未出现,见下方「排查」。
4. 配置 API Key
账户余额需要一个可用的 DeepSeek API Key,解析顺序由 DSH 凭据层决定:
1. 启动环境变量 DEEPSEEK_API_KEY(只读,优先级最高)
2. ~/.dsh/.credentials.yaml 中的 DEEPSEEK_API_KEY(可在「模型设置」页保存)
3. 项目 .env
4. ~/.dsh/.env
Key 只在宿主进程内使用,不会写入前端响应。
配置参考
所有字段都可选,写入插件行(或 bundle 方式下的 - id: session-balance)的 config:
| 字段 | 默认值 | 说明 |
| balanceEnabled | true | 关闭后不再请求余额接口,徽标只显示本地用量与费用 |
| apiKeyEnv | DEEPSEEK_API_KEY | 凭据引用名 |
| baseURL | $DEEPSEEK_BASE_URL → https://api.deepseek.com | DeepSeek API 基址(兼容 OpenAI 网关) |
| timeoutMs | 10000 | 余额请求超时 |
| cacheMs | 60000 | 宿主侧余额缓存时长;前端自然刷新不会穿透缓存 |
| refreshMs | 60000 | 前端轮询间隔;0 表示只加载一次 |
| rate | off-peak | off-peak 空闲时段 / peak 高峰时段;高峰按 ×2 计算 |
| currency | CNY | 费用估算计价币种;仅影响单价表与费用显示(账户余额用它自己的币种) |
| pricing | 见下 | 模型单价覆盖表,单位 元 / 1M tokens,按空闲时段基准,高峰时统一 ×2 |
| showBalance | true | 折叠态 / 面板是否显示账户余额 |
| showTokens | true | 是否显示 token 用量 |
| showCost | true | 是否显示费用估算 |
| showContext | true | 是否显示上下文占用 |
如果你在 dsh-llm-deepseek 里配了自定义 baseURL(自建网关),请在这里填同一个值,否则余额会去官方端点查询。
默认单价(元 / 1M tokens,空闲时段)
| 模型 | 缓存命中输入 | 缓存未命中输入 | 输出 |
| deepseek-flash | 0.02 | 1 | 4 |
| deepseek-v4-flash | 0.02 | 1 | 4 |
| deepseek-v4-flash-vision-exp | 0.02 | 1 | 4 |
| deepseek-v4-pro | 0.15 | 4.5 | 13.5 |
单价来自 DeepSeek 官方定价页(中文),会随时间调整;插件内置值只是默认,请按需覆盖:
config:
rate: peak
currency: CNY
pricing:
deepseek-v4-pro:yaml
cacheHitInput: 0.3
cacheMissInput: 9
cacheWriteInput: 9 # 可省略,默认等于缓存未命中输入 output: 27
pricing 表里的数值按空闲时段基准填写,rate: peak 时程序会统一 ×2,因此无需手填高峰价。
未配置单价的模型只显示 token 数与上下文,不显示费用。
空闲时段为高峰时段价格的一半:北京时间周一至周五(不含中国法定节假日)9:00–12:00、14:00–18:00 为高峰,其余时段均为空闲。默认按空闲计,因此高峰期会低估,需要保守估计可设 rate: peak。
工作原理
浏览器 (lib/client.js) 宿主 (lib/index.js)
──────────────────────── ─────────────────────
conversation.session.header.utilities
└─ BalanceBadge
useProjection("tokenUsage") ←── 会话投影(dsh-token-meter)
useProjection("contextPressure") ← dsh-token-meter
useProjection("modelSelection") ← dsh-api-session-controller
useProjection("sessionStats") ← dsh-session-stats
fetch /dsh-session-balance/api/overview ──► 读取凭据 → GET /user/balance 返回余额 + 单价表 + 展示开关
- 会话用量全部来自宿主已有的会话投影,插件不新增任何宿主侧统计。
- 费用估算发生在浏览器,仅用投影里的累计 token 数和宿主下发的单价表。
- 余额接口带 TTL 缓存与并发合并(singleflight),轮询不会打爆上游。
- 路由只接受同源 GET/HEAD,Origin 与 Host 不一致时返回 403。
实现要点
- 浏览器半是手写的 window.__ModuleLoader__.load(...) bundle,只 require 基线模块表中的 react,因此不需要构建步骤;dsh.client.external 留空。
- 宿主半不 import 任何 @deepseek-ai/ 包(凭据引用在运行时就是普通字符串,brandString 为恒等函数),所以 link: 安装时真实路径在 profile 之外也能正常解析。
- 样式通过一次性注入 完成,并复用 DSH 主题变量(--dsw-alias- / --dsw-specific-menu)以适配明暗主题。
排查
| 现象 | 原因 / 处理 |
| 标题栏没有徽标 | 确认第 2 步的插件行已写入并重启 dsh web;确认包已在 profile 的 node_modules 里(ls ~/.dsh/profiles/web/node_modules/dsh-session-balance)。 |
| 徽标显示「未配置 API Key」 | 按上文第 4 步配置 DEEPSEEK_API_KEY。 |
| 显示「获取失败」 | 悬停/展开面板看具体错误:HTTP 状态、超时或 baseURL 不可达。 |
| 费用显示「未配置该模型单价」 | 在 pricing 里补上当前模型 id(面板「当前会话 → 模型」会显示 id)。 |
| token 一直是 0 | 该会话尚未产生带 usage 的请求;投影由 dsh-token-meter 注册,请在 web composition 中确认该包已启用。 |
| 余额与官网不一致 | 官网可能含未结算费用;插件按缓存 TTL 刷新,可在面板点「刷新」强制更新。 |
卸载 sh
1. 删除 cordis.patch.yml 里的 session-balance 条目(或 bundle 方式下从 bundles 移除)
2. 移除依赖
dsh plugin --profile web remove dsh-session-balance
兼容性
- DSH:0.1.5-rc.1(Web composition 含 dsh-token-meter、dsh-session-stats、dsh-api-session-controller)。
- Node:>=20(宿主使用全局 fetch 与 AbortSignal.timeout)。
- 浏览器:需要 Intl.NumberFormat、可选链;现代 Chromium/Firefox/Safari 均可。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
averyzhoux/dsh-session-balance
在会话标题栏实时查看账户余额与用量
相关插件 · 模型接入
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