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

费用计 guojinpeng/dsh-cost-meter

DeepSeek Harnessv0.1.5
guojinpeng10 天前有提交已提供中文文档扫描:含敏感能力

极简匹配DSH官方风格的计费卡片. 会话与轮次费用估算插件,支持多价格源、模型独立币种和 DeepSeek 峰谷计费。

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @guojinpeng/dsh-cost-meter
npm 源 · @guojinpeng/dsh-cost-meter 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · model
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功(非静态推断);本次验证针对插件 v0.4.7,当前版本为 v0.1.5
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 10 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包@guojinpeng/dsh-cost-meter @ 0.1.5
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/14 00:33:32

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 41 处,展示前 17 条)
  • 读取本地文件
    dist/index.js:609
    const value = JSON.parse(readFileSync(cachePath, "utf8"));
  • 写入本地文件
    dist/index.js:622
    mkdirSync(dirname(cachePath), { recursive: true });
  • 写入本地文件
    dist/index.js:624
    writeFileSync(temporary, JSON.stringify(value), "utf8");
  • 写入本地文件
    dist/index.js:625
    renameSync(temporary, cachePath);
  • 发起网络请求
    dist/index.js:674
    function createPriceService(directory, fetcher = (...args) => fetch(...args)) {
  • 读取本地文件
    dist/index.js:769
    const stats = statSync(CONFIG_PATH);
  • 读取本地文件
    dist/index.js:773
    const parsed = JSON.parse(readFileSync2(CONFIG_PATH, "utf8"));
  • 读取本地文件
    dist/index.js:787
    const stats = statSync(CONFIG_PATH);
  • 写入本地文件
    dist/index.js:794
    mkdirSync2(dirname2(CONFIG_PATH), { recursive: true });
  • 写入本地文件
    dist/index.js:796
    writeFileSync2(tmp, `${JSON.stringify(config, null, 2)}
  • 写入本地文件
    dist/index.js:798
    renameSync2(tmp, CONFIG_PATH);
  • 读取本地文件
    dist/index.js:799
    const stats = statSync(CONFIG_PATH);
  • 读取本地文件
    dist/index.js:806
    if (existsSync(CONFIG_PATH)) return;
  • 发起网络请求
    dist/index.js:2159
    function createHolidayStore(directory, fetcher = (...args) => fetch(...args), onError = () => {
  • 发起网络请求
    dist/client.js:16
    function createConfigStore(fetcher = (...args) => fetch(...args)) {
  • 发起网络请求
    dist/client.js:2054
    async function fetchOverview(range, { refresh = false, start, end, fetcher = (...args) => fetch(...args) } = {}) {
  • 发起网络请求
    dist/client.js:3102
    const { fetcher = (...args) => fetch(...args), timers = defaultTimers } = options;
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-session-query@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-llm@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-token-meter
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

极简匹配DSH官方风格的计费卡片

v0.4.72026-10-22
· 主要更新 · 1. 费用口径三处跟随 费用趋势的“总费用 / 总 Token”切换,现在同时决定另外三块的统计口径: · “费用 & Token 构成”的圆环、百分比改为 Token 占比; · “时段分布”的进度条、数值与标题改为按 Token 占比; · “模型费用”的占比列表与提示改为按 Token 占比。 不再各自写死费用口径。费用模式下若全部模型都未定价,沿用 Token 占比兜底。 · 2. 趋势柱可点击筛选 点击费用趋势的任意柱子,按该柱覆盖的时间回填上方自定义日期范围并立即重新统计: · 单日柱:起始 = 结束 = 当天; · 合并柱:起始 = 首日,结束 = 末日; · 按月粒度(长时间范围):填该月首末日。 回填后会自动清除预设范围(今天/7 天/30 天/90 天/全部)的选中态。 · 3. 模型费用散点图 模型费用默认显示散点图,标题右侧可切回原来的占比列表。 · 横轴:模型总消费,对数刻度,量程右端取到 1/2/5 整数档,并为名称留出空间。 · 纵轴:Token 消耗,顶端取整后均分 4 个刻度。 · 气泡:固定 16px,不随费用缩放;颜色按每 1M token 均价由浅青渐变到深靛,越浅越便宜。 · 名称:固定显示在气泡右上角;坐标轴范围已为最长名称预留空间。 · 图例:绘图区下方按供应商分组列出所有用过的模型,点击名称可隐藏或显示对应气泡,隐藏时坐标轴范围不变。 · 读数:十字准线与两轴数值跟随指针,读数画在绘图区内侧;提示框自动夹在绘图区内,列出该模型四类 token 的费用与 token、合计,以及每 1M token 的均价。 · 重叠气泡:指针同时压住多个气泡时,提示按由近到远上下排列每个模型的明细。 · 4. 修复侧线程继承转录重复计费 侧线程(“Side: New thread”)和继承上下文的子智能体会把父会话的完整转录写进自己的日志。过去这部分被当成子会话自己的消费,导致: · “费用最高的会话”出现标题不同、金额却与父会话完全相同的重复行; · 总费用、总 Token 偏高。 修复后计费投影在日志的 session/end-seed(inherited: true)处重置,只统计种子之后的真实用量。种子之后仍有真实用量的会话会保留自己那部分。 · 5. 其它修复 · 修复散点图气泡在浅色主题下完全不显示(引用了不存在的颜色变量)。 · 横轴刻度过于接近时只保留靠右的一个;纵轴顶端不再出现 88.33M 这类小数。 · 十字准线读数移入绘图区内侧,不再压住坐标轴刻度。 · 升级 0.4.6 → 0.4.7 不需要迁移配置。以下缓存会自动失效并重算: · 计费投影状态版本 4 → 5; · overview 缓存格式 1 → 2。 升级后第一次打开费用统计页会重新折叠历史日志,耗时与首次安装相同。总费用和会话数会比之前低一些,差额就是此前重复计入的继承转录。工作区里有侧线程使用记录时才会看到这个差别。 dsh plugin update @guojinpeng/dsh-cost-meter · 验证 · 切换费用趋势的“总费用 / 总 Token”,构成、时段分布、模型费用三处的百分比与进度条应同步切换。 · 点击趋势中的单日柱和合并柱,上方日期应被回填并触发查询。 · 模型费用默认显示散点图;悬停圆点出现明细与均价;点击图例名称可隐藏、再点击恢复。 · 把指针移到两个重叠气泡上,提示应上下列出两个模型的明细。 · 费用最高的会话列表中不应再出现金额与父会话相同、标题为侧线程的行。
v0.4.62026-10-22
· 主要更新 · 日均费用按有费用天数计算 今天、7 天、30 天、90 天、全部和自定义范围现在统一使用同一个口径: 日均费用 = 总费用 ÷ 范围内有费用的天数 以前固定用 1、7、30、90 天做分母,范围里有空白天时日均会被拉低。例如 30 天里只有 14 天产生费用,现在按 14 天计算。 · 接口字段 days 改为 billedDays,客户端兼容升级前的缓存。 · KPI 提示显示为“日均 ¥x · N 天有费用”。 · 范围内没有计费日期时显示“无计费日期”,不再显示 ¥0.00。 · 四项颜色改为由深到浅 颜色顺序与图例、趋势柱、圆环、时段分布一致: | 系列 | 颜色 | | --- | --- | | 未缓存输入 | #2971C6 | | 输出 | #5297EC | | 缓存读取 | #84BAFF | | 缓存写入 | #ACD4FF | 深色在柱顶,表示花钱多的未缓存输入;浅色在柱底,表示缓存命中。 · 升级 0.4.5 → 0.4.6 不需要迁移,配置和缓存格式不变。 dsh plugin update @guojinpeng/dsh-cost-meter · 验证 · 打开费用统计页,切换今天、7 天、30 天、90 天、全部和自定义范围,KPI 提示中的天数应等于范围内实际产生费用的天数。 · 切到没有费用的范围,KPI 显示“无计费日期”。 · 趋势柱、图例、圆环、时段分布的四个颜色顺序应为:未缓存输入最深,缓存写入最浅。 101 项单元测试通过。发布包已在隔离 profile 中安装成功。 Full Changelog:
v0.4.52026-10-20
· 主要更新 修复 0.4.4 的“定时刷新费用统计”在浏览器中完全不生效的问题。 0.4.4 把全局 setTimeout 存进对象后以 timers.setTimeout(...) 调用。浏览器要求该方法在 window 上调用,因此抛出 TypeError: Illegal invocation,定时器从未注册:只有打开页面时的第一次预取生效,之后不再刷新。Node 测试环境允许这种调用,所以 0.4.4 的自动化测试没有发现该问题。 0.4.5 改为经箭头函数调用全局 setTimeout / clearTimeout,并新增回归测试模拟浏览器的“非法调用”行为。 · 升级 0.4.4 → 0.4.5 不需要迁移,配置和缓存格式不变。 dsh plugin update @guojinpeng/dsh-cost-meter · 验证 · 打开费用统计页,等待“间隔分钟数”对应时长; · data/cache 下五个范围文件的修改时间应同批更新(相差不超过数秒)。 100 项单元测试与隔离安装冒烟测试通过。 Full Changelog:
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
@guojinpeng/dsh-cost-meter 此插件用于估算 DSH 的会话费用和每轮费用。 需要 DSH 0.2.0-rc.2 或更高版本。 已在 DSH 0.2.0-rc.2 上测试。 会话与本轮费用总览 安装 1. 安装 npm 包: dsh plugin --profile web add -w @guojinpeng/dsh-cost-meter 2. 重启 DSH。 3. 打开插件页面。 4. 选择 @guojinpeng/dsh-cost-meter,修改模型单价。 将 web 替换为你使用的 profile 名称。 如果已安装旧版无 scope 的插件,请先禁用旧版,再安装此插件。 通过 npm 安装已发布版本,npm 提供构建后的安装包。 GitHub 用于保存源码和发布说明。 功能 - 显示会话费用和已完成轮次的费用估算。会话费用胶囊位于输入区,本轮费用胶囊紧跟在官方“本轮用量”之后,时间保持在最后;两处都使用价格标签图标。 - 在侧栏“插件”区域新增“费用统计”菜单。点击后打开费用统计页面。 - 模型价格尚未就绪时显示简短的“初始化中”提示。 - 费用明细按峰价、谷价和固定价分组,每组列出未缓存输入、缓存读取、缓存写入和输出四项价格;金额为 0 的价格行不显示,不显示高峰和谷期 token。
展开完整文档(README 剩余 1 节)
@guojinpeng/dsh-cost-meter

此插件用于估算 DSH 的会话费用和每轮费用。
需要 DSH 0.2.0-rc.2 或更高版本。
已在 DSH 0.2.0-rc.2 上测试。

会话与本轮费用总览

安装

1. 安装 npm 包:

dsh plugin --profile web add -w @guojinpeng/dsh-cost-meter

2. 重启 DSH。
3. 打开插件页面。
4. 选择 @guojinpeng/dsh-cost-meter,修改模型单价。

将 web 替换为你使用的 profile 名称。
如果已安装旧版无 scope 的插件,请先禁用旧版,再安装此插件。

通过 npm 安装已发布版本,npm 提供构建后的安装包。
GitHub 用于保存源码和发布说明。

功能

- 显示会话费用和已完成轮次的费用估算。会话费用胶囊位于输入区,本轮费用胶囊紧跟在官方“本轮用量”之后,时间保持在最后;两处都使用价格标签图标。
- 在侧栏“插件”区域新增“费用统计”菜单。点击后打开费用统计页面。
- 模型价格尚未就绪时显示简短的“初始化中”提示。
- 费用明细按峰价、谷价和固定价分组,每组列出未缓存输入、缓存读取、缓存写入和输出四项价格;金额为 0 的价格行不显示,不显示高峰和谷期 token。会话明细先按三组显示四项价格,再按模型显示各组汇总;本轮明细按模型列出各组的四项价格。
- 每个价格后有感叹号按钮:鼠标悬停只显示该价格的计算公式,移开即关闭。
- 按提供方分组显示模型。模型列表来自 DSH 调用历史和配置中已声明的模型。
- 按完整的 provider/model 名称分别设置单价。
- 可选择 models.dev、openrouter.ai 或 api.deepinfra.com 作为价格来源。
- 新模型从所选来源的本地缓存初始化价格;没有匹配价格时使用零价格。
- 只有手动点击“同步价格”才下载模型价格。价格来源、同步价格按钮和同步报告都显示在模型单价表格上方。
- 仅同步当前配置中的模型。同步结果先作为预览并入草稿,点击“保存”后写入配置。
- 按模型 ID 匹配第三方价格。models.dev 优先使用原厂按量价格;OpenRouter 和 DeepInfra 使用各自平台报价。匹配不明确时保留已有价格。
- 第三方数据无法提供受支持的单价时,保留已有价格。
- 每个模型独立选择 USD 或 CNY,切换币种时按汇率转换四项单价。
- 会话或轮次包含不同币种时,分别显示 USD 和 CNY 费用总额。
- 修改先保留在页面草稿中,点击页尾“保存”后写入配置文件。离开页面时丢弃未保存的修改。保存失败显示错误并保留草稿。
- 配置页分为“模型单价”和“通用”两个平铺分区,进入页面即显示全部内容。“通用”包含汇率、会话和轮次费用胶囊开关、“在侧栏显示费用统计”开关(默认开启),以及“定时刷新费用统计”开关(默认开启)。关闭侧栏开关后不显示该菜单,费用数据保留。定时刷新开关旁可选择 1/3/5/10/15/30/60 分钟,默认 5 分钟;开启时按该间隔并行加载五个预设范围,费用统计页打开时直接命中缓存。
- 费用统计页面支持今天、7 天、30 天、90 天和全部历史,也可以选择自定义起止日期。页面显示四个汇总数字、按日堆叠的费用或 Token 趋势、费用与 Token 构成、模型费用、会话排行,以及当前汇率、统计范围和生成时间。金额使用配置的币种和 cnyPerUsd 汇率。趋势的“总费用 / 总 Token”切换同时决定构成、时段分布与模型费用的占比口径。点击趋势柱可按该柱的时间段重新统计。模型费用默认显示散点图(横轴模型总消费对数刻度、纵轴 Token、圆圈固定大小、名称标在气泡右上角,气泡颜色按每 1M token 均价由浅青到深靛渐变(越便宜越浅),下方按供应商分组可点击隐藏模型),可切回占比列表。
- 费用趋势最多显示 20 根柱子,超过 20 天时合并相邻日期并显示合并范围。右上角“插件设置”打开插件详情页。预设范围的统计结果缓存 15 分钟,点击“刷新”或修改单价后重新统计;自定义日期范围不缓存。工具栏显示缓存状态和统计时间。
- 跟随 DSH 的深色或浅色主题,跟随 DSH 的简体中文或英文语言。
- 每个模型行的“更多单价”展开后显示缓存写入和“自动计算谷价”开关。打开开关后才显示该模型的“峰谷计费规则”,点击感叹号可查看所选规则的时段说明。
- 在“模型单价”标题右侧输入 provider/model 并点击“添加模型”,可为没有调用历史的模型声明单价。声明的模型随配置保存,未被历史发现的模型可以删除。
- 无效的单价或汇率在对应输入框显示红色边框和说明文字,并禁用“保存”和“同步价格”。
- 配置页复用 DSH 官方控件(保存表单、数值字段、开关、按钮、标记),尺寸、边框和配色与宿主设置页一致。
- 每个模型单独选择一套峰谷规则,谷价统一为高峰价的 50%:
- DeepSeek 峰谷规则(默认):北京时间周一至周五 09:00–12:00、14:00–18:00 为高峰;周末、中国法定节假日及其余时段为谷时。
- 阿里云峰谷规则:北京时间 22:00–次日 08:00 为错峰(谷时);其余时段为忙时(高峰)。
- 智谱 GLM 峰谷规则:北京时间周一至周五 14:00–18:00 为高峰;其余时段(含周末全天)为谷时。
- 使用 holiday-cn 年度日历,缓存到 data/holidays/,缺少年份时后台获取。
- 配置保存在 ~/.dsh/guojinpeng/dsh-cost-meter/config.json。设置 DSH_HOME 后,使用该目录。
- 新配置不存在时,首次启动会复制旧的 ~/.dsh/dsh-cost-meter/config.json。保留旧文件。
- 插件、客户端、接口、费用 projection、样式和配置使用独立命名空间。

以下截图使用示例模型价格,不代表实际账单。

旧模型没有币种字段时仍按 USD 读取。旧条目没有峰谷字段时保持固定价,主动打开开关后使用峰谷规则。新条目的“自动计算谷价”默认关闭。同步时,将已确认的 models.dev 原厂 DeepSeek 谷价乘以 2,保存为高峰基准价。每个模型按自己选择的规则计费,默认使用 DeepSeek 峰谷规则。

配置文件路径不变,无需迁移配置。历史用量通过日志回放恢复日期和北京时间七个时段(计费 projection 缓存版本 5);侧线程或继承上下文的子智能体复制进自己日志的父会话转录会跳过,同一段用量只计一次。跨时段请求按用量结算记录的时间估算。只有 DeepSeek 峰谷规则读取节假日日历,阿里云和 GLM 规则不读日历。节假日日历不可用时,无法确认的工作日窗口先按高峰价计算,日历到齐后更新估算。

priceSource 指定新模型使用的缓存来源。旧配置没有该字段时使用 models.dev。模型条目的 source 记录最近导入来源;在配置页手动修改单价后标记为 manual。仅切换来源不会修改已有单价或下载价格,费用计算仍只使用已保存的单价。

三个来源独立缓存到 data/models.dev.json、data/openrouter.ai.json 和 data/api.deepinfra.com.json。OpenRouter 和 DeepInfra 报价不乘以 2。已开启自动谷价的 DeepSeek 条目,在来源无法确认官方高峰基准价时保留原价。同步结果显示跳过的模型,以及因缓存时长无法确定而保留的缓存写入价格。条件价格和非 token 收费不属于当前固定单价估算范围。

会话费用明细:

会话费用卡片

本轮费用明细:

本轮费用卡片

模型单价配置:

桌面端模型单价配置

从源码开发

安装 Node.js、pnpm 9 和 Git。运行测试前,先全局安装 DSH:

npm install -g @deepseek-ai/dsh@0.2.0-rc.2
git clone https://github.com/guojinpeng/dsh-cost-meter.git
cd dsh-cost-meter
pnpm install --frozen-lockfile

修改 src/ 中的代码。运行测试并生成安装包:

npm test
npm run build
npm pack

npm pack 也会执行构建,生成 guojinpeng-dsh-cost-meter-<版本号>.tgz。
将生成的文件安装到你的 DSH profile。以 0.4.4 为例:

dsh plugin --profile web add -w ./guojinpeng-dsh-cost-meter-0.4.4.tgz

重启 DSH,检查插件。每次修改后,重新构建、打包并安装。
测试使用全局安装的 DSH。如果安装位置不同,将 DSH_RUNTIME_ROOT 设置为 DSH 包目录。
提交源码和 pnpm-lock.yaml。不要提交生成文件或本地配置。
模块职责、依赖边界和验证命令见模块维护说明。

发布到 npm

使用有权发布 @guojinpeng/dsh-cost-meter 的 npm 账号。
在项目目录执行:

npm login --registry=https://registry.npmjs.org/
npm whoami --registry=https://registry.npmjs.org/
npm view @guojinpeng/dsh-cost-meter version --registry=https://registry.npmjs.org/

包尚未发布时,npm view 可能返回 E404。
更新已发布的包时,新版本必须高于已发布版本。
修改 package.json。也可以用以下命令递增补丁版本,不自动创建 Git 标签:

npm version patch --no-git-tag-version
pnpm install --lockfile-only
npm test
npm run pack:release

检查安装包的文件列表。pack:release 执行 npm pack,生成带版本号的 npm 安装包。
提交并推送版本变更,然后发布该安装包。
执行前,将 <version> 替换为本次的新版本号:

npm publish ./guojinpeng-dsh-cost-meter-<version>.tgz --access public --registry=https://registry.npmjs.org/
npm view @guojinpeng/dsh-cost-meter version --registry=https://registry.npmjs.org/

根据提示完成 npm 身份验证。
同一包版本只能发布一次。
npm 发布成功后,创建对应的 Git 标签和 GitHub Release:

git tag v<version>
git push origin v<version>
gh release create v<version> --verify-tag --title "<version>" --generate-notes --latest

执行前替换 <version>。GitHub Release 用于发布说明,无需上传安装包。
npm 托管安装包,插件市场通过 npm 包的 repository 字段关联仓库。

发布后,用户可执行以下命令安装:

dsh plugin --profile web add -w @guojinpeng/dsh-cost-meter
预览分享卡片长什么样 ↓guojinpeng/dsh-cost-meter
分享 · DeepSeek Harness Hub
guojinpeng/dsh-cost-meter

极简匹配DSH官方风格的计费卡片. 会话与轮次费用估算插件,支持多价格源、模型独立币种和 DeepSeek 峰谷计费。

回到顶部