SimpleSession
SalianoWorks · Case Study№ 06 / 06
Concept
App Dev.

SimpleSession

Lichtgewicht macOS menu bar app die je Claude.ai-limieten in realtime toont.

Scroll

01 · Client

Eigen project

02 · Industry

Developer Tools / AI

03 · Role

Product design, Native macOS development

04 · Team

Solo

05 · Stack

8 tools

Stack & tools

08 items

SwiftCocoaServiceManagementUserNotificationsswiftciconutilClaude CodeAnthropic OAuth APISwiftCocoaServiceManagementUserNotificationsswiftciconutilClaude CodeAnthropic OAuth API
01The Brief

SimpleSession

Als dagelijkse Claude-gebruiker liep ik constant tegen onverwachte rate limits aan. Midden in een coding sessie, zonder waarschuwing: "Usage limit reached." De enige manier om je verbruik te checken was handmatig naar claude.ai/settings/usage navigeren. Dat moest eenvoudiger.

##Aanpak Ik bouwde een volledig native macOS menu bar app in Swift — geen Electron, geen browser dependency, geen web wrapper. De app leest OAuth-tokens uit de macOS Keychain (opgeslagen door Claude Code CLI) en bevraagt rechtstreeks de officiële Anthropic usage API (api.anthropic.com/api/oauth/usage).

##Technische uitdagingen die ik oploste:

-Token management: automatische token refresh via Anthropic's OAuth endpoint, inclusief proactieve verversing wanneer tokens bijna verlopen

-Rate limit handling: de usage API heeft strikte limieten (~5 requests per token). De app lost dit op door bij een 429-response de token te refreshen, wat een nieuw rate limit window geeft

-Offline resilience: cached data wordt getoond bij network errors of rate limiting, zodat de gebruiker altijd een recente stand ziet

-Server outage detectie: bij HTTP 5xx-fouten toont de app een duidelijke "Anthropic API Down" status met directe link naar status.claude.com, in plaats van een cryptische foutmelding

De architectuur is bewust minimaal gehouden: een enkel Swift-bestand (~960 regels), geen externe dependencies, compileert met swiftc zonder Xcode project. De app draait als LSUIElement (geen Dock-icoon) en slaat instellingen op als platte tekstbestanden in ~/.claude-usage-menubar/.

##Resultaat SimpleSession toont in de menu bar je sessie-verbruik met reset-countdown (bijv. "65% ↻2h14m"). Het dropdown-menu geeft een volledig overzicht: session (5-uur), weekly (7-dagen) en Sonnet-specifieke limieten met progress bars en reset-tijden. Gebruikers kunnen kiezen welke metric de menu bar toont, het refresh-interval instellen (2-15 minuten), notificaties ontvangen bij 80% en 100% verbruik, en de app automatisch laten starten bij login. Het resultaat is een ~2MB .app die je zipt en deelt — de ontvanger heeft alleen Claude Code nodig, de app vindt automatisch de juiste tokens op elke Mac.

04Visual Index
SimpleSession — image 1
FIG. 01 / 05
SimpleSession — image 2
FIG. 02 / 05
SimpleSession — image 3
FIG. 03 / 05
SimpleSession — image 4
FIG. 04 / 05
SimpleSession — image 5
FIG. 05 / 05

Share this case study

06 — Adjacent work

More from the same desk