Claude Code (Max plan) の使用率を tmux / Starship に表示する

3秒まとめ
- Claude Code Max プランの5時間セッション使用率と週間使用率をカラーバーで表示
- tmux TPM プラグインと Starship カスタムモジュールの両方に対応
- OAuth トークンで使用率 API を叩き、キャッシュ付きで負荷を最小限に抑える設計
どんな人向けの記事?
- Claude Code の Max プランを使っていて、残りの使用枠を常に把握したい方
- tmux や Starship でターミナル環境をカスタマイズしている方
- CLI 環境を自分好みにいじるのが好きな方
ステータスバーの右側に、Claude Code の使用率がカラーバーで表示されています。左のバーが5時間セッション使用率、右が週間使用率です。使用率に応じて緑→黄→赤と色が変わるので、パッと見で残りの枠が分かります。
背景:なぜ tmux に表示したいのか
Claude Code を Max プランで使っていると、「今どれくらい使ったかな?」って気になりますよね。
/usage コマンドで確認できるけど、作業中にわざわざコマンドを打つのは面倒です。tmux のステータスバーに常時表示しておけば、コーディングしながらチラッと目をやるだけで使用状況が分かります。
仕組み
ポイントは以下の3つです。
- OAuth トークンで使用率 API を呼び出し: Claude Code が保持している OAuth トークンを使って、Anthropic の使用率 API からセッション/週間の利用率を取得
- 5分間キャッシュ: API を毎回叩くのは無駄なので、取得結果を
/tmpにキャッシュ。期限切れ時も古い値を即表示しつつバックグラウンドで更新 - tmux カラーコード出力: スクリプトの stdout に
#[fg=色]形式の tmux フォーマットコードを含めることで、カラフルなバー表示を実現
インストール
この仕組みを tmux TPM プラグインと Starship カスタムモジュールとして公開しました。
tmux (TPM プラグイン)
TPM (Tmux Plugin Manager) を使っている方は、~/.tmux.conf に2行追加するだけです。
# プラグイン追加set -g @plugin 'matsubo/claude-code-max-usage'
# status-right に組み込むset -g status-right "#{claude_usage}"prefix + I でインストールしたら完了です。
コンパクト表示(バーなし、パーセントのみ)もあります。
# コンパクト表示: 22%/14%set -g status-right "#{claude_usage_compact}"Starship カスタムモジュール

Starship を使っている方は ~/.config/starship.toml に追加します。
[custom.claude]command = "/path/to/claude-code-max-usage/scripts/claude_usage_starship.sh"when = "test -f ~/.claude/.credentials.json"format = "[$output]($style) "style = ""shell = ["bash", "--noprofile", "--norc"]tmux と Starship でキャッシュを共有しているので、両方使っても API コールは5分に1回だけです。
カスタマイズ
色やしきい値は tmux オプションまたは環境変数で変更できます。
set -g @claude_usage_cache_ttl 600 # キャッシュ 10分set -g @claude_usage_threshold_warn 40 # 黄色のしきい値set -g @claude_usage_threshold_crit 70 # 赤のしきい値詳細は README を参照してください。
技術的なポイント
OAuth トークンの取得
Claude Code は OAuth 認証情報を ~/.claude/.credentials.json に保存しています。ここから claudeAiOauth.accessToken を取得して API リクエストに使います。
jq -r '.claudeAiOauth.accessToken' ~/.claude/.credentials.json使用率 API
Anthropic の使用率 API は以下のエンドポイントです。
curl -s \ -H "Authorization: Bearer $TOKEN" \ -H "anthropic-beta: oauth-2025-04-20" \ "https://api.anthropic.com/api/oauth/usage"レスポンスはこんな形で返ってきます。
{ "five_hour": { "utilization": 22, "resets_at": "2026-03-02T15:00:00Z" }, "seven_day": { "utilization": 14, "resets_at": "2026-03-08T00:00:00Z" }}five_hour.utilization が5時間枠の使用率(%)、seven_day.utilization が週間の使用率(%)です。/usage コマンドで表示される値と完全に一致します。
tmux のカラー出力
tmux の #() コマンド置換では、出力に tmux フォーマットコード(#[fg=色])を含めることができます。これを利用して、スクリプトの stdout にカラーコードを埋め込んでいます。
# 使用率 50% 未満は緑、80% 未満は黄、それ以上は赤printf "#[fg=#a6da95]██#[fg=#7a839e]░░░#[fg=#a6da95]22%%"printf で % を出力するには %% と書きます。tmux の #() 出力では strftime 処理が走らないため、%% がそのまま % として表示されます。%%%% にすると %% が表示されてしまうので注意です。
キャッシュ戦略
API を毎回叩くとレートリミットに引っかかる可能性があるので、5分間のキャッシュを設けています。
ポイントは、キャッシュ期限切れでも古い値を即座に返すこと。バックグラウンドで更新するので、ユーザーは待たされません。mkdir によるロックで二重実行も防止しています。
iOS 端末での対策
Termius などの iOS ターミナルから接続すると、Nerd Font アイコンやブロック文字(█、░)が倍幅レンダリングされてステータスバーが崩れることがあります。
tmux の #{client_width} を使った条件分岐で、狭い端末ではコンパクト表示に切り替えています。
set -g status-right "#{?#{e|>=:#{client_width},120},<フル表示>,<コンパクト表示>}"依存ツール
- jq: JSON パース
- cURL: API リクエスト
- Nerd Font: アイコン表示(オプション)
まとめ
Claude Code の使用率を tmux や Starship に表示することで、コーディング中でも残りの枠を意識できるようになりました。特に Max プランでは5時間ウィンドウの制限があるので、「あとどれくらい使えるか」がチラ見で分かるのはめちゃくちゃ便利です。
TPM プラグインとして公開したので、set -g @plugin の1行で導入できます。Starship ユーザーもカスタムモジュールとしてすぐに使えます。カラーパレットやしきい値も変更できるので、好みに合わせていじってみてください。