Skip to content

About

Native macOS menu bar app showing Claude usage and Claude Code activity at a glance

Topics

Resources

Contributing

Stars

14 stars

Watchers

0 watching

Forks

Repository files navigation

Claude Status Bar for macOS

Claude Status Bar showing Clawd activity and usage live in the macOS menu bar

CI

Native macOS menu bar app showing Claude usage and Claude Code activity at a glance. A clean-room Swift port of the idea behind claude-status-bar-kde, with multi-account support.

Menu bar label: activity text, Clawd icon, and usage percentage

Popover: active Claude Code sessions and per-account 5h/7d usage bars

Features

  • Usage at a glance — 5-hour and 7-day utilization for the active Claude account in the menu bar, color-coded (green / yellow ≥50% / red ≥80%, configurable).
  • Multi-account — add accounts natively (Add Account → claude /login) and switch the active one in-process from the popover, each with its own 5h/7d usage bars.
  • Claude Code activity — Clawd shows what your sessions are doing right now (thinking, editing, running…), with playful verbs and elapsed timers, driven by Claude Code hooks + file watching (no polling loop).
  • Settings — display style, poll interval, thresholds, per-account visibility, launch at login, hook install/remove.

Install

  1. Prerequisites

    • macOS 14 (Sonoma) or later.
    • Claude Code installed, if you want the menu bar to show live session activity (step 4 below). The app also works purely as a usage monitor without it.
    • Command Line Tools only if you're building from source — no full Xcode install needed: xcode-select --install.
  2. Get the app

    Download ClaudeStatusBar.dmg from Releases, open it, and drag ClaudeStatusBar.app to /Applications.

    To build from source instead (contributors, or Command-Line-Tools-only setups), see Build from source below, then:

    cp -R dist/ClaudeStatusBar.app /Applications/
  3. First launch / Gatekeeper

    The app is self-signed (not notarized by Apple), so macOS quarantines it and the first launch is refused ("cannot verify" / "damaged") — expected either way you installed it. Right-click the app in Applications and choose Open (twice if needed), or clear the quarantine flag directly:

    xattr -d com.apple.quarantine /Applications/ClaudeStatusBar.app

    The app lives in the menu bar only (no Dock icon) — look for its icon there after launch.

  4. Enable activity tracking

    Settings → Claude Code tab → Install. This adds hook entries for SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop, and Notification to ~/.claude/settings.json (a timestamped backup is written first; running Install again is safe — it replaces its own prior entry rather than duplicating it). Remove deletes exactly what Install added.

  5. Multi-account usage (optional)

    The app manages multiple accounts natively — switching swaps the live Claude Code-credentials Keychain item and ~/.claude.json's oauthAccount block itself, with a per-account Keychain-backed vault for the credentials of every account that isn't currently active. To add another account, click Add Account in the popover, complete the claude /login flow it opens in a terminal window, and the newly-logged-in account is captured and added as its own row.

    Each account shows up as its own row in the popover with 5h/7d usage bars; click Switch to make a different account active in-process. If a row shows re-login needed, click Log in — this switches that account live first (so the credentials claude /login renews belong to the right account, not whatever was active before), then opens a terminal window to complete the OAuth flow.

  6. Verify it works

    The menu bar label shows (depending on display style): activity text (e.g. "Editing… · 12s"), the Clawd icon, and your active account's 5-hour usage percentage. Click it to open the popover for per-account usage bars and active Claude Code sessions.

  7. Uninstall

    Settings → Claude Code tab → Remove, quit the app (menu bar icon → popover → Quit), then delete it:

    rm -rf /Applications/ClaudeStatusBar.app

Build from source

Requires macOS 14+ and Command Line Tools (no Xcode needed).

make build   # debug build
make test    # unit + integration tests
make app     # dist/ClaudeStatusBar.app
make dmg     # dist/ClaudeStatusBar.dmg

make app signs the app with a self-signed "ClaudeStatusBar Local Signing" identity, generating it into your login keychain on first run if it doesn't already exist (scripts/ensure-signing-identity.sh). Keeping this identity stable across rebuilds — rather than ad-hoc signing, which re-derives its identity from the binary's own bytes every build — is what lets macOS Keychain "Always Allow" grants (e.g. for the live Claude Code-credentials item) survive rebuilding and reinstalling the app.

Security notes

  • OAuth tokens are read from disk only at request time and sent only to api.anthropic.com. They are never logged, cached, or written elsewhere.
  • The app is not sandboxed (it must read ~/.claude).
  • The app re-asserts its trust on the live Claude Code-credentials Keychain item once per launch (skipped once already trusted), so macOS's "Always Allow" grant survives across relaunches instead of re-prompting.
  • The hook binary always exits 0 and prints nothing, so it can never block or corrupt a Claude Code session.

Contributing

Contributions are welcome. See CONTRIBUTING.md for the build/test/PR workflow, and CLAUDE.md if you're using Claude Code (or another AI coding agent) to work in this repo.

License

MIT. Clawd artwork from clawd-tank (MIT) — see LICENSE.clawd-tank.

About

Native macOS menu bar app showing Claude usage and Claude Code activity at a glance

Topics

Resources

Contributing

Stars

14 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages