CodexBar is the leading open-source AI coding subscription tracker (12.9k GitHub stars, 40+ provider integrations, ~1k forks). This roadmap captures the 7 phases (P16–P22) needed to close Pitwall's feature gaps while preserving our differentiation angles: confidence labels, pacing guidance, privacy-first architecture, and decision-first UI.
Seven areas where CodexBar's feature set exceeds Pitwall's current implementation. Severity reflects user-facing impact: critical gaps block adoption, significant gaps reduce stickiness, minor gaps are nice-to-haves.
| Feature | CodexBar | Pitwall Today | Severity |
|---|---|---|---|
| Cookie Auth | Browser cookie reads | Manual entry (ChatGPT broken) | Critical |
| Distribution | GitHub Releases + Homebrew | make install only |
Critical |
| CLI Tool | codexbar CLI |
None (separate monorepo product) | Significant |
| Widgets | WidgetKit widgets | None | Significant |
| Status Badges | Provider status indicators | None | Minor |
| Community Infra | ~1k forks + provider guide | None | Minor |
| Provider Coverage | 40+ providers | ~40% (Claude, Codex, Gemini) | Deferred |
Each phase closes a specific competitive gap while building on Pitwall's differentiation. Blue pills highlight where Pitwall goes beyond feature parity.
make install to one-click install for end users.
codexbar CLI with JSON output, scriptable queriespitwall CLI as a separate product in the monorepo,
sharing PitwallCore pacing engine. Exposes pace, Push/Conserve/Switch recommendations, and JSON output.
Analysis of steipete/codexbar — how they structure percentage display, rate windows, and pace calculations. Key patterns to adopt, adapt, or differentiate from.
paceDelta = actualUsedPercent - expectedUsedPercent.
The bands are absolute percentage points, not ratios: ±2 points is closest-to-target,
±6 points is slight reserve/deficit, ±12 points is materially off pace, and beyond
12 points is far off pace. This matters for Pitwall's daily session slices: a
1.1% / 2.5% slice is only 1.4 points in reserve and should render closest-to-target,
even though a ratio calculation would call it severe underuse.
ProviderUsageRowsViewModel and MenuBarStatusFormatter. If Pitwall migrates
production behavior, those helpers should be replaced by a shared point-delta pace classifier so
Session, Daily, Weekly, widgets, CLI, and preview docs all agree.
ClaudeWebFetchStrategy for the cookie format
and endpoint patterns, then wrap it in an explicit consent flow — our privacy differentiator.
ProviderImplementationRegistry uses a giant
switch on a 40+ case enum. Pitwall's current 3-provider setup doesn't need this scale, but the
window normalization pattern (sorting windows by duration into primary/secondary slots)
is worth adopting now — it'll make adding providers incremental rather than architectural.
CodexBar shows a simple green/yellow/red dot per provider — an "is it up?" signal. Pitwall can go further by surfacing why data might be unreliable, tying badges directly into the confidence label system that already exists in PitwallCore.
Feature parity is table stakes. These five angles are why users switch from CodexBar to Pitwall — they represent genuinely different design decisions, not incremental improvements.
CodexBar is the closest direct competitor, but the broader market includes cost analytics tools, team adoption platforms, and vendor-native dashboards. Source: competitive-analysis.md
Production specification completed via spec interview. Key decisions that refine the roadmap above:
CookieProviderConfig maps provider → (domain, cookieName, decryptionStrategy).
Same reader code for ChatGPT + Claude. Integrates with existing AuthHealthWarning model.
Supersedes auth-resilience.md "Automated browser cookie extraction" Non-Goal.
apps/pitwall-cli/ with own Package.swift, imports PitwallCore as local dependency.
Shares Keychain credentials — no separate config. pitwall suggest gives Push/Conserve/Switch.
WidgetSnapshot to both current storage and App Group container.
No migration of existing storage. Small widget: single pacing word + color. Medium: all providers.
StatusChecker actor polls Atlassian Statuspage endpoints every 5 min with debounce.