TokenCheckerWin は、Claude Code と OpenAI Codex の使用率を Windows の通知領域から確認できる常駐アプリです。
Claude Code / Codex の 5時間制限・週次制限を取得し、通常モード、コンパクトモード、ミニマムモードで見やすく表示します。取得に失敗した場合でも、前回成功した使用率を表示できます。
- Claude Code / Codex の使用率表示
- 5時間制限・週次制限の表示
- Windows通知領域への常駐
- 通常 / コンパクト / ミニマムの 3 表示モード
- 使用率のバー / ドーナツ表示(サービスごとのブランド色)
- リセットまでの残り時間表示
- タイトルバーのない角丸フライアウト(どこでもドラッグ移動・Esc で閉じる)
- Claude Code / Codex のログイン補助
- 前回成功値のフォールバック表示
- Windowsログイン時の自動起動設定
- Claude Code の使用率取得には非公式の usage endpoint を利用しています
- 将来の仕様変更により取得できなくなる可能性があります
- このアプリは認証情報やトークンを保存しません
- Claude Code / Codex のログイン処理は、それぞれの公式 CLI を起動して行います
- Windows SmartScreen の警告が表示される場合があります
- Windows 11
- VS Code
- .NET 10 SDK 以降の .NET 10 互換 SDK
- Visual Studio は不要
src/TokenChecker.Core: 使用率のモデル、プロバイダ・インタフェース、アグリゲータ、各プロバイダ実装の共有ライブラリsrc/TokenChecker.Poc:UsageSnapshotを JSON で標準出力に書き出すコンソール POCsrc/TokenChecker.App: WinForms +NotifyIconの通知領域常駐アプリ
dotnet builddotnet run --project src/TokenChecker.PocPOC は Claude / Codex の UsageSnapshot を JSON で出力します。プロバイダの主な挙動は次の通りです。
claude/codexが PATH 上に存在するかをまずチェックします。- Codex プロバイダは
codex app-server --listen stdio://を起動し、stdin/stdout に JSONL を流してinitialize→account/read→account/rateLimits/readを呼びます。読み取り後は app-server プロセスを停止します。 rateLimitsByLimitIdの各エントリは汎用的にパースし、usedPercent/windowDurationMins/resetsAtが取得できた場合にRateLimitWindowとして公開します。- トークン・認証データ・メールアドレス・パス全体は読み取りも出力もしません。
- CLI が見つからない場合は
NotInstalledを返します。 - Codex のログイン未完了レスポンスは
NotLoggedInとして扱います。 - Codex の
account.typeがchatgptでない(API キー認証など)場合、使用率を取得できないことをErrorとして報告します。 - Codex の起動失敗・タイムアウト・JSON/プロトコルエラーは
Errorとして報告し、POC 全体は失敗させません。 - Claude Code の使用率取得は非公式の OAuth usage endpoint を利用しています。仕様は予告なく変わる可能性があります。
- Claude Code の OAuth 認証情報は、その endpoint に必要なアクセストークンを取り出すためだけに読み取ります。認証情報 JSON 本文、トークン、メールアドレス、パス全体を出力することはありません。
- Claude Code の
five_hourは 300 分のRateLimitWindow、seven_dayは 10080 分のRateLimitWindowにマッピングします。 - Claude Code usage endpoint の HTTP
401/403はUnauthorized、429はRateLimited、5xx・タイムアウト・JSON エラーはErrorとして報告します。 .credentials.jsonは存在するものの、その中から有効な access token が取り出せない(例:/logoutでファイルが空にされた、JSON 構造が想定外など)場合は、ErrorではなくNotLoggedInとして報告します。UI 側は「未ログイン」バッジ + 「Claude Code にログインしてください」のメッセージで案内します。
このフォルダを VS Code で開き、次のいずれかを利用します。
- ターミナル:
dotnet build - ターミナル:
dotnet run --project src/TokenChecker.Poc - タスク:
dotnet build - タスク:
run poc - デバッグ構成:
TokenChecker.Poc
タスクトレイ常駐として起動するには次を実行します。
dotnet run --project src/TokenChecker.App起動直後に状態ウィンドウを開いて確認したい場合(開発・スクリーンショット・publish 後の動作確認向け)は --show-status を渡してください。
dotnet run --project src/TokenChecker.App -- --show-status
.\publish\win-x64\TokenChecker.exe --show-status--show-status を渡さない場合は、通常通りトレイ常駐として静かに起動します。
設定ダイアログだけを開きたい場合は --show-settings を渡します。
dotnet run --project src/TokenChecker.App -- --show-settings設定ダイアログとトレイ右クリックメニューから、次の 3 つの表示モードを切り替えられます。選択値は settings.json の DisplayMode フィールドに保存されます(旧バージョン向けに CompactMode の真偽値も互換のために書き出されます)。
いずれのモードもタイトルバーのない角丸のフライアウトとして表示されます。ウィンドウのどこでもドラッグで移動でき(リンク・テキスト欄を除く)、Esc キーまたはトレイアイコンの再クリックで閉じられます。ウィンドウ位置は保存され、次回も同じ場所に開きます。
- 通常モード (Normal): Claude Code / Codex のカードを縦に並べる最も詳しい表示です。
5時間の使用率を大きな数字 + 横長プログレスバーで主役として見せ、その下に週次の使用率(数字 + 控えめな細いバー)も表示します。5時間のリセットまでの残り時間(例:あと2時間18分(11:50リセット))、状態バッジ、詳細を表示リンク(マスク済み診断情報を折りたたみ表示)も備えます。 - コンパクトモード (Compact): Claude Code / Codex を横並びの 2 カードにまとめ、
5時間のドーナツチャートとバッジ、リセット文だけを表示する省スペースモードです。表示中のサービス数に合わせてウィンドウ幅が詰まり(片方だけ表示なら 1 枚分の幅)、余白を抑えた角丸ウィンドウになります。最終更新行はこのモードでは省略します。 - ミニマムモード (Minimum): 2 サービスを 1 行ずつ(
● サービス名 ──バー── 45%)積み重ねた最小表示です。各行はサービスのブランド色(Claude=青 / Codex=紫)のドットと細い横長バーで使用率を示し、使用率に応じて 80% 以上で橙、95% 以上で赤にエスカレーションします。週次・診断・リセット時刻はこのモードでは省略します。
- 外部画像を持たず、起動時にコードでアイコンを生成します。外側リングが Claude Code、内側リングが Codex、中央の
Tグリフがアプリ識別子です。 - それぞれのリングは最大
usedPercentの値に応じて時計回りに伸び、トレイを一目見るだけで最も逼迫しているウィンドウの目安が分かります。 - 全体最悪値に応じて配色が変わります。
- 通常 (
< 80%): 青の外リング + 紫の内リング - 警告 (
>= 80%): アンバー - 危険 (
>= 95%): 赤 - エラー (両プロバイダが
NotInstalled/NotLoggedIn/Unauthorized/RateLimited/Error): くすんだ赤 - 取得前 / データなし: ライトグレー
- 通常 (
- マウスオーバーのツールチップも日本語化されており、サービスごとに日本語のステータスバッジ、または
5h X% / Weekly Y%を表示します。
このアプリは認証情報を保存しません。ログイン処理はすべて公式 CLI に委ねます。
- トレイ右クリックメニューに次の項目があります。
今すぐ更新表示モード▶(通常 / コンパクト / ミニマム)設定Claude Code にログイン/Claude Code からログアウトCodex にログイン/Codex からログアウト認証状態を再確認終了
Claude Code にログインを選ぶと、新しいcmd.exeを開いてclaudeCLI を起動します。プロンプトで/loginと入力してログインを完了し、その後に認証状態を再確認を押してください。Claude Code からログアウトも同じくclaudeを開き、ユーザーが/logoutを入力します。アプリ側で.credentials.jsonや OAuth トークンを読むことはありません。Codex にログインを選ぶと、新しいcmd.exeでcodex loginを実行します。ブラウザで ChatGPT サインインを完了したあと、認証状態を再確認を押してください。codex logoutも同じく実行できます。Codex の使用率取得は ChatGPT ログインを前提としており、API キー認証では使用率を取得できません。認証状態を再確認は単に使用率取得を再実行します。ログインが成功していればステータスが正常取得に切り替わり、リング表示も更新されます。- 設定ダイアログには
ログイン状態セクションがあり、Claude Code/Codexの現在のステータス(正常/未ログイン/CLI未検出/認証エラー/取得を一時制限中/取得失敗)と、サービス別のログイン/ログアウトボタン、共通の認証状態を再確認ボタンが置かれています。 - CLI が PATH に見つからない場合は
Claude Code CLI が見つかりません/Codex CLI が見つかりませんとメッセージを出すだけで、プロセスは起動しません。
- ステータスバッジは日本語表示(
正常取得/未インストール/未ログイン/認証エラー/取得を一時制限中/取得失敗/状態不明)です。ProviderStatusenum の英名はそのまま画面に出しません。取得を一時制限中は usage endpoint 自体が HTTP429を返したときだけ表示されます(LLM 自体のクォータ超過ではないことに注意)。 - バッジ下の本文は短いユーザ向け文(例:
Claude Code の使用率を取得できています)を表示します。claudeFound=...; usageApi=...のような生診断文字列は通常表示には出しません。 - 各カードの
詳細を表示/詳細を隠すリンクから、トラブルシュート用にマスク済みの診断情報を確認できます。
- リセットまでの残り時間はローカルタイムで表示します。
5時間ウィンドウ:あと2時間18分(11:50リセット)週次ウィンドウ:あと3日4時間(5/27 18:00リセット)
- 設定は現在ユーザーの
AppDataフォルダ配下に保存され、アプリ再起動後も維持されます。 settings.jsonには更新間隔、自動起動設定、表示対象サービス、状態ウィンドウの位置、DisplayMode(と後方互換のためのCompactMode)だけを保存します。- 設定ファイルが破損していた場合は、デフォルト設定で起動します。
- 状態ウィンドウの位置は移動・閉じる後も復元されます。保存された位置が現在のモニタ構成外にある場合は、表示領域内に補正して開きます。
- 設定で Claude Code / Codex の表示・非表示を切り替えられます。両方非表示にしてもアプリは常駐し、トレイアイコン / メニューは利用できます。
- Windows ログイン時の自動起動は、現在ユーザーの Run キーにある
TokenCheckerWinの値で管理します。publish 済みビルドは publish 済み exe のパスを登録し、開発中のdotnet実行ではdotnet "<app dll>"形式にフォールバックします。 - 更新間隔は
30秒/1分/5分/10分から選択できます。
- 取得に失敗しても、サービスごとに最後に成功した使用率を保持しているため、Claude / Codex の片方が一時的に失敗してももう片方の前回値は消えません。
- 最後に成功した Claude / Codex の使用率は、
settings.jsonと同じ AppData フォルダのlast_usage.jsonにも永続化されます。起動直後に Anthropic 側でHTTP 429を引いた場合(例: 同じ usage endpoint に対して POC を直前に実行した直後など)でも、前回の使用率がドーナツに残ったまま表示されます。 - 失敗時のバッジには現在のステータス(
取得を一時制限中/取得失敗など)が出て、本文には一時的に取得できません。前回成功値を表示していますと表示されます。次回の取得が成功するとドーナツが更新され、永続化スナップショットも上書きされます。 last_usage.jsonにはサービスごとのStatus/Windows/CapturedAtUtcの数値だけを保存し、プロバイダの診断Message文字列はnullにクリアしてから書き出します。トークン・認証情報・メールアドレス・パスは一切保存しません。
今すぐ更新を連打しても重複した更新は走らないようロックされています。- 更新中にアプリを終了するとトレイアイコンも消え、プロセスが残りません。
- Claude CLI 診断で
claude --versionがタイムアウトした場合、子プロセスは Kill されます。
- アプリは UI・ツールチップ・ログ・
settings.jsonのいずれにも、トークン・OAuth 認証情報・パス全体・メールアドレスを書き出しません。 - 通常表示には生の診断文字列(
claudeFound=true; versionPresent=true; ...、accountNull=false; ...)を出しません。詳細を表示の中だけに表示し、しかも次のマスク処理を通します。- メールアドレス風 →
<email> - 絶対パス(Windows / POSIX) →
<path> token=/secret=/key=/authorization=/bearer=の値 →<redacted>- 長い英数字の塊 →
<redacted>
- メールアドレス風 →
詳細を表示には[debug] serviceName=...; currentStatus=...; currentWindowCount=...; fallbackStatus=...; fallbackWindowCount=...;の 1 行も含まれます。これにより、画面のリングが今回取得値かフォールバック値かを生診断文字列を見ずに判定できます。- ログイン補助(
Claude Code にログイン、Codex にログインなど)は、公式 CLI を新しいcmd.exe内で起動するだけです。アプリは~/.claude/.credentials.json、~/.codex/auth.json、Windows 資格情報マネージャー、API キーなどを読みません。保存も行いません。書き込むのはsettings.json(設定のみ)とlast_usage.json(数値の使用率のみ)だけです。 - Claude Code usage endpoint は非公式で、予告なく変更される可能性があります。表示される Claude の使用率はベストエフォートとして扱ってください。
2026-05-23 に次のコマンドで動作確認を行いました。
dotnet build
dotnet run --project src/TokenChecker.Poc観測結果:
dotnet buildは成功dotnet run --project src/TokenChecker.Pocは成功- Claude は
NotInstalledを報告 - Codex CLI は検出されたがログインしていない環境のため
NotLoggedInを報告
Codex にログイン済みの環境で期待される結果:
- Codex が
Availableを報告 UsageSnapshot.Services[].Windowsに少なくとも 1 つの CodexRateLimitWindowが含まれる
その他の制約:
- POC は Codex の
chatgptAuthTokensを直接読みません。 - 出力には意図的にトークン・認証データ・メールアドレス・パス全体を含めません。
GitHub Release を作成する際の本文として、以下をそのまま貼り付けて利用できます。
TokenCheckerWin v0.4.1
Claude Code と Codex の使用率(5時間制限・週次制限)を Windows 通知領域から確認できる常駐アプリです。
主な機能:
- Claude Code / Codex の使用率をトレイアイコンとフライアウトに表示
- 用途に合わせて選べる 3 表示モード(すりガラス調のカード表示)
- 通常: 5時間を主役に、週次の細いバーも添えた詳細表示
- コンパクト: 5時間のドーナツを横並びにした省スペース表示
- ミニマム: サービスのブランド色バーで使用率だけを示す最小表示
- 各サービスのブランドに合わせた見出し(✳ Claude Code / </> Codex)
- タイトルバーのない角丸フライアウト(どこでもドラッグ移動・Esc で閉じる)
- 起動時にステータスを表示するかどうかを設定で切り替え
- リセットまでの残り時間表示と、取得失敗時の前回成功値フォールバック
- Windows ログイン時の自動起動設定
- 二重起動を防止(再起動するとすでに常駐しているウィンドウを前面に表示し、設定画面も多重に開きません)
- アプリ専用のアイコンを exe に同梱
- .NET 10 ベース(自己完結版はランタイム同梱のため .NET のインストール不要)
使い方:
1. zip ファイルをダウンロードして展開します
2. TokenChecker.exe を起動します
3. Windows 通知領域のアイコンをクリックすると使用率を確認できます
4. 未ログインの場合は、右クリックメニューから Claude Code / Codex にログインしてください
注意事項:
- Claude Code の使用率取得には非公式の usage endpoint を利用しています
- 将来の仕様変更により取得できなくなる可能性があります
- このアプリは認証情報やトークンを保存しません
- ログイン処理は公式 CLI (claude / codex) を起動して行います
- Windows SmartScreen の警告が表示される場合があります
リポジトリの GitHub description(About 欄)には、以下を設定することを推奨します。
Claude Code / Codex の5時間・週次使用率をWindowsタスクトレイに常駐表示するアプリ(通常/コンパクト/ミニマムの3表示モード)