Claude Fable 5 的 usage credits 如何显示在 Claude Code 状态栏?

作者:袖梨 2026-09-12

要在 Claude Code 状态栏查看 Claude Fable 5 的使用情况,可以安装 claude-fable-usage,或按相同原理配置自定义 statusLine。需要先说明:它显示的是上下文占用、5 小时额度、7 天额度和 Fable 周额度百分比,不是账户中可购买、可充值的 usage credits 余额。

状态栏能显示哪些数据

配置成功后,底部会出现 ctx、5h、7d、Fable、resets 等字段。ctx 表示当前会话上下文占用,5h 和 7d 表示两个通用使用窗口,Fable 表示模型专属周额度已使用百分比,resets 表示该周额度距离重置还有多久。

颜色用于快速判断压力:低用量为绿色,中等用量为黄色,高用量为红色。使用 Fable 时可以显示更醒目的进度条;切到其他模型后,Fable 字段仍可保留为简洁文本,便于观察周额度。

为什么它不能直接显示 credits 余额

Claude Code 传给 statusLine 的标准 JSON 包含会话成本、上下文和部分 rate_limits 数据,但不包含账户浅包中的 usage credits 金额。因此,状态栏不能仅凭标准输入算出可用余额。

claude-fable-usage 读取的是使用窗口百分比。它从标准输入获得 5 小时和 7 天窗口,再调用 Claude 的 OAuth usage 接口读取模型范围内的 weekly_scoped 记录。这个百分比表示周额度消耗,不等同于美元余额,也不能代替 Settings > Usage 的信息。

安装前的要求

  • macOS 或 Linux。
  • Python 3.9 或更高版本。
  • 已通过 OAuth 登录的 Claude 订阅账户。
  • 当前账户或计划确实拥有 Fable 周额度。

该工具主体只使用 Python 标准库。因为它会读取 Claude Code 的本地登录凭据并请求 usage 接口,安装前应检查仓库中的 install.sh 和 statusline.py,不要盲目执行远程脚本。

方法一:克隆仓库后安装

git clone REPOSITORY_URL
cd claude-fable-usage
./install.sh

把 REPOSITORY_URL 替换为参考项目的仓库地址。这种方式便于先审查代码,也方便以后通过 git pull 更新。安装脚本会把状态栏程序放到 Claude 配置目录,备份原有 settings.json,并保留文件中的其他设置。

安装完成后不需要重启 Claude Code。设置会动态加载,但通常要再发送一条消息,触发下一次状态栏刷新。

方法二:手动配置 statusLine

先把 statusline.py 放到固定位置并添加执行权限,然后在用户级或项目级 settings.json 中配置命令:

chmod +x /absolute/path/to/statusline.py
{
  "statusLine": {
    "type": "command",
    "command": "/absolute/path/to/statusline.py",
    "refreshInterval": 10
  }
}

用户级配置通常放在 Claude 配置目录的 settings.json;项目级配置可以放在项目的 .claude/settings.json。命令路径建议使用绝对路径,避免不同 shell 对波浪号和工作目录的处理差异。

refreshInterval 设置为 10,表示即使当前会话没有新事件,也会定期刷新倒计时和缓存数据。状态栏命令还会在助手回复、上下文压缩和权限模式变化后自动运行。

数据是如何进入状态栏的

Claude Code 每次刷新时,把一段 JSON 通过标准输入交给脚本。脚本解析 model、workspace、context_window、cost 和 rate_limits 等字段,再把一行文字输出到标准输出。Claude Code 只负责呈现脚本打印的内容。

Fable 周额度不在标准 statusLine 数据的通用窗口中,因此工具额外请求 OAuth usage 接口,寻找 scope.model.display_name 为 Fable 的 weekly_scoped 项。结果会写入本地缓存,减少请求频率,也避免状态栏渲染被网络延迟阻塞。

如何验证配置是否生效

  1. 在 Claude Code 中发送一条普通消息,触发状态栏更新。
  2. 确认底部出现 ctx、5h 和 7d 字段。
  3. 切换到 Fable,确认出现 FABLE 百分比或进度条。
  4. 对照 Claude 的 Usage 页面,确认百分比方向和重置时间合理。
  5. 等待超过一个刷新周期,确认倒计时仍会更新。

ctx 在第一次回复之前,或刚执行上下文压缩之后,可能短暂显示为不可用。这通常不是故障,而是 Claude Code 尚未提供新的上下文统计。

只显示 5h 和 7d,没有 Fable 怎么办

先确认当前计划有 Fable 专属周额度,并且 Claude Code 已经完成 OAuth 登录。没有相应 weekly_scoped 数据时,工具会隐藏 Fable 段,而不是伪造一个 0%。

还要检查本地凭据是否可读、系统时间是否正确,以及缓存文件是否由当前用户拥有。可以暂时移走 Claude 配置目录中的 fable-usage-cache.json,让下一次刷新重新拉取,但不要删除登录凭据。

状态栏显示双横线或旧数据怎么办

双横线通常表示首次 API 响应尚未到达、OAuth token 不可用,或远端请求失败。5h 和 7d 来自标准输入,往往仍能正常显示;Fable 数据则可能继续使用最近一次成功缓存。

先手动运行 statusline.py,并给它输入一段测试 JSON,确认脚本退出码为 0 且输出到 stdout。随后检查 Python 版本、文件执行权限、settings.json 语法和命令绝对路径。

如何避免频繁请求 usage 接口

不要把脚本改成每次渲染都同步联网。原工具使用约五分钟缓存,并由后台子进程刷新;多个 Claude Code 会话通过锁协调,避免同时发送重复请求。这个设计比把 curl 直接塞进 statusLine 命令更稳定。

如果自行实现,应设置缓存有效期、失败回退和并发锁,并确保任何输入异常都不会让脚本以非零状态退出。状态栏是高频调用路径,阻塞或崩溃会直接影响终端体验。

如何卸载或恢复原配置

删除 settings.json 中的 statusLine 字段即可停用。若安装脚本生成了 settings.json.bak,可以在确认备份内容后恢复。缓存文件也可以单独删除,不会删除 Claude 会话或项目数据。

FAQ

它能显示还剩多少美元 credits 吗?

不能。它显示的是使用窗口和 Fable 周额度百分比。账户余额、充值记录和实际仍应在 Claude 的 Usage 设置中查看。

状态栏会消耗模型 token 吗?

statusLine 脚本在本地运行,本身不会发起模型对话。Fable 周额度查询是普通 usage 接口请求,也不是一次模型推理。

为什么切到 Sonnet 后仍看到 Fable 百分比?

这是为了让用户在其他模型中也能观察周额度。只有当前使用 Fable 时,字段才会以更醒目的样式显示。

总结

Claude Fable 5 的状态栏方案由两部分组成:Claude Code 原生 statusLine 提供上下文、5 小时和 7 天数据,claude-fable-usage 再从 OAuth usage 接口补充 Fable 周额度。它适合坚控百分比和重置时间,但不能显示可充值 credits 余额。安装时优先克隆并审查代码,使用绝对路径配置命令,并通过实际切换模型和 Usage 页面完成核验。

相关文章

精彩推荐