How chattymin/poketokenbar works
PokeTokenBar is a macOS menu-bar usage tracker wrapped in a Pokémon companion game. The main workflow is local coding-tool logs and official quota sources → usage aggregation → companion growth, rewards, and collection → menu-bar, popover, or desktop-pet presentation. The graph also preserves the documented shop, bag, settings, and Pokémon-data capabilities. Source excerpts and the index support the central wiring; some feature-level connections are documented by the README rather than inspected implementation.
Main entry points: UsageStore.swift Usage state · CompanionStore.swift Companion state · PopoverView.swift Usage popover · PokeTokenBarApp.swift App lifecycle
Components 23
App and presentation
- App lifecycle
Sources/PokeTokenBar/PokeTokenBarApp.swift - Usage popover
Sources/PokeTokenBar/UI/PopoverView.swift - Settings
Sources/PokeTokenBar/UI/SettingsView.swift - Desktop pet
Sources/PokeTokenBar/UI/FloatingPetPanel.swift - Companion display
Sources/PokeTokenBar/UI/CompanionView.swift - Token shop
Sources/PokeTokenBar/UI/ShopView.swift - Item bag
Sources/PokeTokenBar/UI/BagView.swift - Usage recap
Sources/PokeTokenBar/UI/UsageRecapView.swift
Usage tracking
- Usage state
Sources/PokeTokenBar/Core/UsageStore.swift - Local log reader
Sources/PokeTokenBar/Core/LocalUsageReader.swift - Additional readers
Sources/PokeTokenBar/Core/LocalAdditionalUsageProvider.swift - Scan roots
Sources/PokeTokenBar/Core/CustomScanRoots.swift - OAuth limits
Sources/PokeTokenBar/Core/OAuthLimitsProvider.swift - Session-key limits
Sources/PokeTokenBar/Core/SessionKeyLimitsProvider.swift - Provider limits
Sources/PokeTokenBar/Core/CodexRateLimitsProvider.swift
Companion game
- Companion state
Sources/PokeTokenBar/Core/CompanionStore.swift - Game model
Sources/PokeTokenBar/Core/CompanionModel.swift - Pokémon data
Sources/PokeTokenBar/Core/PokeAPIClient.swift
Shared services
- Save transfer
Sources/PokeTokenBar/Core/SaveTransfer.swift - Localization
Sources/PokeTokenBar/Core/Localization.swift
Other components
- Mac user
- Coding-tool data
- PokéAPI
Connections 31
- Mac user → App lifecycle: opens
README.md - App lifecycle → Usage state: creates
Sources/PokeTokenBar/PokeTokenBarApp.swift - App lifecycle → Companion state: creates
Sources/PokeTokenBar/PokeTokenBarApp.swift - App lifecycle → Usage popover: presents
Sources/PokeTokenBar/PokeTokenBarApp.swift - App lifecycle → Desktop pet: offers
README.md - Mac user → Coding-tool data: generates usage
README.md - Coding-tool data → Local log reader: reads logs
Sources/PokeTokenBar/Core/LocalUsageReader.swift - Local log reader → Scan roots: uses roots
Sources/PokeTokenBar/Core/LocalUsageReader.swift - Coding-tool data → Additional readers: reads provider data
Sources/PokeTokenBar/Core/LocalAdditionalUsageProvider.swift - Usage state → Local log reader: refreshes
Sources/PokeTokenBar/Core/UsageStore.swift - Usage state → Additional readers: fetches usage
Sources/PokeTokenBar/Core/UsageStore.swift - Usage state → OAuth limits: fetches quotas
Sources/PokeTokenBar/Core/UsageStore.swift - Usage state → Session-key limits: fetches quotas
Sources/PokeTokenBar/Core/UsageStore.swift - Usage state → Provider limits: fetches quotas
Sources/PokeTokenBar/Core/UsageStore.swift - Usage state → Companion state: drives growth
- Usage state → Usage popover: supplies totals
Sources/PokeTokenBar/UI/PopoverView.swift - Usage state → Usage recap: supplies history
Sources/PokeTokenBar/UI/UsageRecapView.swift - Usage state → Desktop pet: supplies usage
Sources/PokeTokenBar/UI/FloatingPetPanel.swift - Companion state → Game model: persists state
Sources/PokeTokenBar/Core/CompanionStore.swift - Companion state → Pokémon data: requests species
Sources/PokeTokenBar/Core/CompanionStore.swift - Pokémon data → PokéAPI: fetches data
- Companion state → Companion display: feeds display
Sources/PokeTokenBar/UI/CompanionView.swift - Companion state → Token shop: handles purchases
Sources/PokeTokenBar/UI/ShopView.swift - Companion state → Item bag: handles items
Sources/PokeTokenBar/UI/BagView.swift - Companion state → Save transfer: exports snapshots
Sources/PokeTokenBar/Core/CompanionStore.swift - Mac user → Settings: configures
README.md - Settings → Usage state: changes tracking
Sources/PokeTokenBar/UI/SettingsView.swift - Usage popover → Token shop: shows tab
Sources/PokeTokenBar/UI/PopoverView.swift - Usage popover → Item bag: shows tab
Sources/PokeTokenBar/UI/PopoverView.swift - Usage popover → Companion display: shows companion
- Localization → Usage popover: localizes labels