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

费用气泡 samorachumbi/dsh-cost-bubble

DeepSeek Harness
samorachumbi34 天前有提交已提供中文文档扫描:未发现敏感能力

悬浮显示当前对话实时预估花费,点击可展开明细

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
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 34 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
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的说明链接是本仓库发布前剩余的事项。
预览分享卡片长什么样 ↓samorachumbi/dsh-cost-bubble
分享 · DeepSeek Harness Hub
samorachumbi/dsh-cost-bubble

悬浮显示当前对话实时预估花费,点击可展开明细

回到顶部