Files
2026-07-13 12:22:33 +08:00

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)