Skip to content

Providers

smajt-archlinux edited this page May 19, 2026 · 2 revisions

Providers

OpenTracker uses a modular provider system. Each provider handles authentication and data fetching for a specific AI service.

Available Providers

Provider Command Description
OpenCode opencode-go OpenCode AI Go plan usage tracking
Codex codex Codex / OpenAI usage via Codex CLI auth

How Providers Work

Each provider implements the Provider interface:

  • Fetch() — Downloads HTML/JSON with usage data
  • Parse() — Extracts structured usage data
  • Name() — Returns provider identifier

Adding a New Provider

  1. Create a new package under internal/provider/<provider>/
  2. Implement the provider.Provider interface
  3. Register the provider in init() using provider.Register()
  4. Add HTML parsing logic if needed

Example Registration

func init() {
    provider.Register("my-provider", func(cfg *config.Config) (provider.Provider, error) {
        return New(cfg)
    })
}

Provider-Specific Documentation

  • OpenCode — Login, cookie handling, plans
  • Codex — Login, OAuth tokens, usage fetching

Clone this wiki locally