How ht2803-max/tokenmanager works
TokenManager is a local AI-agent usage tracker. Its main workflow discovers agent session files, incrementally parses and normalizes records into SQLite, then calculates costs and usage views for terminal, command-line, and static-HTML reports. Separate capabilities include optimization advice, budgets and subscription-window limits, tool analytics, live watching, and background alerts. The graph follows README descriptions and indexed source references; some internal call details are not shown in the excerpts, so those links are omitted rather than inferred.
Main entry points: root.go CLI Commands · collector.go Incremental Collector · analytics.go Usage Analytics · daemon.go Background Daemon
Components 21
Ingestion
- Incremental Collector
internal/collector/collector.go - Agent Discovery
internal/agents/agents.go - Agent Parsers
internal/parser/codex.go - Usage Records
internal/model/model.go - SQLite Storage
internal/storage/storage.go
Analysis
- Usage Analytics
internal/analytics/analytics.go - Usage Windows
internal/analytics/blocks.go - Tool Analytics
internal/analytics/tools.go - Cost Pricing
internal/pricing/pricing.go - Optimization Advice
internal/optimizer/optimizer.go
User Interfaces
- CLI Commands
internal/cli/root.go - Reports and Export
internal/cli/reports.go - Terminal Dashboard
internal/tui/tui.go - Dashboard Views
internal/tui/views.go - HTML Dashboard
internal/web/generator.go
Budgets and Monitoring
- Budget Tracking
internal/budget/budget.go - Background Daemon
internal/daemon/daemon.go - Configuration
internal/config/config.go
Other components
- User
- Agent Session Files
- Desktop Notifications
Connections 32
- User → CLI Commands: runs commands
- CLI Commands → Incremental Collector: scans files
internal/cli/root.go - Agent Session Files → Incremental Collector: provides usage files
README.md - Incremental Collector → Agent Discovery: discovers adapters
internal/collector/collector.go - Incremental Collector → Agent Parsers: parses file data
internal/collector/collector.go - Agent Discovery → Agent Parsers: selects parser
internal/agents/agents.go - Agent Parsers → Usage Records: produces records
internal/parser/codex.go - Incremental Collector → SQLite Storage: writes records
internal/collector/collector.go - Incremental Collector → Configuration: uses settings
internal/collector/collector.go - SQLite Storage → Usage Records: stores records
internal/storage/storage.go - Usage Analytics → SQLite Storage: queries records
internal/analytics/analytics.go - Usage Analytics → Cost Pricing: prices usage
internal/analytics/analytics.go - Cost Pricing → Configuration: loads custom prices
internal/pricing/pricing.go - CLI Commands → Terminal Dashboard: starts dashboard
internal/cli/root.go - Terminal Dashboard → Incremental Collector: watches and rescans
internal/tui/tui.go - Terminal Dashboard → Dashboard Views: renders views
internal/tui/tui.go - CLI Commands → Reports and Export: runs report commands
internal/cli/reports.go - Reports and Export → Usage Analytics: aggregates usage
internal/cli/reports.go - CLI Commands → HTML Dashboard: exports dashboard
- HTML Dashboard → Usage Analytics: computes dashboard data
internal/web/generator.go - HTML Dashboard → Optimization Advice: includes advice
internal/web/generator.go - Usage Analytics → Usage Windows: calculates limits
- Usage Analytics → Tool Analytics: summarizes tool use
- CLI Commands → Optimization Advice: requests recommendations
- Optimization Advice → Usage Analytics: analyzes records
internal/optimizer/optimizer.go - CLI Commands → Budget Tracking: manages budgets
- Budget Tracking → Usage Analytics: checks spending
internal/budget/budget.go - CLI Commands → Background Daemon: controls daemon
- Background Daemon → Incremental Collector: collects continuously
internal/daemon/daemon.go - Background Daemon → Budget Tracking: checks alert thresholds
internal/daemon/daemon.go - Background Daemon → Desktop Notifications: sends alerts
internal/daemon/daemon.go - Background Daemon → SQLite Storage: persists alert state
internal/daemon/daemon.go