「Claude Usage Bar」を公開しました! — Claude Code の使用量をメニューバーに常駐させる

こんにちは、saba です。

最近すっかり Claude Code に開発を手伝ってもらっているのですが、ひとつ困りごとがありまして。

「今、使用量どれくらい残ってる?」が、いちいち /usage を打たないと分からない。

ノッてきたところで急に制限に当たると、そりゃもう萎えます。だったら常に見えるところに出しておけばいい——というわけで作りました。

その名も Claude Usage Bar。Mac のメニューバーに、Claude Code の使用量を円ゲージ + % で常駐表示する macOS アプリです。

▶ ソースコードと導入方法GitHub - saba383810/claude-code-usage-bar Xcode 不要・Command Line Tools の Swift でビルドできます(MIT ライセンス)。

メニューバーの円ゲージとポップオーバー

なにが見えるの?

  • メニューバー: 円ゲージ + パーセントが常駐。使用率で色が変わります(70% 未満は緑 / 70–90% はオレンジ / 90% 以上は赤)。チラッと見るだけで「まだ余裕」「そろそろヤバい」が分かる
  • クリックでポップオーバー:
    • Session (5h) / Week (all models) / Week (モデル別) の各ゲージ
    • それぞれのリセット時刻と残り時間(「あと 3 時間 3 分」みたいに)
    • メニューバーに出す指標の切り替え(Session / Week 最大 / 全体の最大)

上のスクショ、Session が 79% でオレンジになってますね。これがメニューバーに出てると「あと 1 時間くらいは走れるな」と作業のペース配分ができるんです。

データ源は /usage と同じ(怪しいことはしていない)

「使用量を取る」といっても、怪しいことは一切していません。

Claude Code は macOS の KeychainClaude Code-credentials)に OAuth トークンを保存しています。Claude Usage Bar はそれを読み取って、https://api.anthropic.com/api/oauth/usage を叩くだけ。/usage コマンドとまったく同じデータ源です。

トークンを外部に送ることはありません(Anthropic の API に Authorization ヘッダとして渡すのみ)。トークンの期限が切れたら 401 が返りますが、Claude Code を普通に使えば自動で更新されるので、アプリ側はポップオーバーに「切れてるよ」と表示するだけにしています。

「出しっぱなし」に耐える常駐アプリの作法

「メニューバーに出しっぱなし」を前提にした、地味だけど大事な作り込み。

  • LSUIElement = true で Dock にアイコンを出さない(常駐ツールが Dock を占拠するとうっとうしいので)
  • ログイン項目に登録すれば起動時に自動で常駐
  • 円ゲージは NSImage に描画してメニューバーラベルに使用

技術スタック(超軽量)

  • SwiftUI の MenuBarExtra — メニューバー常駐アプリの本体
  • 外部ライブラリ ゼロ — Keychain 読み取りも API も標準フレームワークだけ
  • SwiftPM / macOS 13+ — Xcode すら要らず、./build.sh.app が組み上がる

構成もシンプルで、App.swift(メニューバー本体)/ ContentView.swift(ポップオーバー)/ UsageModel.swift(状態とポーリング)/ UsageAPI.swift(Keychain + API)/ GaugeIcon.swift(円ゲージ描画)の 5 ファイルです。

まとめ

  • Claude Code の使用量を、/usage を打たずにメニューバーで常時把握できる macOS アプリを公開
  • データ源は /usage と同じ公式 API。トークンは外に出さない
  • 使用率で色が変わる円ゲージ + リセット時刻・残り時間の表示
  • SwiftUI MenuBarExtra + 外部依存ゼロ、Xcode 不要でビルド可

Claude Code をよく使う Mac ユーザーには地味に効くはずです。「あと何分でリセットか」が見えるだけで、作業計画がだいぶ立てやすくなりました。よかったら使ってみてください。

ソースコード(GitHub)

ではでは!