进入主要内容

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-bar

Claude 首先会问你是否可以添加 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 版本。

claude-code:status line(Claude 模式)
Brol | Fable 5 (xhigh) | ⌛ 5% ↻ 4h10 | 📅 15% ↻ 141h | F 3% ↻ 142h | 🧠 20%
claude-code:status line(z.ai / GLM 模式)
Brol | GLM-5.1 | 9.88€ | 0.42€ | 20%
claude-code : 状态栏(DeepSeek 模式)
Brol | DeepSeek-Flash | $110.00 |  $0.42 | 20%

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 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 会自动适配您的套餐,并显示相关指标。

Free
⌛ 5 小时 + 📅 7 天
Pro
⌛ + 📅 + 💰 积分
Max
⌛ + 📅 + F + 💰 积分
z.ai / GLM
💰 账户余额
DeepSeek
💰 账户余额

z.ai 配置(GLM 模型)

如果您通过 z.ai 使用带有 GLM 模型(glm-5.1 等)的 Claude Code,则需要额外进行一些配置才能显示您的余额。

为什么需要手动操作? z.ai 的计费端点不接受公开的 API 密钥(ZAI_API_KEY):它要求使用不同的网页会话 JWT。登录端点还受到 TianCaptcha(阿里云)验证码的保护,会阻止所有自动化操作(Selenium、Playwright 等)。因此唯一可靠的方法,就是从您真正使用的浏览器中复制令牌。
第 1 步:获取 JWT
  1. 在常用浏览器中打开 z.ai/manage-apikey/billing
  2. 登录(如果要求,解决验证码)
  3. 使用 F12 打开 DevTools,进入 Network 标签页
  4. 使用 F5 刷新页面
  5. 点击名为 accountBalance 的请求
  6. 在 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 密钥不会自行过期.

下载 — Version 1.4.2

版本历史
1.4.2 2026/9/10当前
- Une recharge du compte en cours de session ne fige plus la dépense de session à zéro : le nouveau solde devient le point de départ et la dépense repart de là - La dépense de session porte sur le compte, pas sur la fenêtre Claude Code : deux sessions ouvertes sur la même clé se comptent l'une l'autre, et une reprise par --resume repart du premier prompt d'origine (documenté dans le README et INSTALL) - DeepSeek : le cache est lié à l'empreinte de la clé API, changer de clé affiche tout de suite le solde du bon compte au lieu de l'ancien pendant une minute - DeepSeek : une clé refusée puis corrigée n'affiche plus « API key invalid » pendant cinq minutes, le blocage tombe au prompt suivant - L'ancienne clé de configuration Zai:EnvFilePath est de nouveau lue quand SecretEnv:EnvFilePath est absente : un appsettings.json édité à la main avant la 1.3.0 garde sa source de secrets - INSTALL décrit la substitution du nom de modèle par les variables ANTHROPIC_DEFAULT_*_MODEL - Correction : le nom d'un modèle DeepSeek ne porte plus le suffixe [1m] - Correction : le message « clé non définie » cite le nom de variable configuré dans appsettings.json, plus un nom figé - Correction : la détection du provider par l'adresse de l'API s'applique aussi quand Claude Code n'a rien transmis sur l'entrée standard
1.4.1 2026/9/10
- La dépense de session est désormais mesurée sur le solde réel du compte : sur un provider autre qu'Anthropic, l'ancien chiffre pouvait être faux d'un facteur 100 - Le modèle affiché est celui qui tourne réellement, et non plus celui déclaré au lancement - z.ai affiche lui aussi la dépense de la session, ce qu'il ne faisait pas - Nouveau provider : la statusline affiche le solde d'un compte DeepSeek, en plus de Claude et de z.ai - Le provider est détecté même quand Claude Code annonce un modèle Claude, ce qui supprime un faux message « credentials missing » - Correction : un fichier d'état verrouillé par Windows ne remet plus la dépense de session à zéro
1.2.3 2026/9/9
- statusline 现在跟随当前活跃的 Claude 账户:读取 CLAUDE_CONFIG_DIR,不再始终指向 ~/.claude - 每个账户分别缓存和退避:一个账户的数据不再显示在另一个账户下 - 无法证明归属账户的数据将完全不再显示,即使已标记为过期 - 无效令牌(401)会与网络故障区分开,并显示明确的提示信息 - 新增 Windows ARM64 和 Linux ARM64 版本:平台数量从四个增加到六个 - macOS 和 Linux:当 CLAUDE_CONFIG_DIR 指向其他目录时,不再读取系统钥匙串 - 修复:z.ai 的退避不再冻结 Anthropic API - 修复:切换账户期间凭据文件仍可读取

加入对话

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

  • 每天免费下载的 XMLTV 文件
  • 评论文章并回复其他读者
  • 通过电子邮件获知您关注的新文章

目前没有评论。

Une erreur s'est produite. Cette application peut ne plus répondre jusqu'à ce qu'elle soit rechargée.Veuillez contacter l'auteur. Reload 🗙