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

会话成本统计 newbieYi/dsh-cost-stats

DeepSeek Harness
newbieYi57 天前有提交已提供中文文档扫描:含敏感能力

实时查看当前会话各模型的 token 用量与费用

24.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add newbieYi/dsh-cost-stats
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · chat
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 57 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 8 处,展示前 8 条)
  • 发起网络请求
    lib/client.js:662
    const response = await fetch("/cost-stats/overview?range=" + encodeURIComponent(range), {
  • 读取本地文件
    lib/overview.js:264
    listEntries = (path) => readdirSync(path),
  • 读取本地文件
    lib/overview.js:267
    return statSync(path);
  • 读取本地文件
    lib/overview.js:272
    readText = (path) => readFileSync(path, "utf8"),
  • 读取本地文件
    lib/overview.js:313
    if (!existsSync(path)) return fallback;
  • 读取本地文件
    lib/overview.js:315
    return JSON.parse(readFileSync(path, "utf8"));
  • 读取本地文件
    lib/overview.js:326
    entries = readdirSync(path, { withFileTypes: true });
  • 执行外部命令固定命令
    lib/overview.js:337
    const result = spawnSync("zstd", ["-dc", child], { encoding: "utf8", maxBuffer });
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-settings
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH web 插件:按会话统计费用的标签页(token 用量 + 各模型预估费用)

README

由 DeepSeek 最新模型翻译生成
dsh-cost-stats DSH Web 插件:会话级成本统计面板。 面向谁,解决什么 - 面向:想随时看清每个会话、每个模型 token 用量与费用的 DSH 用户 - 解决:不用再手动估算成本,一个面板实时统计当前会话的 token 消耗、缓存命中率与费用,支持 USD / CNY 功能 - 实时统计当前会话的 token 用量与费用估算 - 按模型分组展示:未缓存输入、缓存读、缓存写、输出 - 按请求明细展示:每次请求(一次模型调用)的 token 用量与费用 - 显示缓存命中率 - 支持 USD / CNY 双币种显示 效果预览 成本统计面板 成本分析 支持的模型定价 单价由 DSH 内置的 pi-ai 官方价目表提供(@earendil-works/pi-ai 的 dist/providers/data/*.json,USD / 百万 tokens),覆盖 37 个提供商、700+ 模型,且随 DSH 升级自动更新。插件在 host 侧注册 costStats 会话投影,用这套官方价对 provider 回报的真实 token 用量计费,浏览器端直接读投影结果——不再维护手写价目表。
展开完整文档(README 剩余 1 节)
dsh-cost-stats

DSH Web 插件:会话级成本统计面板。

面向谁,解决什么

- 面向:想随时看清每个会话、每个模型 token 用量与费用的 DSH 用户
- 解决:不用再手动估算成本,一个面板实时统计当前会话的 token 消耗、缓存命中率与费用,支持 USD / CNY

功能

- 实时统计当前会话的 token 用量与费用估算
- 按模型分组展示:未缓存输入、缓存读、缓存写、输出
- 按请求明细展示:每次请求(一次模型调用)的 token 用量与费用
- 显示缓存命中率
- 支持 USD / CNY 双币种显示

效果预览

成本统计面板

成本分析

支持的模型定价

单价由 DSH 内置的 pi-ai 官方价目表提供(@earendil-works/pi-ai 的 dist/providers/data/*.json,USD / 百万 tokens),覆盖 37 个提供商、700+ 模型,且随 DSH 升级自动更新。插件在 host 侧注册 costStats 会话投影,用这套官方价对 provider 回报的真实 token 用量计费,浏览器端直接读投影结果——不再维护手写价目表。

个别模型(例如 claude-opus-5-thinking 这类经自定义 provider 接入的模型)不在 pi-ai 目录里,面板会显示「—」而非猜测一个价格。

刷新价目表(开发用)

价格快照由脚本生成,DSH 升级 pi-ai 后重跑一次即可:

node scripts/sync-prices.mjs

脚本默认读取 DSH 安装目录下的 pi-ai 数据,也可显式传路径:

node scripts/sync-prices.mjs /path/to/pi-ai/dist/providers/data

安装

第 1 步:安装 DSH 本体

插件依赖 DSH (DeepSeek Harness)。如果终端执行 dsh -V 提示 command not found,说明还没装:

npm install -g @deepseek-ai/dsh

装好后确认一下:

dsh -V

第 2 步:安装并登记插件

整段复制到终端执行即可,不用手改任何文件:

PLUGIN=dsh-cost-stats
REPO=newbieYi/dsh-cost-stats
PROFILE="$HOME/.dsh/profiles/web"

dsh plugin --profile web add "github:$REPO" \
&& test -f "$PROFILE/node_modules/$PLUGIN/cordis.patch.yml" \
&& node -e '
const fs = require("fs");
const file = process.argv[1] + "/package.json";
const name = process.argv[2];
const pkg = JSON.parse(fs.readFileSync(file, "utf8"));
const profile = ((pkg.dsh ??= {}).profile ??= {});
const list = (profile.bundles ??= []);
if (!list.includes(name)) {
list.push(name);
fs.writeFileSync(file, JSON.stringify(pkg, null, 2) + "\n");
}
console.log("已登记 bundles:", list.join(", "));
' "$PROFILE" "$PLUGIN" \
|| echo "安装未完成,profile 未被改动。请检查网络后重跑本段。"

看到 已登记 bundles: ... dsh-cost-stats 就成功了,继续第 3 步。

看到 安装未完成 说明包没下载下来(常见原因:网络不通、pnpm 不可用)。这时 profile 没有被改动,DSH 仍能正常启动;解决网络问题后重跑本段即可。

第 3 步:重启 DSH

插件在启动时装载,改完配置必须重启才生效。请正常退出,不要用 kill -9,否则会话数据可能来不及落盘:

1. 切到正在运行 dsh web 的那个终端窗口,按 Ctrl + C 等它自己退出;
2. 重新启动:

dsh web

如果找不到原来的终端窗口,可以先查一下进程再正常终止:

lsof -ti :3080 | xargs kill

第 4 步:验证

浏览器打开 DSH Web,进入任意会话,tab 栏里应该能看到「成本统计」。

常见问题

装完没有「成本统计」tab? 九成是没重启。也可以检查 ~/.dsh/profiles/web/package.json 的 bundles 里有没有 "dsh-cost-stats"。

启动时报 cannot resolve profile bundle "dsh-cost-stats"? bundles 里登记了插件,但 node_modules 里没有这个包。重跑第 2 步那段即可(它会先确认下载成功再动 profile)。

如果始终装不上,用这条命令把登记撤掉,DSH 就能正常启动,之后再从容排查网络问题:

node -e '
const fs = require("fs");
const file = process.env.HOME + "/.dsh/profiles/web/package.json";
const pkg = JSON.parse(fs.readFileSync(file, "utf8"));
const list = pkg.dsh?.profile?.bundles ?? [];
pkg.dsh.profile.bundles = list.filter((n) => n !== "dsh-cost-stats");
fs.writeFileSync(file, JSON.stringify(pkg, null, 2) + "\n");
console.log("剩余 bundles:", pkg.dsh.profile.bundles.join(", "));
'
启动时报 declares no dsh.bundle 或 failed to read overlay ... cordis.patch.yml? 包下载得不完整。重跑第 2 步;若仍然如此,先 dsh plugin --profile web remove dsh-cost-stats 再重新 add,避免 pnpm 复用坏的缓存。

表格里出现 unknown 模型? DSH 内部调用(生成会话标题、上下文压缩等)不带模型标识,它们的 token 会归到 unknown 行,属于正常现象。

使用

启动 DSH Web 后,在对话界面的 tab 栏中点击「成本统计」即可查看当前会话的 token 消耗与费用。

License

MIT
预览分享卡片长什么样 ↓newbieYi/dsh-cost-stats
分享 · DeepSeek Harness Hub
newbieYi/dsh-cost-stats

实时查看当前会话各模型的 token 用量与费用

这是你的仓库?认领条目

回到顶部