1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

macのメニューバーに Claude Code の使用量を常時表示するアプリを作った

1
Last updated at Posted at 2026-05-14

リポジトリ

スクリーンショット

Screenshot 2026-05-14 at 18.47.24.png

Claude Code CLI の /usage コマンドが表示する使用量情報を、メニューバーから常時確認できるようにしたもの。

  • 5-Hour Session / 7-Day Weekly / 7-Day Sonnet の各レートリミットの消費率
  • リセットまでの残り時間
  • Extra Usage(有効時)の消費額・上限・消費率

をドーナツチャートとプログレスバーで表示する。ポーリング間隔は 1〜60 分で設定可能。

背景

Claude Code のソースコードが漏洩した際に内部実装を調査し、/usage が内部で何をしているかを特定した。具体的には以下の 3 ステップで使用量を取得している。

  1. Keychain からの OAuth トークン読み取り -- Claude Code は macOS Keychain にサービス名 Claude Code-credentials、アカウント名をローカルユーザー名として OAuth トークン (access_token, refresh_token, expires_at) を JSON で保存している
  2. Usage API の呼び出し -- 有効な access_token を Bearer トークンとして https://api.anthropic.com/api/oauth/usage に GET リクエストを送る。ヘッダーに anthropic-beta: oauth-2025-04-20 が必要。レスポンスには five_hour, seven_day, seven_day_sonnet の各 utilization と resets_at、および extra_usage が含まれる

OAuthトークンという機密情報にアクセス可能な Keychain の権限を要求することから、コードの透明性を確保するために OSS として公開せざるを得ないと判断した。

動作要件

  • macOS 14.0 (Sonoma) 以降
  • Claude Code CLI がインストール済みかつサインイン済みであること

Keychain アクセスについて

初回起動時に macOS が Keychain アクセスの許可を求めるダイアログを表示する。許可しなければアプリは動作しない。

本アプリは自前の OAuth ログインフローを持たず、トークンのリフレッシュも行わない。Claude Code が Keychain に保存済みのトークンを読み取り専用で使用する。

トークンが期限切れ(有効期限の 5 分前を含む)の場合、Claude Code によるリフレッシュを待つため 3 秒間隔で最大 3 回 Keychain を再読み取りする。すべてのリトライで期限切れのままであればエラーを表示し、次のポーリングで再試行する。

すべてのデータはローカルで処理される。認証情報および使用量データは Anthropic の公式 API エンドポイント以外には一切送信されない。

インストール

Xcode または Xcode Command Line Tools (Swift 5.9+) が必要。

git clone https://github.com/s-age/ccmeter.git
cd ccmeter
./Scripts/build.sh --install

release ビルド → CCMeter.app アセンブル → コード署名 → /Applications へコピーまで一括で実行される。

ビルドオプション

フラグ 説明
--clean ビルド前にアーティファクトを削除
--test ビルド前にテストを実行
--install ビルド後に /Applications へインストール
--skip-icon アプリアイコン生成をスキップ
--no-sign コード署名をスキップ
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?