全部文章
博客版本发布集成安全

看得见的套餐限额,由你选择的账号

5 小时窗口和每周窗口还剩多少,显示在每张卡片上——而 NeuroSquad 从不碰你的登录凭据。一个账号用完时,另一个账号只需点一下,而且绝不会自动切换。

阅读约 6 分钟0.1.149 带来了什么

如果你通过订阅使用 Claude Code 或 Codex,让工作停下来的往往不是模型,而是套餐。两个 CLI 都按滚动窗口计量用量:一个 5 小时窗口和一个每周窗口。当画布上的多个智能体共用一个账号时,这些窗口的消耗速度是单个终端的好几倍;而在此之前,第一个信号就是某张卡片在任务中途停下,显示“limit reached”。

NeuroSquad 0.1.149 让这些窗口变得可见,并在某个窗口用满时给你一条去路。每张 Claude Code 和 Codex 卡片都会显示其账号的套餐用了多少;设置里新增了“CLI 账号”一节,可为同一个 CLI 保留多个登录——比如“个人”和“工作”;接近限额的卡片可以一键把工作交接给另一个账号上的新卡片。

Claude Code 卡片上的套餐限额弹窗:5 小时窗口已用 86%,每周窗口已用 47%,附重置时间和“在另一个账号上继续”按钮
卡片标题栏里的圆环是该卡片账号用得最满的窗口;点击即可看到两个窗口及其重置时间。(截图中的百分比为示例数值。)

数字从哪里来

获取套餐用量最直接的办法,是拿走 CLI 存在磁盘上的登录令牌,直接去问厂商的服务器。我们很早就决定 NeuroSquad 不这样做,而且这不是为了谨慎而谨慎。Claude Code 的法律与合规页面明确写道:开发者不得收集、存储或中转 Claude.ai 的凭据或会话令牌,登录必须通过 Anthropic 自己的流程完成。Codex 的文档要求你像对待密码一样对待它的认证文件。一个读取这些文件去调用私有接口的工具,拿来冒险的是你的账号,而不是它自己的。

所以计量只使用每个 CLI 主动交给本地集成的数据。结果发现,两个 CLI 恰好都这样做了——只是位置各不相同。

Claude Code:状态栏

从 2.1.80 版开始,Claude Code 会把一个 rate_limits 对象传给状态栏——也就是在输入框下方绘制底栏的小脚本。里面有 five_hour 和 seven_day 两个窗口(如设置了消费上限,还有它),每个都带已用百分比和重置时间。这是有文档的,还附有如何显示它的示例;对 Pro 和 Max 订阅者,它会在会话的第一次回答之后出现。

NeuroSquad 的卡片本来就会用一个自己的设置文件启动 Claude Code,叠加在你的设置之上——里面是生命周期钩子,“工作中 / 等你处理 / 已完成”这些状态就靠它们。现在卡片也在那里设置了状态栏:一行 curl,把状态栏的输入转发给应用,使用与钩子相同的每个智能体专属令牌。

这里有个坑。这个设置文件的优先级高于你的设置,所以卡片一旦设置状态栏,你自己的状态栏就会消失。而很多人都有一个自己在意的状态栏。因此应用会读取你的状态栏命令(只读,来自你的设置文件),用完全相同的输入、在同一个文件夹里、用 Claude Code 会选的那个 shell——Git Bash,没有则用 PowerShell——亲自运行它,并以它的输出作答。你的底栏显示的内容与以前完全一样,连边距和刷新间隔也一样。如果你没有状态栏,卡片就显示一个暗色的计量,比如 5h 23% · 7d 41%。

Codex:它自己的会话日志

Codex 工作时会写会话日志(rollout),其中的令牌计数事件带有 rate_limits 快照:一个主窗口和一个次窗口,每个都有已用百分比、以分钟计的长度和重置时间。应用本来就要读这个文件来获取卡片的回答和上下文大小,所以读取套餐窗口不增加任何成本——不用令牌,也不发网络请求。

由于日志就在磁盘上,Codex 的计量在任何卡片运行之前就已存在:启动时和点击“刷新”时,应用会读取每个 Codex 账号最新的日志。有两个细节来自测试。窗口按实际长度命名,而不是预设为“5 小时”和“每周”——在免费套餐上,长窗口原来是 30 天。另外,针对某个模型的单独配额快照会被跳过,以免覆盖套餐本身的数字。

