上下文仪表:Claude Code 上下文用量状态栏
在状态栏显示上下文窗口占用、5 小时与 7 天套餐用量和会话花费,并在接近上限时发出提醒。
权限
- 修改界面在 Claude Code 界面中绘制内容:横条、面板、状态文字、弹出通知(ui.render / $.ui.*)。
- 实测版本
- v2.1.291
- 最近实测
- 需要
- Claude Code ≥ 2.1.287
- 显示位置
- 状态栏、弹出通知
在 Claude Code 中安装:
/plugin install cm-context-meter --marketplace rotbit/claudemods-marketplace这个插件能做什么?
上下文仪表(Context Meter)是一款 Claude Code 上下文用量状态栏插件。它会在状态栏写入一行紧凑的信息:ctx 42% · 5h 23% · 7d 61.5% · $1.20。依次表示上下文窗口已经用了多少、你的 5 小时和 7 天套餐窗口已用多少(仅限订阅账户),以及本次会话到目前为止的花费。当上下文达到 80% 时,会弹出一次提示通知,让你可以在 Claude 开始遗忘早先的细节之前执行 /compact 或 /clear。
它的意义在于让你不再靠猜。你不必再运行 /cost 或 /context 来判断一个长任务能否放得下,而且提醒来得足够早,让你可以按自己的节奏去压缩上下文。需要 Claude Code 2.1.287 或更高版本。
演示
录屏中,我们在加载了该插件的情况下启动一个会话。在第一次回答之前,状态栏显示 ctx –;这一轮完成后,上下文百分比、套餐窗口和花费便会依次填上。
安装
从安装区块中任选一种方式。无需任何配置;默认设置会显示账户所提供的全部数据。
$ install cm-context-meter
需要 Claude Code ≥ 2.1.287
1.在 Claude Code 中一行安装
/plugin install cm-context-meter --marketplace rotbit/claudemods-marketplace粘贴到正在运行的会话中(v2.1.275+)。Claude Code 会先询问是否添加该插件市场。
2.从终端安装
claude plugin marketplace add rotbit/claudemods-marketplace claude plugin install cm-context-meter@claudemods然后在所有已打开的会话中运行 /reload-plugins。
3.免安装试用
git clone https://github.com/rotbit/claudemods-marketplace claude --plugin-dir ./claudemods-marketplace/cm-context-meter仅在当前会话中加载该插件,不会写入你的设置。
工作原理
整个插件只有三个钩子和一个刷新函数。以下摘自 hooks/register.ts:
async function refresh($: EngineInterface, meter: Meter): Promise<void> {
// No `breakdown`: the status-line figures alone, which cost no request.
const usage = await $.session.usage()
$.ui.status(formatMeter(usage, meter))
const percent = contextPercent(usage)
const step = warnStep(percent, meter.warnAtPercent, meter.warned)
meter.warned = step.warned
if (step.toast) {
$.ui.toast(`Context is ${percent}% full. Consider /compact or /clear soon.`)
}
}$.session.usage() 返回上下文 token 数与窗口大小、套餐速率限制以及花费。在不带 breakdown 调用时,它读取的是 Claude Code 手头已有的数字,所以仪表想多频繁运行都不会产生额外开销。hooks/format.ts 中的 formatMeter 负责拼出文本,引擎没有的数据会直接省略,而不是显示为零。warnStep 会记住是否已经提醒过,因此每次越过阈值只会弹出一次提示;当一次压缩把上下文降回阈值以下后,它可以再次提醒。
refresh 会在三处被调用:session.start(同时启动一个 $.clock.every 定时器)、仅针对主循环对话的 turn.complete,以及 session.compact。由于 session.compact 可以取消一次压缩,它的钩子会先等待 next(e) 完成,并带有一个 .catch,把 next 最终得到的结果原样交回。仪表永远不会阻止压缩。
自定义
在 /config 中设置这些选项。format: verbose 会把这一行完整写出来,例如 Context 42% (84k/200k) · 5-hour 23% · 7-day 61.5% · Cost $1.20。各项标签保存在 hooks/format.ts 的 LIMIT_LABELS 表中,如果想重命名 5h 或 7d,就改那里。提醒文字则是 refresh 内部的模板字符串。
| 设置项 | 类型 | 默认值 | 作用 |
|---|---|---|---|
| showCost | boolean | true | Show cost. Show the session's cost in US dollars, as /cost totals it. |
| showRateLimits | boolean | true | Show plan usage. Show the 5-hour and 7-day plan usage windows (subscriptions only). |
| warnAtPercent | number | 80 | Warn at context %. Show a toast once when the context window reaches this percentage; 0 turns the warning off. |
| format | string (compact | verbose) | "compact" | Format. compact: ctx 42% · 5h 23% · $1.20. verbose: Context 42% (84k/200k) · 5-hour 23% · Cost $1.20. |
| intervalMs | number | 60000 | Refresh interval (ms). How often to refresh between turns, in milliseconds (at least 5000). |
在 Claude Code 中通过 /config 修改这些设置,插件会热重载。
权限与安全
它唯一的权限标记是修改界面:插件会写入状态栏并显示提示通知。它不运行命令、不读写文件、不使用网络、不读取你的提示词,也不调用模型。这使它成为你能安装的最安全的插件之一,也非常适合作为你的第一个插件。
要关闭它,运行 /plugin disable cm-context-meter。要启动一个关闭所有插件的会话,使用 claude --safe-mode。
- 修改界面
- 在 Claude Code 界面中绘制内容:横条、面板、状态文字、弹出通知(ui.render / $.ui.*)。
兼容性与故障排除
已在 macOS 终端中使用 Claude Code 2.1.291 测试。如果仪表没有出现:
- 检查
claude --version;插件需要 2.1.287 或更高版本。 - 确认该插件已在
/plugin的 Installed 标签页中启用。 - 通过 shell 安装后,在已经打开的会话中运行
/reload-plugins。 - 其他插件或自定义的状态栏命令可能会共用这一行。暂时停用其他状态栏插件,看看文本是否被挤掉了。
- 使用 API 密钥时没有套餐数据,这是预期行为。
花费数字与 /cost 汇总的会话估算值相同,并不是账单。
常见问题
- 上下文仪表会消耗 token 或套餐额度吗?
- 不会。它调用不带 breakdown 的 $.session.usage(),返回的是 Claude Code 已经在统计的数字,不会发出任何请求。
- 为什么我看不到 5h 和 7d 数据?
- 套餐用量窗口只存在于订阅账户中。使用 API 密钥时没有这些数据,仪表会直接省略它们,而不是显示 0%。
- 为什么一开始状态栏显示 ctx –?
- 在 Claude 回答第一次之前还没有上下文数据。第一轮对话完成后,这个短横线就会被替换。
- 可以关闭 80% 提醒吗?
- 在 /config 中把 warnAtPercent 设为 0。设为 1 到 100 之间的其他值则会调整提醒阈值。
- 它多久刷新一次?
- 每轮主循环对话结束后、每次压缩之后都会刷新,期间每 60 秒刷新一次。可以用 intervalMs 修改定时器,最短 5 秒。
# 相关插件

工具调用计数器
统计 Claude 每轮和每个会话的工具调用次数,在加载指示器旁显示计数,并新增 /tally 查看明细。
- 加载动画
- 对话记录
- 状态栏
- 拦截工具调用
- 修改界面
- 添加命令/工具
已在 v2.1.291 实测

