From c5635d60a55024e180505cdfdf91b3434600714e Mon Sep 17 00:00:00 2001 From: Jachaganhio Date: Thu, 10 Sep 2026 10:57:15 +0800 Subject: [PATCH 1/3] Add single-provider display mode for widget Turning off Claude or Codex now hides that provider entirely instead of showing a "Disabled" placeholder. The remaining provider takes the full widget width and shows reset times in every widget size, including small. - UsageSnapshot.visibleProviders filters disabled providers - UsageDashboardView renders a full-width single column when only one provider is visible; both-off state shows a hint instead of blank - In-app dashboard mirrors widget behavior; Save refuses both-off - New previews and regression test for the disabled/hidden behavior - README / README_CN document the new mode Co-Authored-By: Claude Opus 5 --- ClaudeUsageWidget/ContentView.swift | 23 +++++++++-- .../ClaudeUsageWidget.swift | 14 +++++++ README.md | 22 +++++++++-- README_CN.md | 22 +++++++++-- Shared/UsageModels.swift | 8 +++- Shared/UsageViews.swift | 39 ++++++++++++++----- Tests/UsageCoreTests/UsageCoreTests.swift | 18 +++++++++ scripts/RenderPreviews.swift | 10 ++++- 8 files changed, 134 insertions(+), 22 deletions(-) diff --git a/ClaudeUsageWidget/ContentView.swift b/ClaudeUsageWidget/ContentView.swift index f681a05..093b739 100644 --- a/ClaudeUsageWidget/ContentView.swift +++ b/ClaudeUsageWidget/ContentView.swift @@ -32,10 +32,18 @@ struct ContentView: View { } if let snapshot { + // Mirror the widget: only the providers you turned on are shown. HStack(alignment: .top, spacing: 20) { - ProviderUsageView(usage: snapshot.claude) - Divider() - ProviderUsageView(usage: snapshot.codex) + if snapshot.visibleProviders.isEmpty { + Text("Both providers are hidden. Turn one on below to fill the widget.") + .font(.caption).foregroundStyle(.secondary) + Spacer() + } else { + ForEach(snapshot.visibleProviders) { usage in + if usage.id != snapshot.visibleProviders.first?.id { Divider() } + ProviderUsageView(usage: usage) + } + } } .padding(14) .background(.quaternary.opacity(0.5), in: RoundedRectangle(cornerRadius: 12)) @@ -46,6 +54,8 @@ struct ContentView: View { GroupBox { VStack(alignment: .leading, spacing: 10) { Toggle("Show Claude and Fable", isOn: $claudeEnabled) + Text("Turn this off to make the widget a Codex-only widget; Claude then takes no space at all.") + .font(.caption).foregroundStyle(.secondary) Text("Fable's weekly limit is read with your Claude usage; no extra token is needed.") .font(.caption).foregroundStyle(.secondary) SecureField("Claude OAuth Bearer Token (preferred)", text: $oauthToken) @@ -60,6 +70,8 @@ struct ContentView: View { GroupBox { VStack(alignment: .leading, spacing: 10) { Toggle("Show Codex", isOn: $codexEnabled) + Text("Turn this off if you do not use Codex; the widget then shows Claude alone, with reset times in every size.") + .font(.caption).foregroundStyle(.secondary) Text("Automatically reads the current ChatGPT login from ~/.codex/auth.json. Sign in with Codex CLI first. API keys do not provide subscription usage.") .font(.caption).foregroundStyle(.secondary) DisclosureGroup("Manual token (overrides automatic login)") { @@ -105,6 +117,11 @@ struct ContentView: View { } private func saveConfig() { + guard claudeEnabled || codexEnabled else { + statusMessage = "Turn on Claude or Codex — the widget needs at least one provider." + isSuccess = false + return + } if claudeEnabled, sessionKey.nonempty != nil, UUID(uuidString: organizationId.trimmingCharacters(in: .whitespacesAndNewlines)) == nil { statusMessage = "Enter a valid Claude organization UUID for the session key." diff --git a/ClaudeUsageWidgetExtension/ClaudeUsageWidget.swift b/ClaudeUsageWidgetExtension/ClaudeUsageWidget.swift index aebf87e..ec51b8e 100644 --- a/ClaudeUsageWidgetExtension/ClaudeUsageWidget.swift +++ b/ClaudeUsageWidgetExtension/ClaudeUsageWidget.swift @@ -77,3 +77,17 @@ struct ClaudeUsageWidget: Widget { } timeline: { ClaudeUsageEntry.placeholder } + +#Preview("Claude only, medium", as: .systemMedium) { + ClaudeUsageWidget() +} timeline: { + ClaudeUsageEntry(snapshot: UsageSnapshot(date: Date(), claude: UsageSnapshot.preview.claude, + codex: ProviderUsage(name: "Codex", isEnabled: false))) +} + +#Preview("Codex only, medium", as: .systemMedium) { + ClaudeUsageWidget() +} timeline: { + ClaudeUsageEntry(snapshot: UsageSnapshot(date: Date(), claude: ProviderUsage(name: "Claude", isEnabled: false), + codex: UsageSnapshot.preview.codex)) +} diff --git a/README.md b/README.md index 2bc70c4..19a8cb0 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ A macOS desktop widget (WidgetKit) that monitors Claude, Claude Fable, and Codex - **Weekly usage** with progress bar - **Separate Fable weekly usage** with reset time - **Codex usage** from your local ChatGPT login, labelled by actual window duration +- **Single-provider mode** — turn off Claude or Codex and the widget shows only the other one, full width, with reset times in every size - **In-app dashboard** with manual refresh and independent provider switches - **Reset countdown** for both windows - **Color-coded** green → yellow → orange → red @@ -117,7 +118,7 @@ For Keychain-only credentials, a custom `CODEX_HOME`, or another location, enter } ``` -Existing configuration remains compatible. `claudeEnabled` / `codexEnabled` toggle each provider. Saves preserve unknown fields, replace the file atomically, and set owner-only permissions (`0600`). +Existing configuration remains compatible. Saves preserve unknown fields, replace the file atomically, and set owner-only permissions (`0600`). ### 3. Add Widget @@ -127,6 +128,21 @@ Existing configuration remains compatible. `claudeEnabled` / `codexEnabled` togg --- +## Show Only Claude or Only Codex + +If you subscribe to just one of them, hide the other. Use **Show Claude and Fable** / **Show Codex** in the app, or set `claudeEnabled` / `codexEnabled` in the config file: + +```json +{ + "oauthToken": "your-oauth-bearer-token", + "codexEnabled": false +} +``` + +A provider that is off disappears completely — no "Disabled" placeholder, no divider, and no request to its endpoint. The remaining provider takes the full widget width and shows reset times in every widget size, including small. At least one provider must stay on; the app refuses to save with both off. + +--- + ## How It Works The widget calls each provider's usage endpoint: @@ -147,7 +163,7 @@ Returns: Percentages represent **usage consumed**. Missing data shows `—`, not 0%; Fable percentages are not rescaled by an inferred 50% allowance. Codex shows the general subscription pool, not additional pools such as Spark or API billing. -Requests run concurrently with independent errors. HTTP 401 prompts credential renewal, 403 prompts checking login and access, and 429 prompts waiting until the next refresh. Medium and large widgets include reset times; large includes the update timestamp. Subscription usage endpoints may change. +Requests run concurrently with independent errors. A disabled provider is never requested. HTTP 401 prompts credential renewal, 403 prompts checking login and access, and 429 prompts waiting until the next refresh. Medium and large widgets include reset times, as does any size showing a single provider; large includes the update timestamp. Subscription usage endpoints may change. --- @@ -174,7 +190,7 @@ ClaudeUsageWidget/ swift test ./scripts/build-local.sh -# 18 SwiftUI previews: three sizes × light/dark × normal/error/missing data +# 30 SwiftUI previews: three sizes × light/dark × normal/error/missing/claude-only/codex-only mkdir -p build swiftc Shared/UsageModels.swift Shared/UsageViews.swift scripts/RenderPreviews.swift -o build/render-previews build/render-previews diff --git a/README_CN.md b/README_CN.md index ceff901..6916219 100644 --- a/README_CN.md +++ b/README_CN.md @@ -22,6 +22,7 @@ macOS 桌面小组件(WidgetKit),同时监控你的 Claude、Claude Fable - **每周用量** + 进度条 - **Fable 独立周额度** + 重置时间 - **Codex 用量** 自动读取本机 ChatGPT 登录,按实际窗口显示 +- **单提供方模式** 关掉 Claude 或 Codex,小组件只显示另一个,占满整个宽度,且各尺寸都显示重置时间 - **应用内仪表板** 手动刷新、分别开关 Claude / Codex - **重置倒计时** - **颜色随用量变化** 绿 → 黄 → 橙 → 红 @@ -117,7 +118,7 @@ curl -s https://claude.ai/api/organizations \ } ``` -原配置兼容;`claudeEnabled` / `codexEnabled` 可分别开关提供方。保存时保留未知字段、原子写入,并设置文件权限为 `0600`。 +原配置兼容。保存时保留未知字段、原子写入,并设置文件权限为 `0600`。 ### 3. 添加小组件 @@ -127,6 +128,21 @@ curl -s https://claude.ai/api/organizations \ --- +## 只显示 Claude 或只显示 Codex + +只订阅其中一家时,把另一家关掉即可。在应用里使用 **Show Claude and Fable** / **Show Codex** 开关,或在配置文件里设置 `claudeEnabled` / `codexEnabled`: + +```json +{ + "oauthToken": "your-oauth-bearer-token", + "codexEnabled": false +} +``` + +被关掉的提供方会彻底消失:不再显示 "Disabled" 占位文字,不再显示分隔线,也不会再请求它的接口。剩下的那一个占满整个小组件宽度,并在包括 small 在内的所有尺寸上显示重置时间。至少要保留一个提供方,两个都关时应用会拒绝保存。 + +--- + ## 工作原理 小组件分别调用两家的用量接口: @@ -147,7 +163,7 @@ curl -s https://claude.ai/api/organizations \ 百分比表示**已用**额度。缺失数据显示 `—`,不当作 0%;不自行按 50% 换算 Fable 额度。Codex 展示通用订阅额度,不汇总 Spark 等附加额度或 API 账单。 -两家请求并发执行、错误独立展示。401 提示更新凭证,403 提示检查登录及访问权限,429 提示等待下一次刷新。中、大尺寸显示重置时间,大尺寸显示更新时间。订阅用量接口可能变化。 +两家请求并发执行、错误独立展示;被关掉的提供方不会发出请求。401 提示更新凭证,403 提示检查登录及访问权限,429 提示等待下一次刷新。中、大尺寸显示重置时间,只显示单个提供方时各尺寸都显示重置时间,大尺寸显示更新时间。订阅用量接口可能变化。 --- @@ -174,7 +190,7 @@ ClaudeUsageWidget/ swift test ./scripts/build-local.sh -# 生成三种尺寸、深浅色、正常/失败/缺失数据的 18 张 SwiftUI 预览 +# 生成三种尺寸、深浅色、正常/失败/缺失/仅 Claude/仅 Codex 的 30 张 SwiftUI 预览 mkdir -p build swiftc Shared/UsageModels.swift Shared/UsageViews.swift scripts/RenderPreviews.swift -o build/render-previews build/render-previews diff --git a/Shared/UsageModels.swift b/Shared/UsageModels.swift index 0352604..f7a0028 100644 --- a/Shared/UsageModels.swift +++ b/Shared/UsageModels.swift @@ -69,11 +69,13 @@ struct UsageMetric: Identifiable, Sendable { } } -struct ProviderUsage: Sendable { +struct ProviderUsage: Identifiable, Sendable { let name: String var metrics: [UsageMetric] = [] var error: String? var isEnabled = true + + var id: String { name } } struct UsageSnapshot: Sendable { @@ -81,6 +83,10 @@ struct UsageSnapshot: Sendable { let claude: ProviderUsage let codex: ProviderUsage + /// Providers the user asked to see. A disabled provider is hidden rather than + /// spending widget space on a "Disabled" placeholder. + var visibleProviders: [ProviderUsage] { [claude, codex].filter(\.isEnabled) } + static var preview: UsageSnapshot { let now = Date() return UsageSnapshot(date: now, claude: ProviderUsage(name: "Claude", metrics: [ diff --git a/Shared/UsageViews.swift b/Shared/UsageViews.swift index b0e22d9..6df5cd0 100644 --- a/Shared/UsageViews.swift +++ b/Shared/UsageViews.swift @@ -83,9 +83,7 @@ struct ProviderUsageView: View { Text(usage.name).font(.system(size: compact ? (showReset ? 12 : 11) : 14, weight: .bold)) Spacer(minLength: 0) } - if !usage.isEnabled { - Text("Disabled").font(.caption).foregroundStyle(.secondary) - } else if let error = usage.error { + if let error = usage.error { Text(error) .font(.system(size: compact ? 10 : 12)) .foregroundStyle(.secondary) @@ -105,6 +103,10 @@ struct UsageDashboardView: View { var small = false var large = false + private var providers: [ProviderUsage] { snapshot.visibleProviders } + /// One provider owns the whole widget, so reset times fit in every family. + private var isSolo: Bool { providers.count == 1 } + var body: some View { VStack(alignment: .leading, spacing: small ? 3 : 8) { if large { @@ -114,15 +116,17 @@ struct UsageDashboardView: View { Text("Used").font(.caption).foregroundStyle(.secondary) } } - if small || large { - ProviderUsageView(usage: snapshot.claude, compact: !large, showReset: large) - Divider() - ProviderUsageView(usage: snapshot.codex, compact: !large, showReset: large) + if providers.isEmpty { + Text("Turn on Claude or Codex in the app.") + .font(.system(size: small ? 10 : 12)) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + Spacer(minLength: 0) + } else if small || large || isSolo { + stacked } else { HStack(alignment: .top, spacing: 14) { - ProviderUsageView(usage: snapshot.claude, compact: true) - Divider() - ProviderUsageView(usage: snapshot.codex, compact: true) + dividedProviders(compact: true, showReset: false) } } if large { @@ -137,4 +141,19 @@ struct UsageDashboardView: View { } } } + + private var stacked: some View { + VStack(alignment: .leading, spacing: small ? 3 : 8) { + dividedProviders(compact: !large, showReset: large || isSolo) + if isSolo && !large { Spacer(minLength: 0) } + } + } + + @ViewBuilder + private func dividedProviders(compact: Bool, showReset: Bool) -> some View { + ForEach(providers) { usage in + if usage.id != providers.first?.id { Divider() } + ProviderUsageView(usage: usage, compact: compact, showReset: showReset) + } + } } diff --git a/Tests/UsageCoreTests/UsageCoreTests.swift b/Tests/UsageCoreTests/UsageCoreTests.swift index 49006c9..2597a6b 100644 --- a/Tests/UsageCoreTests/UsageCoreTests.swift +++ b/Tests/UsageCoreTests/UsageCoreTests.swift @@ -94,6 +94,24 @@ final class UsageCoreTests: XCTestCase { XCTAssertEqual((attributes[.posixPermissions] as? NSNumber)?.intValue, 0o600) } + func testDisabledProviderIsHiddenInsteadOfShownAsDisabled() { + let both = UsageSnapshot.preview + XCTAssertEqual(both.visibleProviders.map(\.name), ["Claude", "Codex"]) + let claudeOnly = UsageSnapshot(date: Date(), claude: both.claude, + codex: ProviderUsage(name: "Codex", isEnabled: false)) + XCTAssertEqual(claudeOnly.visibleProviders.map(\.name), ["Claude"]) + let codexOnly = UsageSnapshot(date: Date(), claude: ProviderUsage(name: "Claude", isEnabled: false), + codex: both.codex) + XCTAssertEqual(codexOnly.visibleProviders.map(\.name), ["Codex"]) + let neither = UsageSnapshot(date: Date(), claude: ProviderUsage(name: "Claude", isEnabled: false), + codex: ProviderUsage(name: "Codex", isEnabled: false)) + XCTAssertTrue(neither.visibleProviders.isEmpty) + // An errored provider stays visible so the reason still reaches the widget. + let failed = UsageSnapshot(date: Date(), claude: ProviderUsage(name: "Claude", error: "boom"), + codex: ProviderUsage(name: "Codex", isEnabled: false)) + XCTAssertEqual(failed.visibleProviders.map(\.name), ["Claude"]) + } + func testInvalidConfigIsNotSilentlyOverwritten() throws { let url = FileManager.default.temporaryDirectory.appendingPathComponent(UUID().uuidString) defer { try? FileManager.default.removeItem(at: url) } diff --git a/scripts/RenderPreviews.swift b/scripts/RenderPreviews.swift index 5cc092e..b2c27eb 100644 --- a/scripts/RenderPreviews.swift +++ b/scripts/RenderPreviews.swift @@ -11,7 +11,13 @@ struct RenderPreviews { codex: UsageSnapshot.preview.codex) let missing = UsageSnapshot(date: Date(), claude: try UsageParser.claude(Data("{\"five_hour\":{\"utilization\":0},\"seven_day\":{\"utilization\":12}}".utf8)), codex: try UsageParser.codex(Data("{\"rate_limit\":{\"primary_window\":{\"used_percent\":40,\"limit_window_seconds\":604800}}}".utf8))) - for (state, snapshot) in [("normal", UsageSnapshot.preview), ("error", error), ("missing", missing)] { + let claudeOnly = UsageSnapshot(date: Date(), claude: UsageSnapshot.preview.claude, + codex: ProviderUsage(name: "Codex", isEnabled: false)) + let codexOnly = UsageSnapshot(date: Date(), claude: ProviderUsage(name: "Claude", isEnabled: false), + codex: UsageSnapshot.preview.codex) + let states = [("normal", UsageSnapshot.preview), ("error", error), ("missing", missing), + ("claude-only", claudeOnly), ("codex-only", codexOnly)] + for (state, snapshot) in states { for (name, width, height) in [("small", 158.0, 158.0), ("medium", 338.0, 158.0), ("large", 338.0, 354.0)] { for scheme in [ColorScheme.dark, .light] { let view = UsageDashboardView(snapshot: snapshot, small: name == "small", large: name == "large") @@ -28,6 +34,6 @@ struct RenderPreviews { } } } - print("Rendered 18 layout previews in \(destination.path)") + print("Rendered \(states.count * 6) layout previews in \(destination.path)") } } From 1d2b507cd68b7a48ba3281cfc93f20f1328f1c9c Mon Sep 17 00:00:00 2001 From: Jachaganhio Date: Thu, 10 Sep 2026 12:53:00 +0800 Subject: [PATCH 2/3] Add verification screenshot for single-provider mode Shows the Claude-only widget (Codex disabled) with reset times visible in every metric row, confirming the full-width single-column layout described in the README. Co-Authored-By: Claude Opus 5 --- README.md | 4 ++++ README_CN.md | 4 ++++ screenshots/single-provider-claude-only.png | Bin 0 -> 60102 bytes 3 files changed, 8 insertions(+) create mode 100644 screenshots/single-provider-claude-only.png diff --git a/README.md b/README.md index 19a8cb0..80558f0 100644 --- a/README.md +++ b/README.md @@ -141,6 +141,10 @@ If you subscribe to just one of them, hide the other. Use **Show Claude and Fabl A provider that is off disappears completely — no "Disabled" placeholder, no divider, and no request to its endpoint. The remaining provider takes the full widget width and shows reset times in every widget size, including small. At least one provider must stay on; the app refuses to save with both off. +![Claude-only widget](screenshots/single-provider-claude-only.png) + +*Codex turned off — Claude takes the full widget and shows reset countdowns for every metric, even in the small size.* + --- ## How It Works diff --git a/README_CN.md b/README_CN.md index 6916219..d4aac5a 100644 --- a/README_CN.md +++ b/README_CN.md @@ -141,6 +141,10 @@ curl -s https://claude.ai/api/organizations \ 被关掉的提供方会彻底消失:不再显示 "Disabled" 占位文字,不再显示分隔线,也不会再请求它的接口。剩下的那一个占满整个小组件宽度,并在包括 small 在内的所有尺寸上显示重置时间。至少要保留一个提供方,两个都关时应用会拒绝保存。 +![只显示 Claude 的小组件](screenshots/single-provider-claude-only.png) + +*关掉 Codex 后,Claude 独占整个小组件宽度,即使是 small 尺寸也能显示每项额度的重置倒计时。* + --- ## 工作原理 diff --git a/screenshots/single-provider-claude-only.png b/screenshots/single-provider-claude-only.png new file mode 100644 index 0000000000000000000000000000000000000000..1d311b488b29017e88468b87ba2469e74fdd2c17 GIT binary patch literal 60102 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 P00000NkvXXu0mjfX|)@{ literal 0 HcmV?d00001 From 4ecddaf6a59f39f01482dbfaa9f74108d36ccb85 Mon Sep 17 00:00:00 2001 From: Jachaganhio Date: Thu, 17 Sep 2026 19:21:43 +0800 Subject: [PATCH 3/3] Restore reset countdowns in medium with both providers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The refactor to ForEach-based provider rendering passed showReset: false for the medium two-column layout. The original code passed no argument there, so it used ProviderUsageView's default of true — the medium widget has always shown reset countdowns with both providers enabled, as the README states. The result was a medium widget whose rows collapsed into the top half with no countdowns and a large empty area below. Single-provider and small/large layouts were unaffected; verified against renders from master. Co-Authored-By: Claude Opus 5 --- Shared/UsageViews.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Shared/UsageViews.swift b/Shared/UsageViews.swift index 6df5cd0..4c9d454 100644 --- a/Shared/UsageViews.swift +++ b/Shared/UsageViews.swift @@ -125,8 +125,10 @@ struct UsageDashboardView: View { } else if small || large || isSolo { stacked } else { + // Medium with both providers: two columns, each still showing its reset + // countdowns — the widget is wide enough and this is the long-standing layout. HStack(alignment: .top, spacing: 14) { - dividedProviders(compact: true, showReset: false) + dividedProviders(compact: true, showReset: true) } } if large {