tddworks/ClaudeBar

GitHub: tddworks/ClaudeBar

一款 macOS 菜单栏应用,集中监控 Claude、Codex、Gemini 等多种 AI 编程助手的使用配额和消耗状态。

Stars: 1382 | Forks: 120

# ClaudeBar [![Build](https://static.pigsec.cn/wp-content/uploads/repos/cas/3b/3b39c55110f11a97d10cda63d1c1193c1b78ee3e26d559adaea16b191fc65e8a.svg)](https://github.com/tddworks/ClaudeBar/actions/workflows/build.yml) [![Tests](https://static.pigsec.cn/wp-content/uploads/repos/cas/09/097271ca091990be630ef6043309cc48240faa054413384202036fa2efedb2d2.svg)](https://github.com/tddworks/ClaudeBar/actions/workflows/tests.yml) [![codecov](https://codecov.io/gh/tddworks/ClaudeBar/graph/badge.svg)](https://codecov.io/gh/tddworks/ClaudeBar) [![Latest Release](https://img.shields.io/github/v/release/tddworks/ClaudeBar)](https://github.com/tddworks/ClaudeBar/releases/latest) [![Swift 6.2](https://img.shields.io/badge/Swift-6.2-orange.svg)](https://swift.org) [![Platform](https://img.shields.io/badge/Platform-macOS%2015-blue.svg)](https://developer.apple.com) [![Homebrew](https://img.shields.io/badge/Homebrew-Install-brightgreen.svg)](https://formulae.brew.sh/cask/claudebar) 一款用于监控 AI 编程助手使用配额的 macOS 菜单栏应用。帮助您一目了然地掌握 Claude、Codex、Gemini、GitHub Copilot、Antigravity、Z.ai、Kimi、Kiro、Amp、OpenCode Go、Oh My Pi、Grok 等多种工具的使用情况。
Dark Mode
Dark Mode
Light Mode
Light Mode
CLI Theme
CLI Theme
Christmas Theme
Christmas Theme
## 功能 - **多服务商支持** - 在同一处集中监控 Claude、Codex、Gemini、GitHub Copilot、Antigravity、Z.ai、Kimi、Kiro、Amp、OpenCode Go、Oh My Pi 和 Grok 的配额 - **服务商启用/禁用** - 在“设置”中单独切换各个服务商的开启或关闭状态,自定义您的监控范围 - **实时配额追踪** - 查看 Session、Weekly 以及特定模型的使用百分比 - **多种主题** - 包含浅色、深色、CLI、圣诞节主题以及[导入的终端主题](#import-terminal-theme) (.itermcolors) - **自动适配** - 系统主题自动跟随您的 macOS 外观设置;圣诞节主题会在节日期间自动启用 - **可视化状态指示** - 颜色编码的进度条(绿/黄/红)直观展示配额健康状态 - **系统通知** - 当配额状态变为警告或危险时接收提醒 - **自动刷新** - 按照可配置的时间间隔自动更新配额 - **键盘快捷键** - 使用 `⌘D` (Dashboard) 和 `⌘R` (刷新) 快速访问 ## 配额状态阈值 | 剩余量 | 状态 | 颜色 | |-----------|--------|-------| | > 50% | 健康 | 绿色 | | 20-50% | 警告 | 黄色 | | < 20% | 危险 | 红色 | | 0% | 耗尽 | 灰色 | ## 环境要求 - macOS 15+ - Swift 6.2+ - 针对您想要监控的服务商,需安装相应的 CLI 工具: - [Claude CLI](https://claude.ai/code) (`claude`) - [Codex CLI](https://github.com/openai/codex) (`codex`) - [Gemini CLI](https://github.com/google-gemini/gemini-cli) (`gemini`) - [GitHub Copilot](https://github.com/features/copilot) - 在“设置”中配置凭证 - [Antigravity](https://antigravity.google) - 在本地运行时自动检测 - [Z.ai](https://z.ai/subscribe) - 使用 GLM Coding Plan endpoint 配置 Claude Code - [Kimi](https://www.kimi.com/code/console) (`kimi`) - CLI 模式(推荐)或 API 模式(见下文) - [Kiro](https://kiro.dev) (`kiro-cli`) - 需要安装 kiro-cli(见下文) - [Amp](https://ampcode.com) (`amp`) - 安装 CLI 后自动检测 - [OpenCode Go](https://opencode.ai/go) (`opencode`) - 通过本地 SQLite 数据库追踪 OpenCode Go 使用窗口 (5小时/$12、每周/$30、每月/$60) - [Oh My Pi](https://omp.sh) (`omp`) - 通过 `omp usage --json` 汇总账户使用情况,显示 rate-limit 窗口,并在有报告时显示有上限的美元充值卡或无上限的消耗提示 - [Grok Build](https://docs.x.ai) (`grok`) - 使用 CLI 的本地 OAuth 凭证追踪 xAI credit 使用情况(每周窗口 + 单个产品的 Grok Build / Imagine / Voice 限制) ### Kimi 配置 Kimi 支持两种探测模式,可以在 **设置 > Kimi 配置** 中进行配置: **CLI 模式(推荐)** - 启动交互式 `kimi` CLI 并发送 `/usage` 指令以获取配额数据。需要安装 `kimi` CLI (`uv tool install kimi-cli`)。无需“完全磁盘访问权限”。 **API 模式** - 使用浏览器 cookie 身份验证直接调用 Kimi API。需要授予 ClaudeBar **“完全磁盘访问权限”**以读取 `kimi-auth` 浏览器 cookie: 1. 打开 **系统设置** > **隐私与安全性** > **完全磁盘访问权限** 2. 开启 **ClaudeBar** 的开关(或点击 `+` 并添加它) 3. 重启 ClaudeBar 您还可以设置 `KIMI_AUTH_TOKEN` 环境变量,以在 API 模式下免去读取 cookie 的步骤。 ### Kiro 配置 Kiro 通过 `kiro-cli` 命令行工具监控 AWS Kiro(前身为 CodeWhisperer)的使用情况。 **安装**:`uv tool install kiro-cli` 或 `pip install kiro-cli` **身份验证**:运行 `kiro-cli` 并按照提示登录。 **Kiro IDE 用户**:如果您使用的是 Kiro IDE,只需安装 kiro-cli 即可。两者共享相同的身份验证,因此无需额外登录。 ## 安装说明 ### Homebrew 通过 [Homebrew](https://brew.sh) 安装。 ``` brew install --cask claudebar ``` ### 下载(推荐) 从 [GitHub Releases](https://github.com/tddworks/ClaudeBar/releases/latest) 下载最新版本: - **DMG**:打开并将 ClaudeBar.app 拖入“应用程序” - **ZIP**:解压并将 ClaudeBar.app 移至“应用程序” 两者均已进行代码签名并经过公证,可顺利通过 Gatekeeper。 ### 从源码构建 ``` git clone https://github.com/tddworks/ClaudeBar.git cd ClaudeBar # 安装 Tuist(如果尚未安装) brew install tuist # 安装依赖并构建 tuist install tuist build ClaudeBar -C Release ``` ## 使用说明 构建完成后,打开生成的 Xcode workspace 并运行应用: ``` tuist generate open ClaudeBar.xcworkspace ``` 然后在 Xcode 中按下 `Cmd+R` 运行。该应用将显示在您的菜单栏中。点击即可查看各个服务商的配额详情。 ## 开发指南 本项目使用 [Tuist](https://tuist.io) 进行依赖管理和 Xcode 项目生成。 ### 快速开始 ``` # 安装 Tuist(如果尚未安装) brew install tuist # 安装依赖 tuist install # 生成 Xcode 项目并打开 tuist generate open ClaudeBar.xcworkspace ``` ### 构建与测试 ``` # 构建项目 tuist build # 运行所有测试 tuist test # 运行测试并生成覆盖率报告 tuist test --result-bundle-path TestResults.xcresult -- -enableCodeCoverage YES # 构建 release configuration tuist build ClaudeBar -C Release ``` ### SwiftUI Previews 在 Xcode 中打开项目后,可以通过 `Cmd+Option+Return` 使用 SwiftUI 预览。项目已配置了 `ENABLE_DEBUG_DYLIB` 以支持预览功能。 ## 架构 ClaudeBar 采用**分层架构**,以 `QuotaMonitor` 作为单一数据源: | 层级 | 用途 | |-------|---------| | **App** | 直接使用领域层的 SwiftUI 视图(无 ViewModel) | | **Domain** | 富模型、`QuotaMonitor`、repository 协议 | | **Infrastructure** | 探测器、存储实现、适配器 | ### 关键设计决策 - **单一数据源** - `QuotaMonitor` 持有所有服务商的状态 - **Repository 模式** - 设置和凭证通过可注入的协议进行抽象 - **基于协议的依赖注入 (DI)** - `@Mockable` 协议提升了可测试性 - **芝加哥学派 TDD** - 测试用于验证状态变化,而非方法调用 - **无 ViewModel/AppState** - 视图直接消费领域层 ## 导入终端主题 让 ClaudeBar 的外观与您的终端保持一致。支持导入任何 `.itermcolors` 文件: 1. 打开 **设置**(齿轮图标) 2. 点击 **导入 .itermcolors** 3. 选择您的文件(从 iTerm2 导出:Preferences > Profiles > Colors > Color Presets > Export) 在 [iTerm2-Color-Schemes](https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/schemes) 获取 450+ 预设配色方案。 导入的主题会保存在 `~/.claudebar/themes/` 目录下,并在重启后依然保留。 ## 贡献指南 ### 添加新的 AI 服务商 使用 **add-provider** 技能引导您通过 TDD 添加新的服务商: ``` Tell Claude Code: "I want to add a new provider for [ProviderName]" ``` 该技能会引导您完成:解析测试 → 探测器测试 → 实现 → 注册。 详情请查阅 `.claude/skills/add-provider/SKILL.md`,并参考 `AntigravityUsageProbe` 的实现。 ## 依赖项 - [Sparkle](https://sparkle-project.org/) - 自动更新框架 - [Mockable](https://github.com/Kolos65/Mockable) - 用于测试的协议模拟工具 - [Tuist](https://tuist.io) - Xcode 项目生成(用于 SwiftUI 预览) ## 发布 发布过程通过 GitHub Actions 自动化。只需推送版本 tag 即可创建新版本。 **详细的配置说明,请参见 [docs/release/RELEASE_SETUP.md](docs/release/RELEASE_SETUP.md)。** ### 发布工作流 该工作流使用 Tuist 生成 Xcode 项目: ``` Tag v1.0.0 → Update Info.plist → tuist generate → xcodebuild → Sign & Notarize → GitHub Release ``` 版本号在 `Sources/App/Info.plist` 中设置,并会同步传递给 Sparkle 自动更新。 ### 快速开始 1. **配置 GitHub Secrets**(参见[完整指南](docs/release/RELEASE_SETUP.md)): | Secret | 描述 | |--------|-------------| | `APPLE_CERTIFICATE_P12` | Developer ID 证书 (base64) | | `APPLE_CERTIFICATE_PASSWORD` | .p12 文件的密码 | | `APP_STORE_CONNECT_API_KEY_P8` | API key (base64) | | `APP_STORE_CONNECT_KEY_ID` | Key ID | | `APP_STORE_CONNECT_ISSUER_ID` | Issuer ID | 2. **验证您的证书**: ./scripts/verify-p12.sh /path/to/certificate.p12 3. **创建发布**: git tag v1.0.0 git push origin v1.0.0 工作流将自动完成构建、签名、公证,并发布到 GitHub Releases。 ## 贡献者 感谢所有为 ClaudeBar 做出贡献的人!
hanrw
hanrw
ramarivera
ramarivera
zenibako
zenibako
AlexanderWillner
AlexanderWillner
avishj
avishj
BryanQQYue
BryanQQYue
frankhommers
frankhommers
hagiwaratakayuki
hagiwaratakayuki
tomstetson
tomstetson
logancox
logancox
hansonkim
hansonkim
farmdawgnation
farmdawgnation
sailesh
sailesh
billyjack2
billyjack2
nero-sensei
nero-sensei
marcusquinn
marcusquinn
jeffscottmtl
jeffscottmtl
LunarECL
LunarECL
jeffWelling
jeffWelling
Zada5
Zada5
fredericoricco-debug
fredericoricco-debug
benjaminbelaga
benjaminbelaga
y5mei
y5mei
josecancino
josecancino
isnakolah
isnakolah
Mitsi-ag
Mitsi-ag
## 许可证 MIT
标签:AI编程助手, Swift, 使用量监控, 桌面工具, 菜单栏应用