AI 编程

Claude Code 状态栏配置:显示上下文占用与可用的限额信息

Claude Code 的 statusline 可以在终端显示模型、目录和用量字段。配置时最容易混淆的是“上下文占用”和“订阅额度已用”:它们代表不同的限制,不能把一个百分比当成另一个。

两个百分比,不同含义:上下文已用,当前会话窗口的使用比例;限额已用,仅在可用字段提供时展示;字段没有返回,显示未提供,不猜成 0%。本站原创流程示意。
点击图片可查看原图。两个百分比,不同含义:上下文已用,当前会话窗口的使用比例;限额已用,仅在可用字段提供时展示;字段没有返回,显示未提供,不猜成 0%。本站原创流程示意。
本文目录 · 5 个章节

先分清两个百分比

context_window.used_percentage 表示当前上下文窗口的使用比例。它可能在尚未收到响应时缺失,不能据此判断订阅还剩多少额度。

官方状态栏文档还列出了可选的 rate_limits 字段,包括五小时和七天窗口的已用比例。它依赖客户端版本、认证方式和账户条件,并非每个会话都有。界面应把缺失值显示为“未提供”,而不是 0%。字段和适用条件见 状态栏官方文档

最容易开始的方式

在 Claude Code 会话中输入 /statusline,用自然语言描述你希望看到的内容,例如:“显示模型名称和上下文已用百分比;如果存在限额字段,再显示五小时窗口的已用百分比;缺失字段写未提供。”

生成配置后,先阅读脚本再启用。这个脚本会在终端反复运行,简单的信息展示通常不需要额外网络请求,更不需要输出 API Key。

自己写一个能处理空值的脚本

下面的 Python 示例只读取标准输入 JSON 并输出一行文字。把它保存为 statusline.py;它不会请求网络,也不会推算官方没有提供的余额。

1import json
2import sys
3
4def percent(value):
5 if value is None:
6 return "未提供"
7 return f"{value:g}%"
8
9data = json.load(sys.stdin)
10context = data.get("context_window") or {}
11limits = data.get("rate_limits") or {}
12window = limits.get("five_hour") or {}
13print(
14 "上下文已用 " + percent(context.get("used_percentage"))
15 + " | 五小时已用 " + percent(window.get("used_percentage"))
16)

在用户级或项目级 Claude Code 设置中,把 statusLine 配成 command 类型,命令指向这个脚本。以下路径是占位符,必须替换成你自己的绝对路径;已有设置文件时只合并这一项,不要覆盖其他设置。

1{
2 "statusLine": {
3 "type": "command",
4 "command": "python3 /你的绝对路径/statusline.py"
5 }
6}

设置位置和作用范围可核对 Claude Code 设置文档。路径包含空格时,需要在命令中正确引用脚本路径。

用三个样本检查显示逻辑

先在本地给脚本输入测试 JSON:空对象应显示两项“未提供”;把上下文已用设为 0 时,应显示 0%;只提供上下文 25 时,五小时仍应显示“未提供”。这些是人为构造的测试值,不代表你的账户。

启用后再观察真实会话。如果一直看不到限额字段,先核对版本和账户适用条件,不要用聊天次数猜一个百分比。显示出 0% 与根本没有字段,是两种不同状态。

状态栏与重置预测如何配合

状态栏读取当前会话提供的数据;重置信号雷达 展示公开信息和估计,两者证据来源不同。是否恢复使用应以账户实际显示和真实请求结果为准。费用来源也要单独核对 Claude Code 费用说明

来源核对于 2026 年 9 月 9 日:状态栏字段设置范围。配图中的上下文与额度是字段关系示意,未使用真实账户数据。