Für mich selbst gebaut Swift · AppKit · SwiftPM

AgentBar.

In der Menüleiste meines Macs sehe ich ohne Terminal, wie viel ich bei Claude und Codex noch nutzen kann.

Das Problem
Ich arbeite den ganzen Tag mit KI-Assistenten und habe das Nutzungslimit früher erst bemerkt, wenn es zu spät war. Bis dahin habe ich geraten.
Die Lösung
Eine kleine Anzeige in der Menüleiste meines Macs zeigt mir, ob ich im Plan liege und wann mein Kontingent wieder aufgefüllt wird.
Wie ich es gebaut habe
AgentBar ist eine eigene Mac-App, die ich mit meinem KI-Team gebaut habe. Entschieden habe ich, keine nackten Prozente anzuzeigen: Die App rechnet gegen eine Soll-Kurve für die Woche.
Die Menüleiste des Macs mit der dreiteiligen Kapsel von AgentBar: W 58 %, F 21 %, 5h 43 %. Darunter ist das Fenster geöffnet, oben mit drei Anzeigen für Claude (Woche 58 %, Fable-Woche 21 %, Fünf-Stunden-Fenster 43 %), unten mit einer für Codex (Woche 24 %).

Jedes Budget hat seine eigene Uhr.

Claude Code und Codex haben beide Grenzen. Claude Code hat ein Budget für die Woche und eines für ein Fenster von fünf Stunden, jeweils mit eigenem Zeitpunkt, an dem es wieder aufgefüllt wird. Bei Codex hängt es am Abo, in meinem gibt es nur die Woche. Beides sehe ich nur, wenn ich nachfrage. Wichtig wird es aber genau dann, wenn ich mitten in etwas stecke und nicht nachfragen will.

Mal habe ich zu vorsichtig gearbeitet, mal war das Budget am Mittwoch schon aufgebraucht.

Die App zeigt mir ein Tempo.

AgentBar sitzt oben rechts in der Menüleiste und zeigt drei Werte in einer Kapsel: die Woche, die Fable-Woche (ein eigenes Wochenbudget für Claudes Modell Fable) und das Fenster von fünf Stunden. Für die beiden Wochen-Anzeigen rechnet die App gegen eine Soll-Kurve, die die Wochentage unterschiedlich gewichtet, und färbt sich danach, ob ich vorne liege oder im Plan. Ein Klick aufs Symbol öffnet die Details: die beiden Wochen mit Soll-Marke und Hochrechnung, das Fünf-Stunden-Fenster mit einem Countdown bis zum Neustart und darunter das Kontingent von Codex: die Woche und, wenn das Abo eines hat, das Fünf-Stunden-Fenster.

/ technik

Drei Entscheidungen, die wichtig waren.

Native

In Swift geschrieben

Eine Electron-App bringt ihren eigenen Browser mit, für eine kleine Statusanzeige ist das viel Ballast. AgentBar ist deshalb in Swift geschrieben, mit AppKit und SwiftUI, Apples eigenen Werkzeugen für Mac-Apps. So sieht sie aus wie jede andere Mac-App.

Signatur

Selbst signiert und trotzdem stabil

Ich brauche keinen App Store und keine Notarisierung, also keine Prüfung durch Apple. Für ein Werkzeug, das auf einem einzigen Rechner läuft, wären ein bezahltes Entwicklerkonto und Prüfrunden unverhältnismäßig. Ein Skript baut die App bei mir und signiert sie mit einem selbst ausgestellten Zertifikat. Weil die Signatur immer dieselbe bleibt, erkennt macOS die App nach jedem Neubau wieder und behält ihre Datenschutz-Freigaben.

Datenquelle

Zwei Quellen für Claude

Die Werte kommen aus zwei Quellen: jede Minute aus der Nutzungsdatei, die die Claude-App auf dem Mac ablegt, und alle zehn Minuten aus Claudes offizieller Nutzungs-Schnittstelle. Es gilt die jüngere Messung. Codex meldet seinen Stand über seinen lokalen app-server, ein kleines Programm auf dem Mac. An allen drei Quellen ändert AgentBar nichts. Geschrieben wird nur auf meinem Mac: ein Zwischenspeicher, ein Verlauf der Messwerte und, wenn ich es eingeschaltet habe, eine kleine Datei für ein Widget auf dem iPhone.

Über so etwas sprechen → Status   Für mich selbst gebaut · läuft auf meinem Mac

/ weitere apps