Never Get Rate-Limited by Surprise: Meet AIQuotaBar, the Ultimate macOS Menu Bar Tool for Claude, ChatGPT, Cursor, and Copilot
Never Get Rate-Limited by Surprise: Meet AIQuotaBar for macOS
Track your Claude, ChatGPT, Cursor, and Copilot usage limits live in your macOS menu bar and native desktop widgets. Zero Electron. Zero browser extensions.
1. Introduction: The AI-Driven Developer's Conundrum
The landscape of software engineering has shifted fundamentally with the integration of Large Language Models (LLMs) into the daily programming lifecycle. Coding companions such as Anthropic’s Claude, OpenAI's ChatGPT, and IDE integrations like Cursor and GitHub Copilot have transitioned from novelties to mission-critical infrastructure. Developers now regularly interact with these systems to generate complex codebases, debug intricate runtime errors, refactor legacy logic, and accelerate the architectural design process. Consequently, the flow state of a modern programmer is closely tethered to the availability and responsiveness of these artificial intelligence agents.
However, this paradigm shift has introduced a frustrating bottleneck: rate limits. Behind the magic of instant code generation lies massive computational overhead. To ensure high availability and resource distribution, AI providers impose strict, dynamic rate limits on users—even those subscribing to premium, paid tiers like Claude Pro or ChatGPT Plus. These rate limits are often arbitrary and context-dependent. The typical developer workflow is characterized by high-intensity sessions of rapid code generation followed by periods of testing. It is during these peak states of productivity that programmers are most likely to hit the "AI Wall"—receiving an abrupt notification that their request limit has been reached and that they must wait several hours to resume.
This unexpected interruption is a major cognitive disruption. Re-entering a flow state after a forced multi-hour break is incredibly difficult, as the developer must reconstruct their mental model, retrace files, and re-establish where they left off. What developers lack is proactive visibility. If they could see their usage stats at a glance, they could budget their tokens, switch to cheaper backup models, or plan their breaks systematically. AIQuotaBar is designed to fill this critical gap, offering real-time tracking of Claude, ChatGPT, Cursor, and Copilot limits right in the macOS menu bar.
2. The Core Problem: The Visibility Gap in AI Quotas
Why is a tool like AIQuotaBar necessary when we already have access to the web settings and dashboards of these AI tools? The answer lies in the design philosophy of the service providers. High-performance AI platforms have a natural incentive to minimize resource usage, but their interfaces do not make tracking this usage user-friendly. For instance, Anthropic's Claude.ai web client hides its usage data entirely during the conversation. You will not find a progress bar, a percentage tracker, or a message counter on the chat window. The usage information is buried deep within the settings menu at claude.ai/settings/usage, requiring manual navigation and a context-switch away from your active terminal or editor.
Similarly, OpenAI's ChatGPT dynamically adjusts its usage window (e.g., 40 messages per 3 hours for GPT-4o) depending on traffic, with no real-time badge indicating how close you are to being throttled. For IDE tools like Cursor and GitHub Copilot, checking your remaining request allowance requires navigating deep into editor preferences, which breaks concentration.
This lack of transparency creates an anxious development experience where you write code in constant fear of hitting a rate limit mid-thought. AIQuotaBar solves this by acting as a lightweight, persistent, and local supervisor. It sits in your macOS menu bar or floats as a native widget on your desktop, providing passive, peripheral awareness. By making usage metrics transparent, developers can manage their AI utilization dynamically without ever opening a new browser tab or breaking their focus.
3. Detailed Feature Deep Dive
Under the hood, AIQuotaBar is not just a basic web scraper; it is a highly optimized, privacy-respecting client that interfaces with private endpoints using browser-session logic. Let's look at its core capabilities:
Zero-Setup Browser Cookie Extraction
Manually copying session tokens or API keys is a major barrier to using developer tools. It is also a security hazard, as copy-pasted strings can easily end up in shell history or public clipboards. AIQuotaBar solves this by programmatically reading session cookies directly from your local browser's SQLite database files. It supports Chrome, Arc, Brave, Edge, Firefox, and Safari. By reading these databases locally, it securely extracts the active session cookies (such as Claude's session token or OpenAI's credentials) and handles the token rotation automatically. This zero-setup authentication means the user only needs to log in to the web interface once, and the app takes care of the rest.
Cloudflare & Bot Protection Bypass with curl_cffi
Since OpenAI and Anthropic are premium endpoints targeted by high-volume scraper bots, their interfaces are shielded behind strict Cloudflare and bot mitigation networks. Standard HTTP client libraries in Python, such as requests or urllib, fail instantly because their TLS client hello signatures do not match modern web browsers. AIQuotaBar bypasses this limitation by using the curl_cffi library. curl_cffi performs low-level TLS impersonation, mimicking the exact JA3 TLS fingerprint of a modern Google Chrome browser. This allows AIQuotaBar to fetch API statistics directly from the providers' private endpoints without triggering Cloudflare blocks.
Multi-Service Rate Tracking & API Monitoring
AIQuotaBar is a centralized command center for all major AI assistance providers:
- Claude.ai: Queries the private endpoints to parse fields like
five_hour(your current session rate limit),seven_day(weekly usage limit), andseven_day_sonnet(weekly model limits). - ChatGPT: Reads the Plus quota rates, showing remaining messages and the exact time until the request counter resets.
- Cursor: Pulls statistics for both Auto-completion requests and developer API usage.
- GitHub Copilot: Tracks your premium request counts (e.g., standard requests consumed out of your monthly quota).
- Custom API Keys: In addition to session scraping, you can provide API keys for OpenAI, MiniMax, and GLM (Zhipu) to monitor your financial burn rate alongside raw token counts.
Burn Rate Analytics & Pacing Engine
The app does more than show static percentages. It tracks your message frequency dynamically. If you are querying Claude rapidly, its internal pacing algorithm calculates your "burn rate" and provides an estimated time of exhaustion (ETA). If you are on track to exceed your limit in the next 30 minutes, the app sends a macOS system notification, warning you to slow down or switch models before getting locked out.
Native macOS WidgetKit Widgets
Leveraging the power of macOS 14 (Sonoma) and later, AIQuotaBar includes a native desktop widget built with WidgetKit. The widget syncs seamlessly with the main Python menu bar application, displaying your quotas as beautiful progress bars right on your desktop or inside the Notification Center.
4. System Architecture: Behind the Scenes
Understanding the repository's codebase helps demystify how a Python script can build a native macOS menu bar app and widget. The repository contains the following critical modules and directories:
claude_bar.py: The entry point wrapper that acts as a backwards-compatible shim, importing and starting the application package.aiquotabar/__main__.py: The main runner that boots up the application.aiquotabar/providers.py: Handles all the API communications, browser-session cookie scraping, local keychain decryption, and HTTP queries leveraging the Cloudflare-bypassingcurl_cffilibrary.aiquotabar/ui.py: Employsrumps(a PyObjC status bar wrapper) to structure the interactive elements, configuration menus, status colors, and alerts inside the macOS status bar.aiquotabar/config.py: Handles storage and manipulation of user preferences, custom refresh frequencies, and local keys.aiquotabar/history.py: Records historical data, supporting burn rate forecasting and pacing algorithms.aiquotabar/widget.py: Formats and serializes local metrics into JSON files that are shared with the desktop widget container.AIQuotaBarWidget/: A separate Swift sub-project compiled with Xcode containing WidgetKit targets to display desktop widgets.install.sh&setup.sh: Bootstrap scripts to configure the Python virtual environments, build Xcode widget products, and register macOS LaunchAgents (plist) for autostart.
5. Comprehensive Installation Guide
Setting up AIQuotaBar on your macOS system is straightforward. There are three primary methods: automated, Homebrew, and manual.
Method 1: The One-Line Installer (Recommended)
For most users, the one-line bash installer is the easiest path. Open your macOS Terminal and execute:
curl -fsSL https://raw.githubusercontent.com/yagcioglutoprak/AIQuotaBar/main/install.sh | bash
This script downloads the latest files, configures a virtual environment, installs system dependencies, registers the LaunchAgent for automatic boot start, and opens the application immediately.
Method 2: Homebrew Installation
If you prefer managing your software using Homebrew, AIQuotaBar is available via a custom tap. You can build it from source using the following commands:
# Tap the repository
brew tap yagcioglutoprak/aiquotabar
# Install the latest head version
brew install --HEAD aiquotabar
# Launch the application in the background
aiquotabar &
Method 3: Developer Manual Installation
If you want to customize the source code or build it manually, you can clone the repository and run it locally. First, clone the official repository:
git clone https://github.com/yagcioglutoprak/AIQuotaBar.git
cd AIQuotaBar
Create and activate a Python 3.10+ virtual environment:
python3 -m venv venv
source venv/bin/activate
Install the package dependencies:
pip install --upgrade pip
pip install -r requirements.txt
Start the application:
python3 claude_bar.py
If you wish to build the optional native desktop widget, make sure Xcode 15+ is installed, then run the compilation script:
cd AIQuotaBarWidget
./build_widget.sh
Once compiled, you can right-click your macOS desktop, select "Edit Widgets", search for "AI Quota", and drag the widget onto your screen.
6. Practical Usage & Troubleshooting
Once AIQuotaBar is running, you will see a small percentage indicator in your menu bar. The indicator changes color dynamically based on your utilization:
| Menu Bar Display | Status / Meaning |
|---|---|
| 🟢 12% | Session usage is low — you are good to query. |
| 🟡 83% | Approaching the limit window. Pace yourself. |
| 🔴 100% | Rate-limited — the app will show the remaining time until reset. |
| 🔴 100% · | Session limit is fine, but the weekly limit is fully maxed. |
Clicking the menu bar icon reveals a detailed dropdown displaying individual limits for Claude (Current Session, All Models, Sonnet Only), ChatGPT (Codex Tasks), Copilot, and Cursor.
Common Troubleshooting Steps
- App Doesn't Appear in Menu Bar: If the app fails to launch or show up, check the execution logs to identify Python missing libraries or path conflicts:
tail -50 ~/.claude_bar.log - Cookie Detection Failures: Ensure you have logged in to
claude.aiorchatgpt.comin one of the supported browsers. If the automatic detector fails due to strict browser profile permissions, select the "Set Session Cookie..." option from the dropdown menu and manually paste your browser session cookie. - Keychain Prompts: When Chrome or Safari cookies are retrieved, macOS may prompt you to enter your system password to authorize access to the browser's Safe Storage key in the Keychain. This is normal and required for local decryption.
7. Conclusion & GitHub CTA
AIQuotaBar is a vital utility for power users and developers who rely heavily on AI LLMs for daily coding. By exposing hidden rate-limiting metrics directly in the macOS menu bar and desktop widgets, it restores transparency, eliminates rate-limit surprises, and helps programmers maintain their flow state. It is lightweight, completely private, runs entirely on your local machine, and does not require complex configurations.
The developer is actively maintaining the project, with exciting features on the roadmap, including tray app support for Windows and Linux, custom notification thresholds, and usage history graphs. Explore the source code, report bugs, or contribute your own pull requests by visiting the official GitHub repository.