AI.

Claudeを使っていると、5時間制限と週の制限がどのくらい消費されているか気になることがあります。確認するたびにブラウザを開くのが少し手間だったので、Macのメニューバーに常時表示できるツールを自作しました。メニューバーにAnthropicロゴ風のアイコンとともに、こんな形式で表示されます。

左から順に、5時間制限の使用率、そのリセット時間、7日間制限の使用率です。5時間の使用率が80%を超えると文字が薄い赤に変わるので、ひと目で気づけます。アイコンをクリックするとドロップダウンで詳細も確認できます。

使用量はどうやって取得しているのか

最初に悩んだのがここです。Claude.aiには使用量を取得するための公開APIがないので、ブラウザのスクレイピングやログファイルの解析が必要かと思っていました。調べてみると、Claude Code CLIにはstatusLineという公式機能があります。APIのレスポンスを受け取るたびに、使用状況のJSONデータを指定したシェルスクリプトにリアルタイムで渡してくれる仕組みです。このJSONにはPro/Maxプランの5時間・7日間の使用率やリセット時間が含まれています。データ取得のためにAPIを追加で呼び出すわけではないので、トークンは消費しません。

しかし、ひとつ重要な制約があります。Claude Code CLIでClaudeを動かしているときだけ、表示が更新されます。Claude.aiのデスクトップアプリやブラウザで会話していても更新されません。VS Code拡張もGitHubにissueが上がっているものの、現在では非対応。Claude Code CLIをメインで使う場面でのモニタリングツールという位置づけです。

今回は脆弱性や更新の手間が心配だったので、SwiftBarなどの外部ツールは使わない方針としました。そこで、macOSに標準で付属しているswiftcコンパイラでSwiftのソースコードをコンパイルし、バイナリを生成しました。自動起動もmacOS標準のLaunchAgentで設定しています。アイコンも画像ファイルは使わず、SwiftコードでCGContextを使って直接描画しています。外部依存はゼロです。ソースコードが手元にあるので、何をしているかが完全に把握できます。

そしてSwiftは書いたことがなかったのですが、当然ながらAIに書いてもらうので問題なし。要件さえ決まれば実装はあっという間でした。Claude Codeをよく使う方には地味に便利なツールです。同じようなものを作りたい方の参考になれば幸いです。

広島ブログ

このブログeshima.info(えしまドットインフォ)は
ビジネスやマーケティング、IT活用の記事を書いています。
ブログ購読はこちらのページをご覧ください。

Comments are closed.