实时用量仪表 + 下一步预估 + 预算刹车 —— 每回合给模型一行实时…
30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 121212165/dsh-plugin-quota该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/3) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 14 处,展示前 14 条)
- 写入本地文件lib/plugin.js:32
mkdirSync(dirname(dest), { recursive: true }); - 写入本地文件lib/plugin.js:34
writeFileSync(tmp, content, 'utf8'); - 写入本地文件lib/plugin.js:35
renameSync(tmp, dest); - 读取本地文件lib/plugin.js:56
if (!existsSync(this.path)) - 读取本地文件lib/plugin.js:59
const parsed = JSON.parse(readFileSync(this.path, 'utf8')); - 读取本地文件lib/plugin.js:70
if (!existsSync(this.historyPath)) - 读取本地文件lib/plugin.js:73
const parsed = JSON.parse(readFileSync(this.historyPath, 'utf8')); - 写入本地文件src/plugin.ts:90
mkdirSync(dirname(dest), { recursive: true }); - 写入本地文件src/plugin.ts:92
writeFileSync(tmp, content, 'utf8'); - 写入本地文件src/plugin.ts:93
renameSync(tmp, dest); - 读取本地文件src/plugin.ts:116
if (!existsSync(this.path)) return {}; - 读取本地文件src/plugin.ts:118
const parsed = JSON.parse(readFileSync(this.path, 'utf8')); - 读取本地文件src/plugin.ts:128
if (!existsSync(this.historyPath)) return {}; - 读取本地文件src/plugin.ts:130
const parsed = JSON.parse(readFileSync(this.historyPath, 'utf8'));
扫描于 2026/10/31(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-base@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 注入系统提示词
- 提供面板与卡片工具
dsh 插件:实时用量表——按会话追踪 token/轮次/花费并注入系统提示词,带 /qm 面板和 quota_meter 卡片工具;也是这套插件家族通用的插件开发测试模板
README
由 DeepSeek 最新模型翻译生成dsh-plugin-quota
实时用量仪表 + 下一步预估 + 预算刹车 —— 每回合给模型一行实时 token/花费仪表,预算与上下文撑满都可预测;模型自己看得见,自己刹
60 秒上手:dsh plugin --profile web add github:121212165/dsh-plugin-quota → 重启 dsh → 对话里输入 /qm(零配置即用,配 prices 才估钱、配 budgetTokens 才有进度条)
🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 兄弟插件:ide-hub 跨 IDE 统一管理 · task-forge 跨窗口无损交接
dsh 插件:实时用量仪表——本会话 token/步数/估算花费实时追踪,并给出下一步预估与会话窗口消耗预测(第几步撑满上下文、第几步烧完预算);同时是 dsh 插件家族的通用插件开发测试模板。
它做什么
- 实时追踪:监听 session/event(assistant/message usage),每次模型回复后实时累计本会话的输入/输出/缓存命中 token,带价格表时同时估算花费(微单位累计,显示时格式化);
- 注入系统提示:每回合给模型一行实时仪表(实时用量:13.8k tok / 50k ▰▰▰▱…
展开完整文档(README 剩余 1 节)
dsh-plugin-quota
实时用量仪表 + 下一步预估 + 预算刹车 —— 每回合给模型一行实时 token/花费仪表,预算与上下文撑满都可预测;模型自己看得见,自己刹
60 秒上手:dsh plugin --profile web add github:121212165/dsh-plugin-quota → 重启 dsh → 对话里输入 /qm(零配置即用,配 prices 才估钱、配 budgetTokens 才有进度条)
🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 兄弟插件:ide-hub 跨 IDE 统一管理 · task-forge 跨窗口无损交接
dsh 插件:实时用量仪表——本会话 token/步数/估算花费实时追踪,并给出下一步预估与会话窗口消耗预测(第几步撑满上下文、第几步烧完预算);同时是 dsh 插件家族的通用插件开发测试模板。
它做什么
- 实时追踪:监听 session/event(assistant/message usage),每次模型回复后实时累计本会话的输入/输出/缓存命中 token,带价格表时同时估算花费(微单位累计,显示时格式化);
- 注入系统提示:每回合给模型一行实时仪表(实时用量:13.8k tok / 50k ▰▰▰▱… · 5 步 · ≈0.0153 USD),预算超限模型自己看得见;
- /qm 面板:本会话 + 今日全部会话合计,含预算进度条(budgetTokens > 0 时)和超预算警告;
- 下步预估:assistant/message 的 inputTokens 就是上一步的未命中前缀,于是下一步的提示词 ≈ 上一步 input + 上一步 output(历史增量)+ 15% 工具结果裕量,缓存前缀按原样复用;输出区间取本会话各步的 P50/P85,按匹配到该模型的那一行价格折算,给成一个区间而不是假装精确的单个数。跑第一步之前不编数字,明说「还没有已完成的步」;
- quota_meter 工具:模型可自查,调用与结果都渲染成 generic 卡片(presentCall/presentResult),卡片标题带 下步 ~30k;
- 会话窗口消耗预测(/qm 与 quota_meter 的两行,模型可自查自刹):
- 撑满预测:把每步的提示词读成 input + cacheRead + output,步间增量取中位数(一条巨型工具结果不能冒充斜率),于是「按当前增速,第 N 步(再 M 步)撑满 128k 上下文」。增速 ≤ 0 就说「看不到撑满的迹象」,一个步都没有就说「还没有已完成的步」,contextWindow 没配就说算不出——绝不印 Infinity / 除零的数。contextWindow 只能来自配置:dsh 不给插件暴露模型目录,所以它挂在 prices[] 行上,按匹价格同一个 priceFor() 子串命中;
- 预算预测:budgetTokens 配了才有的数——「按当前增速,再 M 步烧到 100k(已用 53%)」,没预算/没增速同样直说;
- 注入系统提示的那一行不变长(它每回合都跟着走,加字既烧 token 又推前缀漂移),预测只在 /qm 和工具里出现;
- 对家族发布预算契约:见下表,别的插件读 summary.json 就够了,不需要知道会话 id 长什么样。
落盘与跨插件契约
~/.dsh/quota/(或 dataPath 所在目录)下三个文件,全原子写:
| 文件 | 内容 | 谁读 |
| totals.json | { <sessionId>: UsageTotals },本插件的内部账 | quota 自己(重启续算) |
| history.json | { <sessionId>: StepUsage[] },每会话最近 64 步,预测的根据 | quota 自己 |
| summary.json | QuotaSummary:budgetTokens/maxSessionTokens/maxSessionRatio/nextTurnEstTokens/todayTokens/todayCostMicros/currency + contextWindow/stepsUntilFull/stepsUntilBudget | 家族契约:task-forge /relay 派发前读它,预算吃紧就提前警告 |
没配 budgetTokens 时 maxSessionRatio 是 null 而不是 0——「烧到几成」没有预算是无意义的,读方不能自己猜一个。contextWindow/stepsUntilFull/stepsUntilBudget 同理:没配模型窗口、或增速 ≤ 0 算不出撑满点时发布 null。这三个是追加字段,summary.json 与 history.json 的既有字段和语义都不动(task-forge、ide-hub 都在读),只加不改不删。每 4 步(以及 /qm-reset 后)重新发布一次。
作为开发模板
这个插件把家族插件会碰到的每个 seam 各演示一遍,且全部有装配层测试:session/event 事件接线、命令注册、defineTool(含 presentation hooks)、systemPrompt.section、原子写持久化、配置探针(坏配置启动点名)。新插件的脚手架从这里抄。
安装
dsh plugin --profile <你的profile> add github:121212165/dsh-plugin-quota
重启 dsh 即用(默认配置就能工作:仪表注入 + /qm 面板)。需要预算进度条或估花费时,把本仓库根目录 cordis.patch.yml 里的 budgetTokens / prices 示例并进 profile 的 cordis.patch.yml(并进同一个 YAML 数组,不要另起文档追加)。price-aware 是官方面向宿主侧的参考实现,与本插件用 accounting: own|assume-price-aware 共存,不冲突。
配置
budgetTokens: 0 # 单会话 token 预算,0 = 不显示进度条 inject: true # 实时仪表注入系统提示 prices: # 按模型 id 子串匹配,命中才估花费
- match: space-bunny
currency: USD
perMillion: { input: 1, output: 2, cacheRead: 0.1 }
contextWindow: 128000 # 撑满预测的根据;缺省则该模型只报下步预估,不算撑满点
contextWindow 必须是正有限数,否则启动即报错点名 quota: prices[].contextWindow ...。只想给窗口不想要价格时,把 perMillion 留默认 0 即可(估花费自然不出现)。
借鉴来源与差异(不盲目抄)
| 来源 | 借鉴 | 改编 | 原创 |
| dsh-tool-web(官方) | presentCall/presentResult presentation hooks——工具卡片的正确渲染姿势(generic 卡契约) | 官方只给自己工具用;我们把 generic 卡变成家族工具的标准展示层 | —— |
| dsh-plugin-cost-ledger(自家) | session/event usage 折算、微单位计费 | 折算目标是"实时仪表"而非持久台账;价格按子串匹配极简化 | —— |
| dsh-plugin-task-forge(自家) | harness 装配层测试模板、原子写、store 模式 | —— | 当日聚合 fallback(currentSession 未知时按会话 id 含今日日期聚合) |
测试
npm run check # typecheck + node --test + tsc build
34 个测试:19 纯函数(折算/定价/格式化/gauge/卡片契约/预测模型 percentile·predictNextTurn·promptGrowth·projectWindow·projectBudget·summarise,含中位数斜率扛住 10× 离群步、增速 ≤ 0 不印 Infinity、契约字段只增不减)+ 15 装配层(真实 apply() 挂 mock ctx,真实 usage 事件驱动仪表/面板/section/预测行/撑满与预算两行/落盘契约/重置,contextWindow 坏值启动即拒,以及坏 history 文件的降级)。section 注入行有逐字节断言,防止提示词变胖。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
121212165/dsh-plugin-quota
实时用量仪表 + 下一步预估 + 预算刹车 —— 每回合给模型一行实时…
相关插件 · 模型接入
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