Skip to main content

CCS Bar

CCS Bar is the native macOS menu-bar companion for CCS. It gives you a fast quota and spend glance without opening the dashboard, then lets you jump into account controls when you need them.
CCS Bar is macOS-only. It talks to your local CCS server over loopback and does not call Claude, Codex, or CLIProxy providers directly.
CCS Bar v1 expects the default local CCS data directory at ~/.ccs. Custom CCS_HOME or CCS_DIR layouts may not be discovered by the native app yet.

Current Snapshot

CCS Bar macOS menu-bar panel with sanitized quota, spend, and account rows
The screenshot uses sanitized demo account names and usage values. The layout matches the current panel structure: native subscription rows first, spend summary next, pool accounts below, and quick actions in the footer.

Install And Launch

1

Install the app

ccs bar install
This downloads CCS-Bar.app.zip from the ccs-bar-latest release and installs CCS Bar.app into ~/Applications.
2

Launch CCS Bar

ccs bar
ccs bar starts or reuses the local CCS web server, writes ~/.ccs/bar.json, and opens the native app.
3

Reinstall or remove when needed

ccs bar install --launch
ccs bar uninstall

What It Shows

Native subscription quota

Claude Code and Codex rows show quota windows, reset timing, and the tightest remaining window first.

Spend at a glance

Today, 7-day, 30-day, and month-to-date spend are pulled from local CCS usage data.

Account control

Pause, resume, set default, solo an account, or use tier-lock from the menu.

Dashboard handoff

Open the dashboard, refresh data, change icon style, or open settings without leaving the menu.

How It Works

CCS Bar loopback data flow diagram
CCS Bar reads ~/.ccs/bar.json to discover the local server:
{ "baseUrl": "http://127.0.0.1:3000", "port": 3000, "authMode": "loopback" }
The app then calls local endpoints:
EndpointUsed for
GET /api/bar/summaryaccount rows, quota, health, reset timing
GET /api/bar/summary?refresh=trueprovider-backed refresh when the menu opens
GET /api/bar/analyticsspend windows, sparkline, top models, surface breakdown
account action endpointspause, resume, default, solo, tier-lock
Provider traffic stays in CCS. The native app only talks to localhost.

Panel Map

Annotated CCS Bar panel map
The panel is organized for quick triage:
  • Header: CCS identity, app version, refresh state
  • Subscriptions: Claude Code and Codex first, sorted by the tightest quota
  • Spend: compact cost strip below quota
  • Pool accounts: CLIProxy account rows after native subscriptions
  • Footer: dashboard, icon style, settings, refresh, quit

Feedback Wanted

CCS Bar is new enough that real workflow feedback matters. Please open an issue for rough edges, missing controls, unclear quota labels, menu sizing, install friction, or any idea that would make the bar more useful.

Report an issue

Bugs, confusing states, install problems, and missing provider data.

Suggest an improvement

Workflow ideas, panel layout feedback, and new account actions.

Troubleshooting

SymptomWhat to try
App opens blankRun ccs bar again and confirm the local server is running
Install says the server predates CCS BarUpdate CCS, restart ccs bar, then reinstall
macOS blocks first launchRight-click the app and choose Open, or rerun ccs bar install
Quota looks staleReopen the menu or use the refresh action
Remote dashboard bind does not workKeep CCS Bar on loopback; v1 expects 127.0.0.1