Are you the author? Sign in to claim
Native iPhone app and widgets for tracking Codex and Claude usage limits.
An iPhone app and WidgetKit extension for checking Codex and Claude allowance without opening each provider.
TokenMaxxing shows rolling and weekly usage windows, reset times, freshness, and model-specific limits such as Claude Fable. Provider credentials stay in the device Keychain; widgets receive only cached percentages and reset dates.
5-hour, 2-day, and 1-week.The checked-in Xcode project is ready to open directly. XcodeGen is optional and is only needed when regenerating the project from project.yml.
git clone git@github.com:anuragts/tokenmaxxing.git
cd tokenmaxxing
open TokenMaxxing.xcodeproj
In Xcode:
TokenMaxxing project.TokenMaxxing and TokenMaxxingWidgets, open Signing & Capabilities.The repository currently uses the com.anurag.tokenmaxxing identifier family. Forks should replace it consistently:
rg -n "com\\.anurag" project.yml Config Shared TokenMaxxing TokenMaxxingWidgets TokenMaxxing.xcodeproj
Update the App Group in Shared/AppConstants.swift to match the capability selected in Xcode. If a free Personal Team cannot provision the App Group, use an Apple Developer Program team that supports the capability.
brew install xcodegen
xcodegen generate
Run the unit suite without code signing:
xcodebuild test \
-project TokenMaxxing.xcodeproj \
-scheme TokenMaxxing \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.1' \
-derivedDataPath .derivedData \
CODE_SIGNING_ALLOWED=NO
Change the simulator name or OS version to one installed on your Mac. The tests cover provider decoding, transient authentication failures, percentage normalization, dynamic duration labels, Fable scoped limits, cache persistence, and stale-state behavior.
TokenMaxxing scheme.After installation, open TokenMaxxing and connect either provider. The connections are independent, so one provider can continue working if the other needs authentication.
Widget refresh timing is controlled by iOS and is not an exact background timer. Every surface includes freshness or stale-state information.
TokenMaxxing/ SwiftUI app, provider cards, and login flows
TokenMaxxingWidgets/ Home Screen and Lock Screen widgets
Shared/ Provider APIs, models, storage, and formatting
TokenMaxxingTests/ Decoder, model, and persistence tests
Config/ App Group and Keychain entitlements
Design/ Editable icon source and provider-mark notes
The app normalizes provider-specific responses into UsageWindow snapshots. OAuth credentials are stored in the shared Keychain access group. Only non-secret normalized snapshots are written to the App Group for WidgetKit.
UserDefaults.The usage endpoints consumed by TokenMaxxing are product-client contracts, not stable public third-party APIs. OpenAI or Anthropic may change them without notice. This project is not affiliated with, endorsed by, or sponsored by OpenAI or Anthropic. Product names and marks belong to their respective owners.
URLSession with provider-specific adapters.See PLAN.md for the original architecture decisions and implementation record.
Issues and pull requests are welcome. Please avoid attaching OAuth tokens, raw authorization responses, Keychain exports, or screenshots containing information you do not want published.
Source code is available under the MIT License. Provider names, logos, and trademarks are excluded from that license and remain the property of their respective owners.
191 agents, 155 skills, and 82 plugins cross-compatible with Claude Code, Cursor, and Codex
Project management using GitHub Issues + Git worktrees for parallel agent execution
Core skills library for Claude Code with 20+ battle-tested skills including TDD, debugging, and brainstorming
Coding agent session manager supporting Claude Code, Gemini CLI, Codex, and more