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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions