Yinxe/deepseek-harness-plugins--plugins-token-meter ↗★ 7

@dshp/token-meter

DeepSeek Harness (DSH) TokenMeter: unified quota + usage statistics — multi-vendor rolling/payg quota with sidebar card and provider ops, plus session-log token aggregation with trends, heatmap and per-model breakdown. 额度与用量统计统一视图:多供应商 rolling/payg 额度(侧边栏卡片 + 供应商运维操作),外加会话日志 token 聚合(趋势、热力图、按模型拆分)。 适合需要跨平台监控 Token 消耗、查看额度趋势和热力图的用户。

패키지
@dshp/token-meter
호환성
미검증
Harness peer 범위
^0.2.0-rc.2
버전
0.15.0
라이선스
MIT
최근 업데이트
2026. 10. 1.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Yinxe/deepseek-harness-plugins#dbb1c022e1017f40170f0827609e6ac8c32ff148&path:plugins/token-meter

配置项

字段类型默认说明
versionnumber1配置版本号(保留字段)。
activeVendorstring''当前供应商 ID;'' = 极简模式(不显示任何额度)。
refreshSecnumber60自动刷新秒数;Host 按此间隔拉取已启用的供应商,0=关闭,其余钳制 10–3600。
enabledbooleantrue遗留字段,已无任何消费方(旧侧栏额度卡开关;Host 侧只原样回显,界面不读它)。自动刷新只看 refreshSec —— 写 enabled: false 不会关掉自动刷新。
vendorsVendor[][]供应商列表({ id, name, type, params, enabled? },id 主键 2–31 位小写/数字/横线)。
showTodaybooleanfalse遗留字段(旧左栏开关,已无界面消费,仅保留做存储兼容)。
defaultRange'7' | '30' | '90' | 'all''all'token 用量统计默认时间范围(缺省「全部」)。
onlineGapMinnumber5在线时长空闲阈值(分钟),吸附到 1/5/15/30/60;只影响快照合并,不需要重扫日志。

供应商 type(providerTypes 下发,设置页下拉据此渲染):

type说明凭据
opencodeOpencode Go+Zen 合并(/go 三窗口+订阅、/billing 余额,同 workspace 一次拉双页)workspaceId + cookie
deepseekDeepSeek 单入口自动选路:sk- 开头走官方余额接口,会话票据走网页账单(余额+累计消费+趋势),一路 401/403 自动换路apiKey 和/或 token(+可选 cookie)
commandcodeCommand Code 额度:5 小时/每周滚动窗口 + 剩余额度 + 本计费周期用量/请求数/成功率/tokensapiKey(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。