Yinxe/deepseek-harness-plugins--plugins-token-meter ↗★ 3
@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 聚合(趋势、热力图、按模型拆分)。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Yinxe/deepseek-harness-plugins#d92df41b570b800ce4b52b8fb83515c8eb76c41b&path:plugins/token-meter说明文档
阅读完整 README ↗配置项
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
version | number | 1 | 配置版本号(保留字段)。 |
activeVendor | string | '' | 当前供应商 ID;'' = 极简模式(不显示任何额度)。 |
refreshSec | number | 60 | 自动刷新秒数;Host 按此间隔拉取已启用的供应商,0=关闭,其余钳制 10–3600。 |
enabled | boolean | true | 遗留字段(旧左栏开关,已无界面消费,仅保留做存储兼容)。 |
vendors | Vendor[] | [] | 供应商列表({ id, name, type, params, enabled? },id 主键 2–31 位小写/数字/横线)。 |
showToday | boolean | false | 遗留字段(旧左栏开关,已无界面消费,仅保留做存储兼容)。 |
defaultRange | '7' | '30' | '90' | 'all' | '30' | 用量统计默认时间范围。 |
供应商 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 的主动定时拉取(含启动后的首拉),但手动「拉取」、已有快照展示、「设为当前」都不受影响;设置页与右栏额度卡上的「禁用 / 启用」按钮即写这个字段(走 POST /set-vendor-enabled)。启用时字段会被删掉而不是写成 true,因此旧配置零迁移、YAML 也不会冒出冗余字段。
配置(settings.yaml)
$DSH_HOME/settings.yaml 的 dshp-token-meter 分节(标准 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。