Categories: 工作・開発

ESP32でClaude API使用料金を常時監視モニタを自作、スタートレック風UIで7画面表示

Claude APIをヘビーに使っていると、今月いくら使ったか気になることがある。ブラウザでダッシュボードを開けば確認できるが、常時表示しておきたい——そう考えた制作者が作ったのが「ClaudeGauge」だ。ESP32-S3搭載の小型ディスプレイボードをデスクに置くだけで、Claude APIの利用状況をリアルタイムで確認できるオープンソースガジェットで、UIにはSFドラマ「スタートレック」に登場するコンピューターインターフェース「LCARS」のデザインを採用している。

表示できる情報は7つのダッシュボード画面に分散されており、ボタンひとつで切り替える。当日と月間のAPI利用額(ドル建て)、モデル別のトークン使用量(入力・出力・キャッシュの内訳)、Claude Codeのセッション数やコミット数・PR数・変更行数、レートリミットの残量とリセットまでのカウントダウン、WiFiやメモリ・起動時間などのシステム状態を一覧できる。

対応ハードウェアはLILYGO T-Display-S3(1.9インチ並列接続ディスプレイ、USB-C)とWaveshare ESP32-S3-LCD-1.47(1.47インチSPI接続ディスプレイ、USB-A)の2機種で、いずれも25〜40ドルで入手しやすい。

ソフトウェア構成はPlatformIO+Arduinoフレームワーク。フリッカーを抑えるためにTFT_eSPIのPSRAMスプライトを全画面で使う設計で、APIキーをコードに直書きしないキャプティブポータルによるWiFi・APIキー設定機能も備える。なお、ESP32からClaude APIのエンドポイントに直接接続しようとするとCloudflareがmbedTLSのフィンガープリントをブロックするため、Vercel Edge Functionを中継プロキシとして挟む構成になっている(CloudflareWorkerでは通らないことも確認済みだという)。カスタム画面レイアウトを設計できるWYSIWYGエディターや、ChromeからセッションキーをアシストするChrome拡張も付属する。

実装の過程でひとつはまりどころがあった。ESP32-S3でTFT_eSPIをSPIモードで使う際、ビルドフラグに-DUSE_FSPI_PORTを追加しないとbegin_tft_write()でクラッシュするという問題だ。これはESP32-S3固有の挙動で、制作者が解決策を突き止めるまでに時間がかかったとしており、README内で明示的に注意書きされている。

プロジェクトはMITライセンスで公開されており、追加ボードへの対応や新しい画面レイアウトの作成、他のAIプロバイダーAPIへの対応などへのコントリビューターを募っている。

関連情報

GitHub(dorofino/ClaudeGauge)

FabScene編集部

FabScene編集部