Token Usage Display

在 WebChat 底部显示请求模型和输入/输出/缓存 token,缓存命中率按缓存/(缓存+输入)计算。

Install

openclaw skills install @woohahahaaa/token-usage-display

token-usage-display

目的

修改 OpenClaw Control UI 消息底部信息,不改消息正文:

  • 用户消息显示该次请求对应的模型名。
  • Assistant 消息显示:In<输入>|Out<输出>|Cache<缓存读取>(<命中率>)
  • 上游明确返回 0 时显示 0;字段不存在时显示 null
  • 不在分隔符两侧插入空格。

强制交互

每次用户要求执行本 skill 时,先问:

这次要保留日期显示吗?

用户明确回答后再运行:

bash
cd ~/Desktop/openclaw_workspace_wooh/skills/token-usage-display
python3 scripts/patch.py --show-date yes
python3 scripts/patch.py --show-date no

格式与计算

text
In2430|Out856|Cache1024(29.6%)
In2430|Out856|Cachenull(null)
In100|Out0|Cache0(0.0%)
  • Inusage.inputusage.inputTokens
  • Outusage.outputusage.outputTokens
  • Cacheusage.cacheReadusage.cache_read_input_tokens
  • 命中率:缓存读取 ÷ (缓存读取 + 输入 token) × 100,保留 1 位小数。
  • In、Cache 缺失,或两者之和不大于 0 时,命中率为 null
  • 缓存写入不显示,但不能删除或破坏原始 usage 数据。

补丁与升级

脚本使用 OTUD-v3 show-date=yes|no 标记。当前系统若为 OTUD-v1、v2 或不同日期设置的 v3,必须从 .otud-pristine 重新构建,不能叠加修改。当前 v3 且日期设置相同才可返回幂等成功。

脚本必须自动从 dist/control-ui/index.html 发现 hash bundle,首次创建 pristine 和时间戳备份,精确校验锚点,用临时 .js 执行 node --check 后原子替换。异常时输出 PATCH FAIL,不得写入。

不改正文、原始 transcript 或 provider transport;只作用于 Control UI/WebChat。