Skip to main content

Pace your quota — proactive forecasting for Claude Code Max, not retroactive tracking

Project description

cc-menubar

Pace your quota — proactive forecasting for Claude Code Max, not retroactive tracking.

30+ Claude Code usage tools exist. Almost all show what you already spent. cc-menubar inverts this: instead of "how much did I use?", it answers "how far will my quota take me?"

cc-menubar menu bar icon

cc-menubar dropdown

Three Principles

Principle What it means
Forecast remaining, don't sum spent Show what's LEFT (runway), not what's USED (cost). The gauge depletes like fuel — 1.0 to 0.0.
Pace by phase Different work phases burn tokens differently. Activity classifier shows where tokens go.
Maintain headroom Don't run hot. Context Efficiency and quota pacing give early awareness, not late alerts.

Install

brew install calvindotsg/tap/cc-menubar
brew install --cask swiftbar
cc-menubar install
open -a SwiftBar

Or with uv:

uv tool install cc-menubar
cc-menubar install

Menu Bar Icon

A gauge icon showing remaining quota. The needle position reflects how much quota is left in the current window (default: 5-hour). Configurable text, color thresholds, and metric cycling.

Dropdown Sections

Section Content Visibility
Quota & Runway 5h / 7d / 7d Sonnet remaining, pace vs reset, burn rate Always
Activity (7d) Category bars with one-shot rate Always
Projects Per-project calls + subagent % Always
Tools & Commands Top tools, top bash commands Always
Opusplan Health Opus vs Haiku substitution % When Opus model detected
Context Efficiency >150K session %, P50/P90, cache hit % When sufficient data exists

Configuration

Config at ~/.config/cc-menubar/config.toml. Built-in defaults apply automatically.

cc-menubar init          # Generate commented config
cc-menubar config        # Show merged config
cc-menubar config --default  # Show all defaults

Title Options

[title]
symbol = "gauge.with.needle.fill"  # SF Symbol name
text = "none"                       # "none" | "percent" | "label"
color = "monochrome"                # "monochrome" | "threshold" | "always"
metric = "5h"                       # "5h" | "7d"
cycle = []                          # ["5h", "7d", "opusplan", "context"]

Theme

[theme]
preset = "ayu"   # "ayu" (default) or "catppuccin"

# Override individual roles
[theme.light]
success = "#custom"

[theme.dark]
success = "#custom"

Sections

[quota]
enabled = true

[activity]
enabled = true
days = 7

[tools]
enabled = true
top_n = 10

[projects]
enabled = true
[projects.aliases]
# "-Users-me-myproject" = "My Project"

CLI Commands

Command Purpose
render Output SwiftBar text (called by wrapper)
install Write SwiftBar wrapper + create config
uninstall Remove SwiftBar wrapper
init Generate config file
config Show merged config

Data Sources

  • Quota: Reads /tmp/claude-statusline-usage.json (written by Claude Code statusline)
  • Burn rate: ccusage blocks --json --active (optional, install via brew install ccusage)
  • Activity, tools, models, context: JSONL files in ~/.claude/projects/

Requirements

  • macOS 13.0+ (for variable-value SF Symbols)
  • Python 3.11+
  • SwiftBar or xbar

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cc_menubar-0.3.1.tar.gz (43.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cc_menubar-0.3.1-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file cc_menubar-0.3.1.tar.gz.

File metadata

  • Download URL: cc_menubar-0.3.1.tar.gz
  • Upload date:
  • Size: 43.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cc_menubar-0.3.1.tar.gz
Algorithm Hash digest
SHA256 6ee484d9308d693a602b7876297a548b87e4219d567cf1cb0391125f95f073b6
MD5 0ba3018e48ac97360928d2b2b16d8bbe
BLAKE2b-256 59f21f11e68910974f0efcc31dda8ddff3bfaf86f3bbcab8c8d93061c89edd1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_menubar-0.3.1.tar.gz:

Publisher: release.yml on calvindotsg/cc-menubar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cc_menubar-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: cc_menubar-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cc_menubar-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 599339f5cd77f297beaf5e126a323e6c9df27dcbe84feb29aa1e5d5d72c4d726
MD5 98a82d263997e0b9617a625ca04691c3
BLAKE2b-256 bfcfc10f1c72ff9ee01af79f0a4d7581fcb7561cc2505178057a7b29debbf430

See more details on using hashes here.

Provenance

The following attestation bundles were made for cc_menubar-0.3.1-py3-none-any.whl:

Publisher: release.yml on calvindotsg/cc-menubar

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page