CodexBar 深度拆解:免登录监控各家 AI 编码额度

CodexBar 深度拆解:免登录监控各家 AI 编码额度 CodexBar 深度拆解免登录监控各家 AI 编码额度【免费下载链接】CodexBarShow usage stats for OpenAI Codex and Claude Code, without having to login.项目地址: https://gitcode.com/GitHub_Trending/co/CodexBar同时用 Codex、Claude、Cursor 的人都有同一个烦恼额度窗口不透明你不知道该现在开长任务还是再等等。CodexBar 是一款 macOS 菜单栏应用实时监控 OpenAI Codex、Claude Code 等各家 AI 编码服务的 token 消耗直接复用你已有的登录态和本地数据不用额外登录用量条和重置倒计时就挂在菜单栏上。它到底在解决什么问题没有这类工具时用量数据散落在各家官网、控制台和 CLI 输出里。你想知道还能烧多少得逐家打开网页想判断现在适不适合跑一个长任务还得手动记每家 5 小时窗口、周窗口的重置时间。CodexBar 的定位是额度可视化 重置提醒每个 provider 一条状态项展示会话/周/月窗口用量和倒计时还能看信用余额、订阅花费。它和同类方案最本质的区别在于不要求你交出密码——它复用已有的 provider 会话OAuth、API key、浏览器 cookie、本地 CLI 的凭证文件敏感信息走系统钥匙串存放。——效果如下核心机制拆解AI token 用量监控的数据流怎么走整条链路是后台节拍器发起刷新 →UsageStore并发向各家 provider 要数据 → 归一化成统一快照 → 渲染到菜单栏图标和面板。下面跟着一次刷新走一遍。按节拍发起后台刷新刷新不是死板的固定间隔。startTimer在Sources/CodexBar/UsageStore.swift中默认走自适应模式2 到 30 分钟之间选延迟关键逻辑核心如下self.timerTask Task.detached(priority: .utility) { [weak self] in while !Task.isCancelled { guard let sleepDuration await Self.nextAdaptiveTimerSleepDuration(for: self) else { return } try? await Task.sleep(for: sleepDuration) guard !Task.isCancelled else { return } await self?.refresh(enrichmentMode: .automatic) } }最容易被忽略的是[weak self]——睡眠期间不强持有 storestore 销毁时轮询任务能干净退出而不是被强引用拖住。向各 provider 并发要数据单轮刷新里所有启用的 provider 并发拉取。入口是同一文件里的runRefresh核心如下guard !self.isRefreshing else { return false } // ... 省略约 15 行前置检查 self.isRefreshing true defer { self.isRefreshing false } await withTaskGroup(of: Void.self) { group in for instanceID in refreshProviders { group.addTask { await self.refreshProvider(provider) } group.addTask { await self.refreshProviderStatus(provider) } } }isRefreshing守卫把并发到达的刷新请求合并成一次说白了就是防止重复拉取而 OpenAI 网页抓取被刻意安排在所有 provider 刷新之后避免账号切换后用旧 cookie 抓数据。把结果发布成统一快照每家 provider 返回的字段五花八门最终都归一化成统一的UsageSnapshot各窗口的百分比、剩余量、重置时间再发布给 SwiftUI 的菜单栏图标与面板快照还会持久化成 widget 快照供桌面小组件读取。provider 侧还有一层代际保护在Sources/CodexBar/UsageStoreRefresh.swift的refreshProvider中核心如下while coalesceIfRefreshing, let existingState self.providerRefreshCoordinator.coalescingState(for: provider.instanceID) { switch await self.providerRefreshCoordinator.wait(for: provider.instanceID, state: existingState) { case .cancelled: return case .retryRequired: self.providerRefreshCoordinator.remove(existingState, for: provider.instanceID) continue case .completed: return } } // ... 省略约 12 行 if !Task.isCancelled, self.providerRefreshCoordinator.isCurrent(request.generation, for: provider.instanceID) { // 开始本次抓取 }generation校验保证过期请求的返回不会覆盖新结果——你刚在设置里换了账号旧配置下发出的请求就会被直接丢弃。五分钟上手如何从克隆到跑起来环境要求macOS 14Sonoma及以上。安装命令如下brew install --cask codexbar首次启动后菜单栏会出现一个小用量刻度图标。打开 Settings → Providers 启用你在用的服务按提示接上已有凭证CLI、浏览器会话或 API key面板里就能看到各家窗口的用量条和重置倒计时。最影响体验的两个配置刷新频率默认 Adaptive会自动在 2 到 30 分钟间调节如果你用 Codex可配 OpenAI cookiesAutomatic 或 Manual解锁更多 dashboard 数据其余配置详见仓库 README。用起来的几个真实场景Claude 重度用户挑开工时机你在用量条看到 5 小时窗口已烧到 80%就等倒计时归零再批量跑重构而不是一边烧一边猜额度还剩多少。多服务并行开发一个人同时挂着 Codex、Cursor、Copilot 的账号用合并图标模式在菜单栏一个图标里切换查看谁快满了、谁在扣信用一屏看完。成本核对你想知道某周到底花了多少 token 钱用它跑一次本地成本扫描把日志里的 token 用量换算成花费和订阅额度对照。适合谁 / 不适合谁适合同时用多个 AI 编码助手、在意额度重置时机和成本的 macOS 用户它是多服务额度 重置倒计时 成本三合一的菜单栏看板。明确不适合的场景它不是一个跨平台的统一用量平台菜单栏应用本体只支持 macOS 14Linux 上只有 CLI 版本而且它复用现有登录态而非替你登录前提是你本地本来就登录过对应服务。源码获取git clone https://gitcode.com/GitHub_Trending/co/CodexBar【免费下载链接】CodexBarShow usage stats for OpenAI Codex and Claude Code, without having to login.项目地址: https://gitcode.com/GitHub_Trending/co/CodexBar创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考