How junhoyeo/tokscale works
Tokscale combines a local Rust CLI that reads AI-agent usage, analyzes token and cost data, and presents it in a terminal UI with a web service for sharing submissions. The main workflow runs from local agent data through provider-specific session parsing and aggregation to reports or an optional leaderboard submission; the web application then supports public profiles, rankings, and groups. Pricing lookup and live provider-usage queries are additional capabilities. Some frontend and CLI subsystems are represented by their exact directories because their implementation was not sampled; those links rely on README documentation where noted.
Main entry points: db Platform database · main.rs CLI commands · route.ts Submission API · pricing Model pricing
Components 19
CLI workflow
- CLI commands
crates/tokscale-cli/src/main.rs - Import and reports
crates/tokscale-cli/src/commands - Terminal dashboard
crates/tokscale-cli/src/tui - Provider usage
crates/tokscale-cli/src/commands/usage/mod.rs - Data submission
crates/tokscale-cli/src/commands/autosubmit.rs - CLI authentication
crates/tokscale-cli/src/auth.rs
Usage analysis
- Provider sessions
crates/tokscale-core/src/sessions - Session analysis
crates/tokscale-core/src/sessionize.rs - Usage aggregation
crates/tokscale-core/src/aggregator.rs
Web platform
- Submission API
packages/frontend/src/app/api/submit/route.ts - Platform database
packages/frontend/src/lib/db - Public profiles
packages/frontend/src/app/u/[username] - Leaderboards
packages/frontend/src/app/(main)/leaderboard - Usage groups
packages/frontend/src/app/(main)/groups
Pricing and providers
- Model pricing
crates/tokscale-core/src/pricing - Pricing cache
crates/tokscale-core/src/pricing/cache.rs
Other components
- CLI user
- Agent data
- Pricing sources
Connections 17
- CLI user → CLI commands: runs commands
README.md - Agent data → Provider sessions: provides usage logs
README.md - CLI commands → Provider usage: fetches live usage
crates/tokscale-cli/src/commands/usage/mod.rs - Provider usage → Terminal dashboard: shows usage
crates/tokscale-cli/src/commands/usage/mod.rs - CLI commands → Import and reports: routes commands
crates/tokscale-cli/src/main.rs - Provider sessions → Session analysis: parses sessions
crates/tokscale-core/src/sessionize.rs - Session analysis → Usage aggregation: groups usage
- Usage aggregation → Terminal dashboard: feeds dashboard
- CLI user → Data submission: submits data
README.md - Data submission → Submission API: posts submission
- CLI authentication → Submission API: authorizes requests
- Submission API → Platform database: writes submissions
packages/frontend/src/app/api/submit/route.ts - Platform database → Public profiles: supplies profile data
- Platform database → Leaderboards: supplies rankings
- Platform database → Usage groups: stores group data
- Model pricing → Pricing cache: caches rates
crates/tokscale-core/src/pricing/litellm.rs - Model pricing → Pricing sources: fetches model rates
crates/tokscale-core/src/pricing/litellm.rs