Skip to content

Track multiple subscription plans simultaneously (Claude + Codex) #299

@SPACEMAN1898

Description

@SPACEMAN1898

Feature request: track multiple subscription plans simultaneously

Current behaviour

codeburn plan set accepts a single plan with a --provider scope (claude / codex / cursor / all). Setting a Codex plan overwrites the previously-set Claude plan, so only one provider's overage line ("X.Yx your subscription value", "vs A$X plan" bar) is shown at a time.

Use case

I'm subscribed to both Claude Max 20x ($200/mo) and ChatGPT Pro ($200/mo, tracked as codex provider in codeburn). I want the dashboard to show overage tracking for both plans concurrently — same way it already shows cost/calls/sessions for both providers in the unified report.

Suggested shape

Two ergonomic options:

  1. Multi-plan config: plan becomes plans (array or provider-keyed map) in ~/.config/codeburn/config.json. Existing plan key kept as a single-plan shortcut for back-compat.
    "plans": {
      "claude": { "id": "claude-max", "monthlyUsd": 200, "resetDay": 1 },
      "codex":  { "id": "custom",     "monthlyUsd": 200, "resetDay": 1 }
    }
  2. Per-provider plan set: codeburn plan set claude-max --provider claude and codeburn plan set custom --provider codex --monthly-usd 200 would each append/replace only the plan for that provider, instead of replacing the whole plan object.

Report impact

The 7-day / 30-day summary card would render one overage line per active plan (or stack them):

Claude Max 20x: A$4066 API-equiv vs A$276 plan  14.7x — projected month A$11,193
ChatGPT Pro:    A$xxx  API-equiv vs A$276 plan  Y.Yx — projected month A$xxx

Why this matters

For users on both top-tier plans (increasingly common), the overage view is the most actionable part of the dashboard — but it currently forces a choice. Without multi-plan, I have to swap plans manually to compare overage on each.

Happy to take a stab at a PR if the shape is acceptable. Could you signal preferred direction (multi-plan map vs. per-provider set commands) before I start?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions