Claude Code 和 Claude Desktop 的 Mod 状态栏
切换到 Claude Code 和 Desktop 上的 mod usage-bar
Claude Code 和 Claude Desktop 现在接受 mod(可以修改 Claude 自身界面的小型扩展)了。于是,我把这条状态栏重写成了 mod,说真的,这样简单多了:不用再下载二进制文件,不用再配置 status line,也不用编译任何东西。
安装时,在 Claude Code 会话中输入这一行:
/plugin install usage-bar --marketplace Digital3D/claude-usage-barClaude 首先会问你是否可以添加 marketplace(mod 所在的仓库)。回答 y,确认,状态栏就会出现在提示符上方。我在一台全新的 Linux WSL 上试过了,第一次就能运行。代码和文档在 GitHub 上:Digital3D/claude-usage-bar。
有两件事需要知道。这个 mod 只显示 Claude 的配额,不显示 z.ai GLM 的配额,也不显示 DeepSeek 的余额。下面介绍的 Claude Code Usage Status Line 仍然可以下载,但将不再获得更新:当前版本会保持为最后一个 .NET 版本。
Claude Code Usage Status Line
(这个软件已被上面的 MOD 替代,将不再维护)
实时监控 Claude Code、z.ai GLM 和 DeepSeek 的用量
直接显示在你的终端中。
免费,开源,零配置。
100% 免费适用于 WindowsLinuxmacOS
六个压缩包:三种系统分别提供 x64 和 ARM64 版本。
1.4.1 中的新内容
DeepSeek 加入了 Claude 和 z.ai,且会话花费终于显示出一个有意义的数字。
每个 Claude 账户一行
我通过 CLAUDE_CONFIG_DIR 这个变量在两个 Claude Code 账户之间切换,而状态栏一直毫不动摇地显示第一个账户的数字,不管实际启用的是哪个账户。现在它会读取这个变量,缓存和退避机制也会按账户分开。
一个明确接受的推论:无法证明属于哪个账户的数据不再显示,即使它被标记为过期也一样。让一个区段消失,总好过显示属于别人的百分比。
无效令牌会说明原因
401 之前一直淹没在通用错误中:这一行毫无提示地沉默了,让人不知道是 API 挂了,还是令牌过期了。
现在它会被单独处理:账户缓存会失效,消息也会明确显示。简单轮换令牌不再阻塞任何东西,显示会在下一次刷新时恢复。
第三个 provider:DeepSeek
我把一部分工作转到 DeepSeek 上,也想要和其他服务一样方便:账户余额就在眼前。这一行现在会显示余额,使用 API 返回的货币,不做转换。
DeepSeek 不提供任何花费历史,只提供余额。因此这一行显示的是余额,就像 z.ai 一样。识别它多花了一点功夫:我的启动器向 Claude Code 声明一个 Claude 模型,流量却转去了别处,而状态栏一直在寻找 Anthropic 的凭据,最后得到的是 credentials missing,明明密钥是有效的。现在它也会查看从启动器继承的 API 地址,以知道自己真正是在和谁通信。
图标图例
- ⌛ 5小时滑动窗口
- 📅 7天,所有模型合计
- F 当前模型的额度条,这里是 Fable
- 💰 余额或剩余额度
- 💸 会话支出(按 API 计费的账户的实际成本,z.ai 和 DeepSeek 上的余额差额)
- 🧠 上下文窗口
每个模型的额度条保留首字母(F、s、o),而不是图标:标签来自 API,会随模型变化,固定图标迟早会骗人。在最小化的 Linux 发行版上,安装 fonts-noto-color-emoji,一切就都会显示出来。
按模型和额度显示
对于已迁移的账户,Anthropic 不再返回两个固定的 Sonnet 和 Opus 额度条,而是返回一个绑定到当前模型的每周窗口。因此显示的字母会跟着模型走,Fable 对应 F。
当窗口用满,额度接管后,💰 这一段会切换到详细模式,显示已花费、上限和剩余:💰 €12.56/€14 (left €1.44)。未迁移的账户保留旧的显示方式,使用 s 和 o。
会话支出,来真的
Claude Code 计算的会话成本,是按声明的模型价格估算的。在我这边,它显示 💸 $24.64,但整个账户的余额只有 $8.13,而会话实际只花了大约 $0.26。相差 100 倍,基本等于没法利用。
现在它会根据账户的实际余额来测量,在第一个提示词时记录余额,然后在每次刷新时进行比较。z.ai 也顺便因此受益了:到目前为止,它完全不显示会话支出。
显示的模型就是实际运行的模型
名称这边也是同样的情况:后端实际提供的是 DeepSeek,界面那一行却显示着 Opus 4.7。现在显示的名称会跟着实际的 provider 走。
如果没有声明对应关系,也不会出问题:会继续显示旧名称,而不是留下一个空框。
Claude Code 底部的状态行
你需要的一切,一眼尽收
一行状态信息。你的 Claude、z.ai 和 DeepSeek 所有使用数据。
自动检测项目
显示当前目录的名称(路径的最后一段)。你始终知道自己正在处理哪个项目,不会让完整路径把状态行弄得乱七八糟。
当前模型
直接在状态栏中查看正在使用哪个模型(Opus、Sonnet、Haiku、GLM 或 DeepSeek)。provider 会自动检测。
使用百分比
5 小时窗口、7 天窗口和当前模型的用量条(尚未迁移的账户中,Sonnet 和 Opus 分开显示),并配有彩色指示器:绿色、黄色、红色。
倒计时
准确知道你的限制何时重置。每项相关指标旁边都会显示倒计时 ↻。
上下文窗口
监控上下文窗口的使用情况,避免在对话进行到一半时达到上限。
支持 z.ai / GLM 和 DeepSeek
显示你的 z.ai 账户余额(💰 9.88$),并自动转换为你选择的货币(EUR、GBP、CAD…)。DeepSeek 余额也会显示,使用其本地货币且不进行转换。
数据过期指示器
数值前的 ~ 前缀表示缓存已过期,但 API 不可用(429 退避)。你始终知道自己读到的是什么。
智能缓存和退避
每个 provider 缓存 1 分钟,以减轻 API 的压力。遇到 429 时自动退避 5 分钟,避免把速率限制彻底打爆。
零配置(Claude)
启动安装程序,就这样。自动从 ~/.claude/.credentials.json(以及 macOS 上的 Keychain)读取您的 Claude 凭据。
Status Line 根据您的订阅显示的内容
Status Line 会自动适配您的套餐,并显示相关指标。
z.ai 配置(GLM 模型)
如果您通过 z.ai 使用带有 GLM 模型(glm-5.1 等)的 Claude Code,则需要额外进行一些配置才能显示您的余额。
ZAI_API_KEY):它要求使用不同的网页会话 JWT。登录端点还受到 TianCaptcha(阿里云)验证码的保护,会阻止所有自动化操作(Selenium、Playwright 等)。因此唯一可靠的方法,就是从您真正使用的浏览器中复制令牌。第 1 步:获取 JWT
- 在常用浏览器中打开 z.ai/manage-apikey/billing
- 登录(如果要求,解决验证码)
- 使用 F12 打开 DevTools,进入 Network 标签页
- 使用 F5 刷新页面
- 点击名为
accountBalance的请求 - 在 Headers 中,复制
Authorization的值,不含前缀Bearer(令牌以eyJhbGciOiJIUzUxMiJ9开头)
步骤 2:保存 JWT
安装程序会一并提供一个配套二进制文件 ClaudeUsageStatusline.ZaiRefresh。它会验证令牌格式,并将其写入 ~/.claude/.zai-credentials.json。
Windows:
& "$env:LOCALAPPDATA\ClaudeUsageStatusLine\ClaudeUsageStatusline.ZaiRefresh.exe"Linux / macOS:
~/.local/bin/ClaudeUsageStatusline.ZaiRefresh步骤 3(可选):显示货币
余额默认以 USD 返回。要以 EUR(或其他货币)显示,请编辑可执行文件旁边的 appsettings.json:
{
"Zai": {
"NativeCurrency": "USD",
"DisplayCurrency": "EUR",
"ExchangeRateCacheHours": 24
}
}汇率每天从一个免费 API 获取一次,并缓存在本地。
什么时候刷新 JWT?
会话 JWT 没有明确的过期日期:它的有效期由 z.ai 的服务器控制。它最终可能会在一段时间不活动后或明确断开连接后失效。
需要更新它的迹象:
- statusline 显示
z.ai: token missing,并邀请你按照新窗口中的说明操作 - 过期数据前缀(
~💰)仍然存在 - 日志中包含
401 Unauthorized
在这两种情况下,ZaiRefresh 都会自行在窗口中打开:接下来只要粘贴一个新鲜的 JWT 就行了.
DeepSeek 配置(API 密钥)
比 z.ai 简单:一把 API 密钥就够了,而且整个过程中没有 captcha.
创建密钥
在你的 DeepSeek 账户中,进入 API keys 部分,创建一把密钥. 它以 sk- 开头,而且只会显示一次:马上把它复制下来.
交给 statusline
有两种可能. 环境变量 DEEPSEEK_API_KEY,或者一个 statusline 会自行读取的小文件:
{"apiKey": "sk-votre-cle"}保存到 ~/.claude/.deepseek-credentials.json 中. 之后不需要刷新:API 密钥不会自行过期.

加入对话
您必须拥有一个账户才能评论这篇文章。注册免费,耗时不到一分钟。
目前没有评论。