Codex / Claude Code 订阅额度监控

AI Quota 只处理订阅额度窗口:Codex 或 Claude Code 的 5 小时、每周 quota 还剩多少、多久重置、数据是否过期。它不和模型平台余额、人民币 credits 或账单成本混算。

Apple Watch 表盘上的 Codex 额度入口,显示剩余额度和可能过期状态。 Apple Watch AI Quota 界面,显示 Codex 额度、5 小时剩余 92%、每周剩余 15% 和刚刚同步状态。

“额度窗口”和“余额”是两种口径

很多混乱来自把三类东西放在一起说:模型平台余额、请求级 token usage、订阅工具的 quota。AI Quota 只负责第三类。

模型平台余额阿里云百炼、DeepSeek、Kimi 等 provider 账户里的 CNY、USD 或 credits,属于 AI Balance。
请求级 usage一次模型请求用了多少 token、来自哪个项目和资源,属于 AI Balance 的 usage API。
订阅额度窗口Codex / Claude Code 的 5 小时或每周限制,属于 AI Quota,不进入余额汇总。

写代码前看一眼,而不是限速后才发现

AI Quota 的目标不是做财务报表,而是在开发现场给出一个可靠的额度窗口状态。

Codex bridge 本机脚本读取 Codex rate limits,写入 quota snapshots。只有在有本机凭据的环境中才刷新实时数据。
Claude Code status line 从 Claude Code status line 的 rate limit 字段接收额度窗口,不抓网页,不保存登录态。
iPhone / Apple Watch 前台主动刷新,显示剩余比例、重置时间和数据新鲜度;过期时明确提示。

独立 quota API

AI Quota 使用独立 token 和 endpoint,不复用余额查询 token。这样 Watch、iPhone、本机 bridge 的权限边界更清楚。

只读查询 `QUOTA_READ_TOKEN` 用于 iPhone、Apple Watch 或 Web 读取订阅额度摘要。
快照写入 `QUOTA_INGEST_TOKEN` 用于本机 Codex / Claude Code bridge 写入额度窗口。
quota endpoints
GET  /api/quota/summary
POST /api/quota/refresh
POST /api/quota/snapshots

{
  serviceId: "codex",
  windows: {
    fiveHour: { remainingRatio: 0.22 },
    weekly: { remainingRatio: 0.59 }
  },
  freshness: "fresh"
}

常见问题

AI Quota 是实时的吗?

只有 bridge 能读取到本机额度状态时才会刷新。数据超过新鲜度窗口会显示可能过期,不伪装实时。

Apple Watch complication 会后台常驻刷新吗?

不会承诺实时后台刷新。当前重点是前台 App 主动确认,complication 作为最近状态入口。

这和 AI Balance 有什么关系?

它们共用仓库和自托管服务,但数据口径不同、API token 不同、landing page 也应该分开。

把订阅额度当成独立窗口看。

从 Apple Watch 文档开始,确认 quota API、本机 bridge 和前台刷新流程,再决定是否接入 Claude Code status line。