Yinxe/deepseek-harness-plugins--plugins-token-meter ↗★ 7
@dshp/token-meter
统一展示多供应商额度与用量统计 适合需要跨平台监控 Token 消耗、查看额度趋势和热力图的用户。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Yinxe/deepseek-harness-plugins#dbb1c022e1017f40170f0827609e6ac8c32ff148&path:plugins/token-meter说明文档
阅读完整 README ↗配置项
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
version | number | 1 | 配置版本号(保留字段)。 |
activeVendor | string | '' | 当前供应商 ID;'' = 极简模式(不显示任何额度)。 |
refreshSec | number | 60 | 自动刷新秒数;Host 按此间隔拉取已启用的供应商,0=关闭,其余钳制 10–3600。 |
enabled | boolean | true | 遗留字段,已无任何消费方(旧侧栏额度卡开关;Host 侧只原样回显,界面不读它)。自动刷新只看 refreshSec —— 写 enabled: false 不会关掉自动刷新。 |
vendors | Vendor[] | [] | 供应商列表({ id, name, type, params, enabled? },id 主键 2–31 位小写/数字/横线)。 |
showToday | boolean | false | 遗留字段(旧左栏开关,已无界面消费,仅保留做存储兼容)。 |
defaultRange | '7' | '30' | '90' | 'all' | 'all' | token 用量统计默认时间范围(缺省「全部」)。 |
onlineGapMin | number | 5 | 在线时长空闲阈值(分钟),吸附到 1/5/15/30/60;只影响快照合并,不需要重扫日志。 |
供应商 type(providerTypes 下发,设置页下拉据此渲染):
| type | 说明 | 凭据 |
|---|---|---|
opencode | Opencode Go+Zen 合并(/go 三窗口+订阅、/billing 余额,同 workspace 一次拉双页) | workspaceId + cookie |
deepseek | DeepSeek 单入口自动选路:sk- 开头走官方余额接口,会话票据走网页账单(余额+累计消费+趋势),一路 401/403 自动换路 | apiKey 和/或 token(+可选 cookie) |
commandcode | Command Code 额度:5 小时/每周滚动窗口 + 剩余额度 + 本计费周期用量/请求数/成功率/tokens | apiKey(user_ 开头,缺省回退 $COMMAND_CODE_API_KEY) |
manual | 本地账本,billing: rolling 填 total/used,payg 填 balance/granted/lowWarn | 无 |
旧 opencode-go / opencode-zen / deepseek-api / deepseek-web 均为别名:读路径自动归一,新写入只落主 type,不会改写你已有的配置文件。
供应商级 enabled(余额查询开关):缺省 = 启用,只有显式 enabled: false 才是禁用。禁用后该供应商不参与 Host 的主动定时拉取(含启动后的首拉),但手动「拉取」、已有快照展示、切为当前供应商都不受影响;开关在 设置 → Token 总览 的「额度配置」供应商列表里(写 POST /set-vendor-enabled)。启用时字段会被删掉而不是写成 true,因此旧配置零迁移、YAML 也不会冒出冗余字段。
显示偏好(不是配置项):它是浏览器本地偏好袋,不在持久化配置里(见「供应商自己的偏好袋」)。Host 没有这个字段、没有校验函数、也没有写它的路由;控件由该供应商的详情模板画在自己卡片底部(设置页没有这类控件),点一下写 localStorage 的 tm-quota-prefs 里它那一袋键值,侧边栏按钮立刻重画。因此它不随配置跨机器同步,也不会在编辑供应商后被覆盖(压根不在配置里)。
配置(profile 条目 config:)
profile 条目 dshp-token-meter 的 config:(标准 settings 存储,手工编辑条目重启后生效,设置页写入即热更):
dshp-token-meter:
activeVendor: oc-main
refreshSec: 60
enabled: true
showToday: false
defaultRange: '30'
vendors:
- id: oc-main
name: Opencode 官方
type: opencode
params: { workspaceId: wrk_xxx, cookie: $OPENCODE_COOKIE }
- id: ds-main
name: DeepSeek 官方
type: deepseek
params: { token: $DS_TOKEN, apiKey: $DEEPSEEK_API_KEY, lowWarn: 5 }
- id: m1
name: 手动账本
type: manual
params: { billing: payg, balance: 50, granted: 100 }
- id: cc-main
name: Command Code
type: commandcode
params: { apiKey: $COMMAND_CODE_API_KEY, lowWarn: 10 }
# apiKey 留空即自动回退读 $COMMAND_CODE_API_KEY(与 CLI 同一约定)
- id: old-main
name: 不常看的旧账号
type: opencode
enabled: false # 禁用余额查询:退出定时拉取,需要时仍可在卡片上手动「拉取」
params: { workspaceId: wrk_old, cookie: $OPENCODE_COOKIE_OLD }
activeVendor: "" = 极简模式(不显示任何额度)。
cookie即浏览器登录态:开发者工具 → Application → Cookies → 复制auth的值, 整段 Cookie(含oc_locale等)原样粘贴亦可;各参数的含义与获取方式见设置页表单 每个字段下方的说明(由 provider 的fields[].hint下发)。 旧写法兼容:opencode-go/opencode-zen、deepseek-api/deepseek-web均为别名, 读时自动归一到主 type(不落库、不改写你的文件);params.auth(opencode 系)→cookie值不变;{cred:}/{env:}→$NAME。