“用量”中的“套餐限额”面板:每个账号一个方块,显示 5 小时窗口和每周窗口
“用量 → 套餐限额”:所有账号并排显示,每个都标明 CLI 最后一次报告的时间。

你能看到什么

  • 卡片上:一个圆环,显示该卡片账号用得最满的窗口——80% 起变琥珀色,95% 起变红。它在 CLI 报告时更新,为已过的重置时间每分钟更新一次,绝不逐帧刷新。
  • 提醒:在 80% 和 95% 时各一次,每个窗口每个重置周期只提醒一次,受现有的“智能体触及用量上限”通知开关控制。点击会带你到报告数字的那张卡片。
  • “用量 → 套餐限额”、“团队”看板底部的一条,以及新的“按账号”标签页,按账号拆分令牌用量。
  • 如实标注时效:最后的数字在重启后保留,并标注时间;一旦某个窗口的重置时间已过,就显示为重新开始,直到 CLI 再次报告。

计量还帮到了原有的限额标签。当 CLI 停下时给出的限额消息没有重置时间,现在会由用满的窗口提供这个时间——标签可以告诉你工作何时能继续,自动继续也知道何时发送。

账号:“个人”和“工作”

同一个 CLI 保留多个账号,是两家厂商自己都写进文档的做法。Claude Code 的环境变量参考说明 CLAUDE_CONFIG_DIR 适合并行运行多个账号;Codex 把它的全部状态(包括登录)都放在 CODEX_HOME 之下。NeuroSquad 的账号配置就是这样一个文件夹,该配置上的卡片启动 CLI 时指向它。

设置中的“CLI 账号”:Claude Code 下有“你的账号”“个人”和“工作”,各自显示套餐窗口
“设置 → CLI 账号”。“你的账号”是 CLI 平常使用的文件夹,从不移动;每个新增账号都有自己的文件夹。

登录是在卡片里面进行的,用 CLI 自己的登录方式:Claude Code 里的 /login,Codex 则会自己打开登录界面。新配置是刻意留空的。把你的设置复制进去会很方便,但设置文件里可能带有密钥——环境变量、API 密钥助手——而多一份副本就多一个泄露的地方。你的默认账号原封不动地留在原处。

所有读取卡片文件的功能都跟随它的文件夹:日志和交接所依赖的对话记录、站会、上下文指示、Codex 的配置,以及“用量”一节。套餐计量按账号计算,所以两张用“工作”账号的卡片共用一个计量,而“个人”账号上的卡片有它自己的。

“在另一个账号上继续”

当卡片接近限额时,它的计量弹窗和限额标签都会提供“在另一个账号上继续…”。它会打开你可能已经熟悉的交接对话框,只多了一个字段:账号。旧卡片旁会出现一张新卡片,在同一个文件夹里,工作总结已输入到输入框中——但不会发送,方便你先看一遍。

交接对话框:“账号”字段选中了“工作”,下方是总结
带账号选择的交接。旧卡片保持原样;新卡片在你选择的账号上启动。

它刻意不做的,是自行切换。在一个账号用完时自动轮换账号,就是在规避速率限制,而这恰恰是厂商条款所禁止的——OpenAI 的条款原话如此,Anthropic 的使用政策也针对多账号作了规定。所以切换永远是你的一次点击,永远是创建一张新卡片,而不是改道一张正在运行的卡片;应用里也没有任何关于“绕过”限额的字眼。账号就是“个人”和“工作”,不是一个号池。

我们没有做什么,以及原因

  • 没有运行中的卡片、或用 API 密钥登录时的 Claude 计量。 唯一的来源将是带着你令牌的私有接口。
  • 其他 CLI 的计量。 它们都不向本地工具提供套餐窗口。大多数通过服务商按令牌计费,这部分“用量”一节已经在统计;它们的“limit reached”消息仍会进入限额标签。
  • 其他 CLI 的账号配置,暂时没有。Claude Code 和 Codex 是仅有的两个在文档中提供按账号文件夹和订阅窗口的 CLI。
  • 这项功能的遥测。 没有。

完整的变更列表见 0.1.149 更新日志。