悬浮显示当前对话实时预估花费,点击可展开明细
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add samorachumbi/dsh-cost-bubble该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/client.js:90
const res = await fetch("/cost-bubble/usage?sessionId=" + encodeURIComponent(sessionId));
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 悬浮显示预估花费
- 点击展开费用明细
- 可拖动胶囊标签
README
由 DeepSeek 最新模型翻译生成dsh-cost-bubble
一个可拖拽的 $ 药丸,悬浮在 DeepSeek Harness Web shell 中,显示*当前聊天的实时预估费用。点击它可展开明细。
为 DeepSeek Harness 0.1.1-rc.2 构建。
点击它会打开明细——计费的 token 分桶、解析出的模型,以及费率时段:
两者都是真实会话,而非模拟:一次真实的单次 agent 运行,药丸将其定价为 $0.0018——7,575 个未缓存输入 token 和 246 个输出 token,按 deepseek-v4-flash 费率计算。
shell 自身的页脚独立报告了相同的总计(Input 7.6K tok · Output 246 tok)。
它显示什么
- 会话的 $ 总计,每 3 秒以及每轮结束时更新。
- 展开后:真实的计费 token 分桶——输入未命中 / 缓存命中 / 缓存写入 / 输出——缓存命中率、输入与输出费用、解析出的模型,以及当前费率时段是高峰(2 倍)还是非高峰。
- 从 sessionProjections 读取提供商报告的 tokenUsage 总计,而非 chars/4 估算,因此数字与实际计费一致。模型从会话日志的 request/header 事件读取,回退到 agent 默认值。
展开完整文档(README 剩余 1 节)
dsh-cost-bubble
一个可拖拽的 $ 药丸,悬浮在 DeepSeek Harness Web shell 中,显示*当前聊天的实时预估费用。点击它可展开明细。
为 DeepSeek Harness 0.1.1-rc.2 构建。
点击它会打开明细——计费的 token 分桶、解析出的模型,以及费率时段:
两者都是真实会话,而非模拟:一次真实的单次 agent 运行,药丸将其定价为 $0.0018——7,575 个未缓存输入 token 和 246 个输出 token,按 deepseek-v4-flash 费率计算。
shell 自身的页脚独立报告了相同的总计(Input 7.6K tok · Output 246 tok)。
它显示什么
- 会话的 $ 总计,每 3 秒以及每轮结束时更新。
- 展开后:真实的计费 token 分桶——输入未命中 / 缓存命中 / 缓存写入 / 输出——缓存命中率、输入与输出费用、解析出的模型,以及当前费率时段是高峰(2 倍)还是非高峰。
- 从 sessionProjections 读取提供商报告的 tokenUsage 总计,而非 chars/4 估算,因此数字与实际计费一致。模型从会话日志的 request/header 事件读取,回退到 agent 默认值。
- 在每个会话中显示,且重启后依然存在:它是一个持久化的双面 profile 插件,而非动态插件。
费用被标记为预估:缓存写入按输入未命中费率计价,而 DeepSeek V4 高峰/非高峰时间表(高峰为 UTC 周一至周五 01:00-04:00 和 06:00-10:00 = 2 倍)内嵌在 host 半边中。
布局
| 半边 | 文件 | 作用 |
| Host | lib/index.js | 通过 webServer.register 注册 GET /cost-bubble/usage?sessionId=...;注入 ["webServer","sessions","sessionProjections"];回环 + Host 头防护 |
| Client | lib/client.js | 注册到根 shell.overlay 插槽;注入 ["slots","timer"];每 3 秒轮询;通过指针捕获拖拽;--dsw-alias- 主题变量 |
| Manifest | package.json | main(host)、exports["./client"]、exports["./package.json"]、dsh.client.platform: "web" |
lib/ 是刻意提交的——此插件通过复制文件安装,而非在 profile 内运行包管理器(见下文),因此构建产物就是交付物。
安装
不要在 ~/.dsh/profiles/ 内运行 pnpm/npm。 这样做会实体化出第二份 @deepseek-ai/dsh- 副本;两份副本意味着两个 Symbol 实例,每次工具调用都会因 Cannot read properties of undefined (reading 'prepare')。参见 split-Symbol 说明文章。
复制文件并通过配置文件的补丁层注册插件:
DEST=~/.dsh/profiles/web/node_modules/dsh-cost-bubble
mkdir -p "$DEST"
cp -r lib package.json "$DEST"/
~/.dsh/profiles/web/cordis.patch.yml (append)
- insert:
- id: cost-bubble
name: 'dsh-cost-bubble'
然后重启服务器。宿主端(host-half)的更改需要重启;客户端端(client-half)的更改需要强制刷新(web 配置文件中 HMR 已关闭)。
验证
Host route live => {"ok":false,"error":"session-not-found"} rather than a 404
curl -s "http://127.0.0.1:3080/cost-bubble/usage?sessionId=x"
Client half served => 200
curl -s -o /dev/null -w "%{http_code}\n" http://127.0.0.1:3080/plugins/dsh-cost-bubble/client.js
第三方插件作者的坑
在构建这个插件时,以下每一项都导致过一次崩溃或静默失败。
- Typert 远程服务对第三方插件来说是死路一条。 客户端只会挂载打包进 dsh-api-remotes 的已编译 描述符贡献,因此 inject: ["remote."] 永远不会解析。请使用宿主 HTTP 路由加上客户端
fetch() —— 也就是这里采用的模式。
- 绝不要从宿主路由返回显式的 undefined 字段。 cloneJson 会拒绝整个回复(result.model must be lossless JSON data)。请规范化为原始类型或 null。
- exports 必须包含 "./package.json"。 没有它,client-modules 会导致
require.resolve("/package.json") 失败,客户端包会静默地 404。
- 客户端工厂需要 CJS 前导代码(var module = { exports: {} }; var exports = module.exports; ...)。没有它,浏览器模块系统会把工厂当作普通函数调用,出现 exports is not defined,启动界面会报告“Failed to load plugins”。
- 持久化插件不会获得动态沙箱内置项(harness、host.call、React、 styles)—— 这些仅存在于 cordis_define 包中。
与我合作
我构建并审计 DeepSeek Harness 插件 —— 包括客户端端,也就是本示例所演示的部分:一个挂载到 shell 中的真实 UI,由插件自己的宿主端提供服务。
- 插件构建 —— 宿主路由加上客户端 UI,安全安装,并支持回滚
- 插件审计 —— 先给出结论,针对固定提交给出 file:line 级别的发现
- 配置文件救援 —— reading 'prepare' 崩溃,已恢复并记录在案
可接单 —— 在本仓库开一个 issue,或通过我的 GitHub 个人资料联系我。
我的其他作品:dsh-daily-progress-tab(一个位于独立标签页中的规划器)以及安装指南。
许可证
MIT (c) 2026 Samora Chumbi。参见 LICENSE。
状态自2026-09-17起,在作者机器上正常工作并日常使用。上面的截图来自真实会话,并非摆拍。拆分Symbol的说明链接是本仓库发布前剩余的事项。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
samorachumbi/dsh-cost-bubble
悬浮显示当前对话实时预估花费,点击可展开明细
相关插件 · 模型接入
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