项目概览
- 问题:Codex、Kimi Code、DeepSeek 与 OpenCode Go 的额度或账户状态分散在不同入口,使用者难以快速判断当前最紧张的资源。
- 做法:把统一模型、并行协调器和四个平台探针放入
QuotaCore,把 SwiftUI/AppKit 菜单栏、Keychain、浏览器 Cookie 导入、设置和本地化放入QuotaBar应用层。 - 结果:菜单栏自动显示所有可用指标中最紧张的一项;单个平台失败不影响其他平台,最近一次成功值会保留并标记为旧数据。
- 当前能力:Codex 周额度、Kimi Code 5 小时与周额度、DeepSeek CNY/USD 余额及账户状态;OpenCode Go 提供官方控制台入口,不宣称在应用内直接查询用量。
- 测试:仓库包含
QuotaCoreTests与QuotaBarTests,覆盖窗口边界、解析 fixture、聚合、旧数据、刷新合并和卡片渐进更新。 - 隐私边界:DeepSeek API Key 与手动 Kimi Token 保存在系统 Keychain;项目声明不记录 Token、Cookie、Authorization Header 或原始私密响应。
- 已知限制:Kimi 月额度没有经过真实账号验证的稳定机器接口,当前显示“暂不可查询”并提供订阅页入口。
- 发布边界:GitHub 当前提供
v1.0.0-unsigned.1预发布 DMG 与 ZIP;该版本未签名、未经过 Apple 公证,网站不得表述为正式版或无障碍安装版本。
macOS 14+ 原生菜单栏额度查询工具,集中展示:
- OpenCode Go:不需要本机 CLI;在官方控制台查看订阅用量。
- Kimi Code:5 小时、周额度;月额度当前显示订阅页入口。
- Codex:周剩余额度。
- DeepSeek:CNY/USD 余额和账户可用状态。
菜单栏自动显示所有可用指标中最紧张的一项。 DeepSeek 使用可配置阈值归一化,默认 CNY ¥10、USD $2。单个平台失败不会阻断其他平台,最近一次成功值会保留并标记为旧数据。
界面预览
主界面:

设置界面:

工程结构
Sources/QuotaCore:统一模型、并行协调器、四个平台探针、进程和网络抽象。Sources/QuotaBar:SwiftUI/AppKit 菜单栏、Keychain、浏览器 Cookie 导入、设置和本地化。Tests/QuotaCoreTests:窗口边界、解析 fixture、聚合和过期数据测试。Tests/QuotaBarTests:刷新合并和卡片渐进更新测试。project.yml:XcodeGen 工程定义。Package.swift:独立运行 QuotaCore 单元测试。
本地构建
要求:完整 Xcode、XcodeGen、macOS 14+。
xcodegen generate
xcodebuild -project QuotaBar.xcodeproj -scheme QuotaBar -destination 'platform=macOS' test
也可以只测试核心模块:
swift test
Kimi 月额度边界
Kimi Code 的 5 小时和周额度使用 BillingService/GetUsages。会员共享月额度位于订阅页,当前没有经过真实账号验证的稳定机器接口,因此 v1 明确显示“暂不可查询”并提供订阅页入口。代码通过 KimiMonthlyUsageProviding 保留独立实现接缝;只有捕获并脱敏真实只读响应、补齐 fixture 契约测试后才应启用。
未订阅 Kimi Code 的账号当前返回 HTTP 200 与空 JSON 对象;应用会将 5 小时、周和月额度标记为不可用,并提示订阅状态,不把它误报为接口格式变化。
应用不记录 Token、Cookie、Authorization Header 或原始私密响应。
内容依据:项目 README,发布状态以 2026-09-11 核对结果为准。
