前言¶
在 DeepSeek Harness(DSH)里长时间跑会话、多工作区并行时,token 用量会分散在本地会话日志里,很难一眼看出「今天花了多少」「哪个目录最费」。官方账单与本地调试用量也不是同一套视图。下面介绍的 dsh-workspace-fee(仓库 FlyFish1997/dsh-project-fee)是面向 DSH Web 宿主的 cordis 插件:只读本地会话日志,在浏览器侧给出状态栏与面板,并按北京日汇总估算费用;不联网、不上传数据。费用数字是按 DeepSeek 官方刊例价自算的估算值,不是实付账单。
这是什么¶
- 维护者:FlyFish1997
- 分类(目录):联网工具(插件本体统计过程不访问外网)
- 定位:按工作区维度监控 DSH token 消耗与人民币(可配 USD)费用的 Web 插件。
- 运行边界:cordis 插件 + DSH Web 客户端 bundle,只能在 DSH 官方宿主(桌面 Electron 或
dsh web)中加载;headless/sdk等没有webServer的 profile 不会加载。
宿主侧引擎仅使用 node: 内置模块,无第三方运行时依赖;浏览器侧依赖宿主注入的 React。
核心功能¶
界面与会话内查询¶
- 顶部状态栏药丸:工作区名、今日花费、预警色点;点开可看近 N 天总花费、按工作区横条,以及默认折叠的「按日账单 / Token 明细 / 预警线 / 价格设置」。
- 模型工具
workspace_fee与斜杠命令/fee:在会话内直接查询,不产生模型消息。
预警与账单¶
- 每个工作区支持日预警线与总预警线,状态分 ok / warn / over 三档。
- 按北京日汇总账单(工作区 × 日期),并落盘为按日 JSONL。
- 统计窗口四档:近 7 / 30 / 90 天,以及全量(
days=all)。
数据与口径¶
- 数据源:
<DSH_HOME>/sessions/下各工作区会话的session[.v<N>].jsonl.zstd(取同目录版本号最大文件,避免双计)。 - 计费契约 v1.1:
cost = cacheRead/1e6*hit + input/1e6*miss + output/1e6*out;inputTokens与cacheRead互斥桶;reasoningTokens默认已含在outputTokens内。 - 时段与分桶一律北京时间 UTC+8;高峰为工作日 09:00–12:00、14:00–18:00(左闭右开),高峰价为空闲价 × 2。
- 内置费率来源日期为 2026-09-10,可通过配置覆盖;请以官方页面为准。
环境要求¶
| 项 | 要求 |
|---|---|
| DeepSeek Harness | >=0.1.2-rc.1(engines.dsh);README 开发与实测基于 0.2.0-rc.2 |
| 宿主 | DSH Web:桌面应用或 dsh web |
| Node.js | ^22.19.0 \|\| >=24.0.0(需 node:zlib 的 zstd 支持) |
安装与启用¶
插件以 link: 形式装进 DSH profile。安装后必须重启宿主并刷新页面,否则浏览器侧 bundle 不会出现。
Windows 一键安装(README 推荐)¶
先干跑确认脚本行为,再正式安装(默认 web + desktop 两个 profile):
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1 -WhatIf
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1
桌面版安装目录不在默认位置时,可指定含 DeepSeek Harness.exe 的目录;只装某一 profile 或卸载:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1 -DesktopAppDir "D:\path\to\deepseek-harness-desktop"
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1 -Profile web
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1 -Uninstall
说明:桌面应用用 desktop profile(需桌面运行时自带 CLI);dsh web 用 web profile。dsh 常不在 PATH 上,脚本会优先使用桌面自带的 resources\runtime\cli\bin\dsh.cmd。
手动安装(任意有 DSH CLI 的平台)¶
dsh plugin --profile web add link:/absolute/path/to/this/repo
desktop profile 须通过桌面应用暴露的内部 CLI 入口执行同类 plugin --profile desktop add link:<仓库绝对路径> 命令(路径因安装方式而异,见仓库 README §2.2)。macOS / Linux 可用相同 link: 方式,但 README 写明目前仅在 Windows 上实测过。
重启后自检¶
- 桌面版:退出并重新打开 DeepSeek Harness,刷新页面。
dsh web:停服务再启动,打开地址并刷新。
不经过 HTTP、直接核对宿主侧引擎账目:
node scripts/report.mjs --json
典型用法¶
面板与 HTTP¶
GET /summary?days=N:滚动窗口为最近 N 个北京日(含今天);days=all为全量口径。GET/POST /api/dsh-workspace-fee/config:运行时改预警线、价格表等(形状见仓库docs/SPEC.md)。- 每次
GET /summary与POST /refresh会把按日账单写入usageDir下的*.jsonl。
会话内¶
在 DSH Web 会话中使用斜杠命令 /fee,或调用工具 workspace_fee,快速查看当前工作区相关汇总(不产生模型消息)。
离线报告脚本¶
node scripts/report.mjs --json
node scripts/report.mjs --raw --days=all
node scripts/probe.mjs --days=365 --out=reports/probe-report.md
配置要点¶
优先级(高 → 低):settings 命名空间 dsh-workspace-fee 的用户段 → <dataDir>/config.json → 插件行 config → 内置默认。
插件行 cordis.patch.yml 中常见字段包括:home、sessionsRoot、dataDir、pricing、alerts、persistCache、flushSeconds。环境变量如 DSH_HOME、DSH_WORKSPACE_FEE_SESSIONS、DSH_WORKSPACE_FEE_DATA、DSH_WORKSPACE_FEE_USAGE 可覆盖路径。币种默认 CNY,可通过 pricing.currency 设为 USD。
适用场景与注意¶
适合:长期在 DSH Web 上开发、需要按工作区看 token 与费用趋势、希望本地预警而不把用量发到第三方的开发者。
注意:
- 插件以当前 DSH 进程权限读本地会话与写账本目录;安装前请阅读源码与 MIT 许可证,确认路径与数据落盘位置可接受。
- 数字为估算,不抓取官方价格页;与实付可能不一致。
- 仅 DSH Web 宿主;非 DSH 平台无法加载。
- 独立验证脚本
run-all.mjs在 README 中如实标注部分项依赖上游源码路径(DSH_CORE_DIR),未配置时可能失败,不影响插件在宿主内的主路径。
结尾¶
dsh-workspace-fee 把分散在会话日志里的用量收成「工作区 × 北京日」视图,并在 Web 界面提供药丸状态栏、图形面板、预警线与 JSONL 账单,适合在 DSH 日常开发里做本地用量自检。社区目录页:skillhub.cn/plugins/FlyFish1997/dsh-project-fee;源码与完整安装说明:github.com/FlyFish1997/dsh-project-fee。