跳到出发板
DIDRESET
UTC

怎么把 5 小时和周额度显示在状态栏

作者 vortwang更新于

Claude Code 把 rate_limits 传给状态栏脚本:「rate_limits 对象包含一个滚动的 five_hour 窗口和一个每周的 seven_day 窗口」,各有 used_percentage 与 resets_at;只对 Pro 与 Max、且在第一次 API 响应后出现,脚本要用 jq 的「// empty」。Codex 用 /statusline 勾选,保存到 tui.status_line;额度项是 five-hour-limit 与 weekly-limit。

官方文档怎么说

步骤

Claude Code。状态栏是 ~/.claude/settings.json 里 statusLine 设置指定的脚本,Claude Code 把会话 JSON 通过管道传给它。文档:「rate_limits 对象包含一个滚动的 five_hour 窗口和一个每周的 seven_day 窗口。每个窗口提供 used_percentage(0 到 100)和 resets_at(窗口重置的 Unix 秒)」。在 Claude apps 网关之后还会多一个字段相同的 spend_limit 窗口(v2.1.251+)。Error reference 建议用它「持续关注剩余额度」,赶在「You've used 85% of your session limit」警告变成拦截之前。

这个对象「只对 claude.ai Pro 与 Max 订阅者,或设有消费上限的 Claude apps 网关之后出现,且要等第一次 API 响应之后」。每个窗口「可能各自缺席」,「resets_at 过了之后 Claude Code 会丢掉该窗口」。所以官方 Bash 示例写的是 jq -r '.rate_limits.five_hour.used_percentage // empty',字段缺席时什么都不输出。

Codex。/statusline 的文档描述是「交互式配置 TUI 状态行字段」:在选择器里勾选、排序项目,「保存到 config.toml 的 tui.status_line」。文档列出了项目种类(模型、上下文统计、额度、git 分支、token 计数、会话 id 等)和默认列表 ['model-with-reasoning', 'context-remaining', 'current-dir'],但没有列出额度项的标识符。openai/codex 源码里它们是 five-hour-limit(「主用量限额的剩余用量(不可用时省略)」)和 weekly-limit,渲染成「weekly 82% left」这样。两个工具的状态栏都不会在限额刷新时改变规则;它读的就是 /usage 和 /status 显示的同一组窗口。

  1. Claude Code:让 /statusline 替你写脚本

    运行 /statusline 并描述需求,例如「显示模型、5 小时与周用量百分比」。命令表说:描述你想要的内容,或不带参数运行以按你的 shell 提示符自动配置。Claude Code 会在 ~/.claude/ 生成脚本并更新设置。

  2. 或者自己写 statusLine 设置

    在 ~/.claude/settings.json 加一个 statusLine 字段,type 为 command,command 指向你的脚本。脚本从 stdin 收到会话 JSON;官方 Bash 示例用 FIVE_H=$(echo "$input" | jq -r '.rate_limits.five_hour.used_percentage // empty') 读 5 小时,从 .rate_limits.seven_day.used_percentage 读周,然后输出「[Model] | 5h: 42% 7d: 17%」。

  3. 读懂四个字段

    rate_limits.five_hour.used_percentage 与 rate_limits.seven_day.used_percentage 取值 0 到 100。rate_limits.five_hour.resets_at 与 rate_limits.seven_day.resets_at 是各窗口重置的 Unix 秒,脚本可以据此打印倒计时。在 Claude apps 网关之后,rate_limits.spend_limit 带同样两个字段(v2.1.251 或更新),其百分比可以超过 100。

  4. 处理对象缺席的情况

    rate_limits 只对 claude.ai Pro 与 Max 订阅者(或设有消费上限的网关之后)出现,且要等会话里第一次 API 响应之后;每个窗口可能各自缺席,resets_at 过了之后该窗口会被丢掉。jq 里用「// empty」、Python 里用 .get(),让没有它时状态行照常渲染。

  5. Codex:打开 /statusline 选择器

    在 Codex CLI 里输入 /statusline,在选择器里勾选、排序项目后确认。文档:「页脚状态行立即更新,并保存到 config.toml 的 tui.status_line」。可选项目包括模型、上下文统计、额度、git 分支、token 计数和会话 id。

  6. Codex:在 config.toml 里写额度项

    tui.status_line 是「TUI 页脚状态行项目标识符的有序列表」;文档默认值是 ['model-with-reasoning', 'context-remaining', 'current-dir']。额度项的标识符不在文档示例里;openai/codex 源码把它们定义为 five-hour-limit 与 weekly-limit,各自「不可用时省略」,例如 status_line = ['model', 'five-hour-limit', 'weekly-limit']。

  7. 用 /usage 与 /status 交叉核对

    状态栏读的就是应用内屏幕显示的同一组窗口:Claude Code 的 /usage、Codex 的 /status。状态栏显示 100% 而刷新还有几小时时,本站的等待续跑相关页面适用;厂商的全员重置显示在板面上,不在状态栏里。

常见问题

为什么我的 Claude Code 状态栏里没有 rate_limits?

文档写明的三个原因:你不是 claude.ai Pro 或 Max 订阅(API key 与按量计费没有 rate_limits)、会话还没收到第一次 API 响应、或该窗口的 resets_at 已过而被 Claude Code 丢掉。脚本应在没有它时照常输出。

resets_at 和 /usage 显示的时间一样吗?

一样。resets_at 是 five_hour 或 seven_day 窗口重置的 Unix 秒,与 /usage 为会话条和周条显示的刷新时间相同。它是你自己的账号时钟,不是全员重置。

five-hour-limit 和 weekly-limit 是从哪来的?

来自 openai/codex 仓库源码(codex-rs/tui/src/bottom_pane/status_line_setup.rs),StatusLineItem 枚举序列化为 kebab-case。官方文档描述了选择器和 tui.status_line,但只列出部分标识符;不想手改 config.toml 就用 /statusline。

限额刷新时状态栏会更新吗?

Claude Code 按事件重跑脚本(300ms 去抖),或按你设置的 refreshInterval 定时重跑,显示 API 最近一次报告的值;resets_at 过了之后它会丢掉该窗口,所以刷新后百分比消失或重新开始。两个状态栏都不会宣布厂商的全员重置;本站板面会。

来源

  1. Claude Code docs: Status line — Rate limit usage (rate_limits.five_hour / seven_day: used_percentage, resets_at)核实于 2026-09-18
  2. Claude Code docs: Status line — /statusline command and the statusLine setting in ~/.claude/settings.json核实于 2026-09-18
  3. Claude Code docs: Slash commands — /rate-limit-options, /config, /statusline, /usage核实于 2026-09-18
  4. Claude Code docs: Error reference — "You've hit your session limit" (Desktop Auto-continue checkbox; 85% warning; rate_limits in the status line)核实于 2026-09-18
  5. Codex docs: Slash commands — Configure footer items with /statusline (persists to tui.status_line in config.toml)核实于 2026-09-18
  6. Codex docs: Configuration reference — tui.status_line (ordered list of footer status-line item identifiers)核实于 2026-09-18
  7. Codex docs: Sample configuration — status_line default ["model-with-reasoning", "context-remaining", "current-dir"]核实于 2026-09-18
  8. openai/codex repository source: codex-rs/tui/src/bottom_pane/status_line_setup.rs — StatusLineItem enum (five-hour-limit, weekly-limit)核实于 2026-09-18

想让下一次重置直接打到手机上?

赞助商