187 lines
6.5 KiB
Markdown
187 lines
6.5 KiB
Markdown
---
|
|
summary: "Quotio comparison notes and possible CodexBar enhancement ideas."
|
|
read_when:
|
|
- Evaluating Quotio-inspired UX or architecture ideas
|
|
- Planning provider quota-tracking roadmap items
|
|
- Comparing CodexBar scope against proxy-based quota tools
|
|
---
|
|
|
|
# Quotio Comparison & Enhancement Opportunities
|
|
|
|
**Date:** 2026-01-04
|
|
**Source:** https://github.com/nguyenphutrong/quotio
|
|
|
|
## Overview
|
|
|
|
Quotio is a similar macOS menu bar app for AI quota tracking with **2k stars** and **117 forks**. It has a broader scope (proxy server + quota tracking) but shares many features with CodexBar.
|
|
|
|
---
|
|
|
|
## Key Differences
|
|
|
|
### Architecture
|
|
- **Quotio**: Manages a local proxy server (`CLIProxyAPI`) that routes requests to multiple AI providers
|
|
- **CodexBar**: Direct provider monitoring only (no proxy layer)
|
|
- **Implication**: Quotio is more complex but offers request routing/failover
|
|
|
|
### Provider Support
|
|
**Quotio supports:**
|
|
- Gemini, Claude, OpenAI Codex, Qwen, Vertex AI, iFlow, Antigravity, Kiro, GitHub Copilot
|
|
- **IDE monitoring**: Cursor, Trae (auto-detected, monitor-only)
|
|
|
|
**CodexBar supports:**
|
|
- Codex, Claude, Cursor, Gemini, Antigravity, Droid/Factory, Copilot, z.ai, Kiro, Vertex AI, **Augment**
|
|
|
|
**Unique to CodexBar:**
|
|
- Augment (we just added!)
|
|
- z.ai
|
|
- Droid/Factory
|
|
|
|
**Unique to Quotio:**
|
|
- Qwen, iFlow
|
|
- Trae IDE monitoring
|
|
|
|
---
|
|
|
|
## Features We Should Consider
|
|
|
|
### 1. **Auto-Warmup Scheduling** ⭐⭐⭐
|
|
**What:** Automatically trigger 1-token model invocations on a schedule to keep accounts "warm"
|
|
**Why:** Prevents cold-start delays, maintains session freshness
|
|
**Implementation:**
|
|
- Interval-based (15min-4h) or daily scheduling
|
|
- Per-account model selection
|
|
- Progress tracking in UI
|
|
**Effort:** Medium (requires background task scheduler)
|
|
**Value:** High for providers with session timeouts (Claude, Augment)
|
|
|
|
### 2. **Account Switching for Antigravity** ⭐⭐
|
|
**What:** Switch active Antigravity account by injecting OAuth tokens into IDE's SQLite database
|
|
**Why:** Allows multi-account workflows without manual IDE logout/login
|
|
**Implementation:**
|
|
- Read/write to `~/Library/Application Support/Antigravity/User/globalStorage/state.vscdb`
|
|
- Protobuf encode/decode for OAuth tokens
|
|
- Process management (close IDE → backup → inject → restart)
|
|
**Effort:** High (complex SQLite + protobuf + process management)
|
|
**Value:** Medium (niche use case, but powerful for multi-account users)
|
|
|
|
### 3. **Standalone Quota Mode** ⭐
|
|
**What:** View quotas without running proxy server
|
|
**Why:** Lighter weight, faster startup for quick checks
|
|
**Implementation:** Already how CodexBar works! (We don't have a proxy)
|
|
**Effort:** N/A (we already do this)
|
|
**Value:** N/A (already implemented)
|
|
|
|
### 4. **Smart Routing Strategies** ⭐⭐
|
|
**What:** Round Robin or Fill First routing for multi-account setups
|
|
**Why:** Optimize quota usage across accounts
|
|
**Implementation:** Would require proxy layer (not applicable to CodexBar's architecture)
|
|
**Effort:** Very High (requires proxy server)
|
|
**Value:** Low for CodexBar (out of scope)
|
|
|
|
### 5. **Custom Provider Support** ⭐⭐⭐
|
|
**What:** User-defined AI providers with OpenAI-compatible, Claude, Gemini, Codex API configs
|
|
**Why:** Extensibility for new/custom providers without code changes
|
|
**Implementation:**
|
|
- `CustomProvider` model with API type, base URL, auth
|
|
- YAML config generation
|
|
- UI for add/edit/delete custom providers
|
|
**Effort:** Medium-High
|
|
**Value:** High (future-proofs the app, community can add providers)
|
|
|
|
### 6. **Multilingual Support** ⭐
|
|
**What:** English, Vietnamese, Chinese, French
|
|
**Why:** Broader user base
|
|
**Implementation:** `.xcstrings` localization (we already have infrastructure)
|
|
**Effort:** Medium (translation work)
|
|
**Value:** Medium (depends on target audience)
|
|
|
|
---
|
|
|
|
## UI/UX Learnings
|
|
|
|
### Menu Bar Design
|
|
- **Quotio**: Custom provider icons in menu bar, quota overview popup
|
|
- **CodexBar**: Two-bar meter icon, detailed menu card
|
|
- **Takeaway**: Both approaches valid; CodexBar's meter is more info-dense
|
|
|
|
### Settings Organization
|
|
- **Quotio**: Dashboard, Providers, Agents, Quota, Logs, Settings tabs
|
|
- **CodexBar**: Settings → Providers with per-provider toggles
|
|
- **Takeaway**: Quotio's tab-based navigation is cleaner for complex apps
|
|
|
|
### Quota Display
|
|
- **Quotio**: Grid layout with tier badges (Pro/Ultra/Free), inline refresh
|
|
- **CodexBar**: List-based with session/weekly bars
|
|
- **Takeaway**: Tier badges are a nice visual touch
|
|
|
|
---
|
|
|
|
## Recommended Enhancements for CodexBar
|
|
|
|
### Priority 1: Auto-Warmup Scheduling ⭐⭐⭐
|
|
**Why:** Keeps sessions alive, prevents auth failures
|
|
**Implementation:**
|
|
1. Add `WarmupScheduler` service with interval/daily modes
|
|
2. Per-provider warmup config in Settings
|
|
3. Background task to trigger minimal API calls (1-token requests)
|
|
4. UI to show last warmup time + next scheduled warmup
|
|
|
|
**Providers that benefit:**
|
|
- Claude (session expires)
|
|
- Augment (session expires)
|
|
- Codex (session expires)
|
|
|
|
### Priority 2: Custom Provider Framework ⭐⭐⭐
|
|
**Why:** Community extensibility, future-proof
|
|
**Implementation:**
|
|
1. `CustomProvider` model (name, icon, API type, base URL, auth)
|
|
2. Settings UI for CRUD operations
|
|
3. Generic quota fetcher that adapts to API type
|
|
4. Save to UserDefaults or JSON file
|
|
|
|
**Benefits:**
|
|
- Users can add new providers without waiting for releases
|
|
- Easier to experiment with beta/internal APIs
|
|
|
|
### Priority 3: Enhanced Antigravity Support ⭐⭐
|
|
**Why:** Quotio's account switching is powerful
|
|
**Implementation:**
|
|
1. Add `AntigravityAccountSwitcher` service
|
|
2. SQLite database read/write for token injection
|
|
3. Process manager for IDE restart
|
|
4. UI confirmation dialog with progress states
|
|
|
|
**Complexity:** High, but valuable for power users
|
|
|
|
---
|
|
|
|
## What NOT to Adopt
|
|
|
|
### ❌ Proxy Server Layer
|
|
- **Why:** Out of scope for CodexBar's mission (monitoring, not routing)
|
|
- **Complexity:** Very high (server management, request routing, failover)
|
|
- **Maintenance:** Ongoing burden
|
|
|
|
### ❌ Agent Configuration
|
|
- **Why:** Quotio auto-configures CLI tools (Claude Code, OpenCode, etc.) to use its proxy
|
|
- **Relevance:** Not applicable without proxy layer
|
|
|
|
---
|
|
|
|
## Conclusion
|
|
|
|
**Top 3 Enhancements:**
|
|
1. **Auto-Warmup Scheduling** - Keeps sessions alive, prevents auth failures
|
|
2. **Custom Provider Framework** - Future-proof, community-driven extensibility
|
|
3. **Enhanced Antigravity Account Switching** - Power user feature
|
|
|
|
**Quick Wins:**
|
|
- Tier badges in quota display (visual polish)
|
|
- Tab-based settings navigation (if app grows more complex)
|
|
|
|
**Skip:**
|
|
- Proxy server layer (out of scope)
|
|
- Agent configuration (requires proxy)
|
|
|