How wwrrj/codex-switcher works
Codex Account Switcher is a local-first Windows desktop app for managing saved Codex accounts, checking usage, analyzing local token history, and optionally routing Codex requests through configurable providers. Users manage accounts and settings in the React UI; its Zustand store calls the Tauri command bridge, whose Rust backend handles Codex files, usage, scheduling, and proxy operations. README documents analytics and desktop/tray capabilities beyond the sampled implementations; links among those features are shown only where the tree or excerpts support them.
Main entry points: proxy.rs Proxy service · appStore.ts App store · App.tsx App shell · commands.rs Tauri commands
Components 23
Desktop interface
- App shell
react-vite/src/App.tsx - Account pool
react-vite/src/components/AccountPool.tsx - Usage analytics
react-vite/src/components/UsageAnalyticsPage.tsx - Routing page
react-vite/src/components/ProxyRoutingPage.tsx - Settings
react-vite/src/components/SettingsDrawer.tsx - Tray menu
react-vite/src/components/TrayMenu.tsx
Frontend state
- App store
react-vite/src/store/appStore.ts - Command API
react-vite/src/lib/api.ts - Usage cache
react-vite/src/lib/usageDb.ts
Tauri backend
- Tauri commands
react-vite/src-tauri/src/commands.rs - Account operations
react-vite/src-tauri/src/core.rs - Domain models
react-vite/src-tauri/src/models.rs - Usage and quota
react-vite/src-tauri/src/providers.rs - Token analytics
react-vite/src-tauri/src/core.rs - Quota scheduler
react-vite/src-tauri/src/mobile_residency.rs
Request routing
- Proxy service
react-vite/src-tauri/src/proxy.rs - Provider selection
react-vite/src-tauri/src/routing.rs - Protocol transforms
react-vite/src-tauri/src/transforms.rs - Codex proxy config
react-vite/src-tauri/src/codex_config.rs - Proxy settings
react-vite/src-tauri/src/models.rs
Other components
- User
- Codex app
- Usage/provider services
Connections 28
- User → App shell: uses
- App shell → Account pool: shows
- App shell → Usage analytics: shows
- App shell → Routing page: shows
- App shell → Settings: opens
- App shell → Tray menu: renders
- Account pool → App store: updates
- Usage analytics → App store: reads
- Routing page → App store: updates
- Settings → App store: updates
- Tray menu → App store: reads
- App store → Command API: invokes
- App store → Usage cache: reads/writes
- Command API → Tauri commands: invokes
- Tauri commands → Account operations: dispatches
- Tauri commands → Usage and quota: dispatches
- Tauri commands → Proxy service: dispatches
- Account operations → Domain models: uses
- Account operations → Codex app: manages auth
- Usage and quota → Codex app: reads local auth
- Usage and quota → Usage/provider services: queries usage
- Token analytics → Codex app: scans records
- Proxy service → Provider selection: selects provider
- Proxy service → Protocol transforms: transforms requests
- Proxy service → Usage/provider services: forwards requests
- Proxy service → Codex proxy config: installs config
- Proxy service → Proxy settings: reads/writes
- Codex app → Proxy service: sends requests