KI-gestützte Code-Assistenten wie Claude Code, Codex CLI und Gemini CLI sind aus der modernen Softwareentwicklung nicht mehr wegzudenken. Doch während sie täglich genutzt werden, fehlt oft eine zentrale Übersicht über die verbleibenden API-Kontingente. Ein Entwickler hat diese Lücke mit einem automatisierten Skript geschlossen, das alle drei Tools in Echtzeit überwacht und die Nutzung visualisiert.
Warum ein zentrales Quoten-Tracking unverzichtbar ist
Viele Entwickler arbeiten täglich mit mehreren KI-Code-Assistenten, ohne zu wissen, wann ein Kontingent erschöpft ist. Plötzliche Sperren während kritischer Arbeitsphasen führen zu unnötigen Unterbrechungen. Der Autor des Skripts beschreibt sein ursprüngliches Problem: Nach 15 Minuten Debugging stellte er fest, dass nicht das Modell, sondern das API-Kontingent der Engpass war.
Die Lösung ist ein Skript, das stündlich die Quoten abfragt und in einer JSON-Datei speichert. Diese Daten werden dann in der Statuszeile von Claude Code angezeigt:
Session: ███░░░⏐░░░░░░░░░░░ 10% (3h 12min verbleibend)
Wöchentlich: ████████░░⏐░░░░░ 44% (Donnerstag, 5. März, 20:00 PT)Die gefüllten Blöcke (█) zeigen die genutzte Kapazität, während der senkrechte Strich (⏐) die aktuelle Position im Zeitfenster markiert. Beschleunigt sich der Verbrauch schneller als die Zeit vergeht, wird dies sofort sichtbar.
Versteckte Endpunkte: Wie Claude Codes API-Kontingente ausliest
Claude Code nutzt OAuth für die Authentifizierung, wobei die Zugangsdaten in ~/.claude/.credentials.json gespeichert werden. Bisher fehlte eine offizielle Dokumentation für den Abruf der Quoten. Doch durch Reverse-Engineering fand der Autor heraus, dass der Endpunkt api.anthropic.com/api/oauth/usage die benötigten Daten liefert – darunter Auslastung und Reset-Zeitpunkte für das 5-Stunden-Fenster und das 7-Tage-Kontingent.
Das Skript ruft diese Daten wie folgt ab:
TOKEN=$(jq -r '.claudeAiOauth.accessToken // empty' "$HOME/.claude/.credentials.json")
curl -s --max-time 10 \
-H "Authorization: Bearer $TOKEN" \
-H "anthropic-beta: oauth-2025-04-20" \
Die Antwort enthält strukturierte Daten:
{
"five_hour": {
"utilization": 0.42,
"resets_at": "2026-02-28T17:00:00Z"
},
"seven_day": {
"utilization": 0.61,
"resets_at": "2026-03-07T08:00:00Z"
},
"seven_day_sonnet": {
"utilization": 0.35,
"resets_at": "2026-03-07T08:00:00Z"
}
}Ein entscheidender Hinweis: Ohne den Header anthropic-beta: oauth-2025-04-20 schlägt die Anfrage fehl. Die Versionsangabe im Header deutet darauf hin, dass sich diese Schnittstelle in der Vergangenheit bereits geändert hat – ein Risiko für zukünftige Stabilität. Zudem sind die 5-Stunden-Fenster und die wöchentliche Reset-Zeit (Donnerstag, 20:00 PT) nicht in der offiziellen Dokumentation vermerkt. Der Autor entdeckte diese Details erst durch wochenlange Beobachtung der Daten.
Gemesis CLI: Keine API, aber versteckte Log-Dateien
Gemini CLI bietet zwar einen interaktiven Befehl /stats, der die Nutzung anzeigt – doch außerhalb der interaktiven Shell bleibt die Ausgabe leer. Grund dafür ist die Nutzung der Bibliothek Ink, die für die Terminaldarstellung zuständig ist und keine Ausgabe bei nicht-interaktiver Nutzung ermöglicht. In einem GitHub-Issue bestätigte das Entwicklungsteam, dass es keine offizielle Methode gibt, um das tägliche Kontingent abzurufen.
Der Workaround: Gemini speichert Sitzungsdaten in ~/.gemini/tmp/_/chats/session-YYYY-MM-DD_.json. Jede Datei repräsentiert eine Sitzung, wobei die kostenlose Version auf 1.000 Anfragen pro Tag begrenzt ist.
Um die Nutzung zu überwachen, zählt das Skript die Sitzungsdateien und vergleicht sie mit dem AI Studio-Dashboard von Google. Wichtig: Die Sitzungsdateien korrelieren nicht 1:1 mit API-Anfragen, da eine Sitzung mehrere Nachrichten enthalten kann. Dennoch dient die Zählung als frühe Warnung, bevor das Limit erreicht wird.
Für eine detailliertere Analyse parst das Skript die JSON-Dateien und summiert die Token pro Tag:
files = glob.glob(os.path.join(base, '*/chats/session-*.json'))
for f in files:
fname = os.path.basename(f)
file_date = fname[8:18] # Extrahiert YYYY-MM-DD
with open(f) as fh:
data = json.load(fh)
file_tokens = sum(
m.get('tokens', {}).get('total', 0)
for m in data.get('messages', [])
)
# Aktualisiere WochenstatistikenDie Ausgabe umfasst tägliche Sitzungs- und Token-Zählungen für die vergangene Woche. Allerdings besteht das Risiko, dass Google das Dateiformat oder die Verzeichnisstruktur ändert – ohne offizielle Unterstützung für diesen Ansatz.
Codex CLI: JSON-RPC als versteckte Schnittstelle
Codex CLI bietet zwar einen interaktiven Befehl /status, der die verbleibenden Anfragen anzeigt – doch außerhalb der interaktiven Shell bleibt die Ausgabe unsichtbar. Der Autor versuchte zunächst, den Befehl über eine tmux-Sitzung zu automatisieren, scheiterte jedoch an der unzuverlässigen Erfassung der Terminalausgabe.
Die Lösung fand sich im `app-server`-Unterbefehl von Codex. Dieser kommuniziert über JSON-RPC und ermöglicht den Abruf der Quoten ohne interaktive Shell. Die Methode account/rateLimits/read liefert die verbleibenden Anfragen im aktuellen Zeitfenster.
Ein Beispielaufruf:
codex app-server --mode json-rpc <<EOF
{"jsonrpc":"2.0","id":1,"method":"account/rateLimits/read","params":{}}
EOFDie Antwort enthält die verbleibenden Anfragen und Reset-Zeitpunkte. Obwohl OpenAI eine Dokumentation für app-server bereitstellt, wurde diese erst nach der Entdeckung im Quellcode des Tools gefunden.
Fazit: Automatisierung spart Zeit und Nerven
Die manuelle Überwachung von API-Kontingenten in mehreren KI-Tools ist fehleranfällig und zeitaufwendig. Das vorgestellte Skript zentralisiert diesen Prozess und bietet eine Echtzeit-Visualisierung der verbleibenden Kapazitäten.
Allerdings basiert die Lösung teilweise auf undokumentierten Endpunkten und Workarounds, die bei zukünftigen Updates der Tools möglicherweise nicht mehr funktionieren. Entwickler sollten diese Abhängigkeiten im Blick behalten und das Skript regelmäßig anpassen. Langfristig wäre eine offizielle API-Integration aller Anbieter wünschenswert – bis dahin bleibt Selbsthilfe die beste Strategie.
KI-Zusammenfassung
Stop guessing when your AI coding tools will hit rate limits. This script unifies quota tracking for Claude Code, Gemini CLI, and Codex into one dashboard to prevent workflow interruptions.