Skip to content

Repository files navigation

sysmeters

日本語 English Release License Build

Windows 11 用のリアルタイムシステムリソース監視 HUD アプリケーションです。

CPU、GPU、メモリ、ディスク I/O、ネットワーク通信量に加え、
Claude Code のレートリミット使用状況をコンパクトなオーバーレイ GUI でモニタリングします。

sysmeters

タスクトレイアイコンの右クリックメニュー「表示項目」から、CPU、GPU、メモリ、ディスク、ネットワーク、Claude の各セクションを個別に ON/OFF でき、ディスクはさらにドライブ単位でも切り替えられます。必要なカテゴリだけを残してウィンドウを小さくする用途にも使えます。下図は CPU と Claude のみを表示した例です。

表示項目を絞った例

サブアカウントを有効化すると、Claude セクションをメイン / サブの 2 アカウント分縦に並べて同時表示します。下図がその表示例です。5h / 7d バー上の濃色は直近 N 分間で増えた使用率を示し、消費ペースを可視化します。

Claude マルチアカウント表示

各種警告閾値を超えたタイミングで Toast 通知を表示します。通知の ON/OFF はタスクトレイアイコンの右クリックメニューから切り替えられます。

Toast 通知

機能

  • CPU:全体使用率(面グラフ)、ハードフォールト、論理コア別使用率(縦バー)、温度、システム統計(Proc/Thread/Handle)を表示
  • GPU:使用率(面グラフ)と温度を表示(NVIDIA NVML 経由)
  • RAM:使用率(横バー)と使用量/総量を表示
  • VRAM:使用率(面グラフ)と使用量/総量を表示(NVIDIA NVML 経由)
  • Disk I/O:固定ドライブを自動検出し、Read/Write 速度、使用率、使用量/総量、S.M.A.R.T. 書き込み量をドライブ別に表示
  • Network:全 NIC 合算の送信/受信速度を分離して表示
  • IP:グローバル IP アドレスを表示(オフライン時は NO INTERNET📵)
  • OS:OS 名と連続稼働時間を表示(稼働日数が閾値を超えると警告色)
  • Claude Code:5h / 7d レートリミット使用率とリセット時刻、セッション数を表示(メイン / サブの 2 アカウントを同時表示できる)
  • Claude Code nudge:レートリミットのリセット後に消費が始まっていない間隙を検知して claude.exe を自動起動
  • トッププロセス表示:CPU / GPU の面グラフ内に、使用率トップのプロセス名と使用率を表示
  • 表示項目の切り替え:CPU、GPU、メモリ、ディスク、ネットワーク、Claude の各セクションを個別に ON/OFF(ディスクはドライブ単位でも切り替え可能)
  • コンパクト表示:グラフ・フォントを含む全体を 3/5 に縮小表示
  • 更新確認:起動時に GitHub の最新リリースを確認し、新版があれば Toast 通知とタスクトレイメニューで通知
  • 警告音:監視項目が警告閾値を超えると alert.wav を再生
  • Toast 通知:閾値超過時に OS の Toast 通知でどの項目が超過したかを通知

Direct2D による GPU アクセラレーション描画で滑らかな表示を実現しています。

ディスクの表示

起動時に実在する固定ドライブ(C: 以降レター順、最大 8 台)を自動検出します。Google ドライブ等、固定ドライブを名乗る仮想ドライブは、物理ディスクの実体が無いため除外します。タスクトレイの「表示項目」からドライブ別に表示 ON/OFF を切り替えられます。非表示の間も空き容量と S.M.A.R.T. 警告の監視は継続します。

トッププロセス表示

CPU / GPU の面グラフ内に、使用率トップのプロセス名と使用率を chrome 28% の形式で表示します。同名 exe(Chrome の複数プロセス等)は合算し、.exe を除いた名前で表示します。

CPU は 0.9 秒間隔で各プロセスの使用時間の増分を測り、システム全体を 100% とする尺度で求めます。GPU は約 2.7 秒間隔で描画・演算エンジンの使用率をプロセス単位に集計し、その最大値を採ります。同率(四捨五入した整数 % が同値)の間は直前に表示したプロセスを維持し、表示の入れ替わりを抑えます。

タスクトレイメニューの「トッププロセス表示」で ON/OFF を切り替えられます。OFF の間は収集自体を停止します。設定はレジストリに残り、再起動後も維持します。デフォルトは ON です。

負荷が特定プロセスに偏っていない状態では表示を隠します。一度表示した後は各閾値の 8 割を下回るまで表示を維持します(境界付近の点滅防止)。表示条件を失った後も、最後に表示していたプロセス名と使用率を一定時間だけ凍結して薄く表示し続け、一瞬のスパイクの見逃しを防ぎます(残像表示。表示条件が再成立すると即座に実測値へ置き換わります)。

Claude Code の表示

5h / 7d レートリミット使用率(横バー)とリセット時刻、セッション数を表示します。メイン / サブの 2 アカウントを縦並びで同時表示できます。

  • 横バー上の緑の縦線は均等消費ペースマーカー(リセットまでの残り時間で均等に消費した場合の理想消費位置)
  • 5h バーの右側(7d リセット日時の月数字と桁が揃う位置)には、7d リセットまでに実行できる 5h ターンの残数(進行中のターンを含む)を表示
  • 5h / 7d バーには直近 N 分間で増えた使用率を濃色(RAM の WSL オーバーレイと同色)で重ね塗りし、消費ペースを視覚化
  • ヘッダ行の取得時刻の左には、直近(デフォルト 5 分以内)に消費がある間だけ濃色と同色のドットを明滅表示
  • 7d バーの上端にある小さな三角は到達限界線(今から 5h 枠を 90% で回し続けても 7d の 100% に届かなくなる概算位置。塗りが三角より左なら到達不能)
  • 到達限界線の 5h→7d 換算率は実測の累積比から自動推定する(5h の 1/5 ウィンドウ分の消費を観測するまでと、リセット時刻を返さないアカウントでは非表示)
  • 7d バーの直下には、上位モデル(Fable 等)専用 7d 枠の消費率を示すグレーのミニバーを表示(Usage API が専用枠を返すアカウントのみ)
  • 専用枠が 100% に到達するとミニバーが警告色に変わり、アカウント別に警告音と Toast 通知を発する(100% 未満へ戻るとリセット)
  • 毎時 0 分に最新データを強制取得
  • セッション数は各 claude.exe プロセスの CLAUDE_CONFIG_DIR 環境変数から判別し、アカウントごとに分けてカウント
  • Sessions ラベルの左には直近の Usage API 取得時刻(HH:MM 形式、時はゼロ埋めなし)を同色・同サイズで表示し、表示データの鮮度を確認できる
  • Usage API を取得できない間は、プラン名の右に赤字で Err を表示
  • 未ログイン(OAuth トークン未取得)の間は取得可否に依らず Logout を表示し、claude login での再認証が必要

Claude Code nudge

5h ウィンドウのリセット通過後にレートリミット消費が始まっていない間隙を検知したタイミング(起動直後を含む、間隙ごとに原則 1 回)で claude.exe を自動起動し、次のウィンドウでのレートリミット消費を促す機能です。デフォルトは OFF です。

起動した claude.exe が消費に至らず間隙が続く間は、初回を含めて 30 分間隔で 3 回まで実行します。再試行がないと、一度の空振りで以降 sysmeters を再起動するまで nudge が発火しなくなるためです。3 回使い切った後も間隙が続くなら、前回実行から 5 時間経過するごとに 3 回分を数え直します。起動した claude.exe の終了コードはログに記録します。

Usage API 取得失敗(Err 表示)中も、把握済みの 5h リセット時刻を通過したら推定発火します(新ウィンドウ開始の有無は確認できないため。認証切れ由来の Err では claude.exe の起動がトークン更新で Err を治癒することがあります)。

起動コマンドは両アカウント共通で、サブ実行時は CLAUDE_CONFIG_DIR 環境変数にサブアカウントの設定ディレクトリを一時設定した状態で起動します(Claude CLI に --config-dir コマンドオプションは存在せず、設定ディレクトリの上書きは環境変数経由のみです)。

警告色

各メトリクスが設定ファイルの閾値を超えると、該当するテキストやバーが赤色に変化します。温度は 3 段階(通常:グレー → 注意:オレンジ → 危険:赤)で色分けします。警告色の判定は瞬間値に基づきます。

警告音

いずれかの監視項目が閾値を超えると alert.wav を再生します。ヒステリシス機構により、リセット閾値を下回るまで同一項目の警告音は再鳴動しません。CPU、GPU、RAM、VRAM の警告音は瞬間スパイクによる誤警告を防ぐため、直近数サンプルの平均値で判定します。

  • BLE ヘッドフォンの省電力移行で冒頭が途切れる問題に対応し、再生前後に 19kHz 不可聴トーンを挿入
  • WASAPI 共有モードで再生するため、他のアプリケーションの音声と共存

通知の抑制

フルスクリーンアプリ(ゲーム・プレゼン等)の実行中は、Toast 通知と警告音を自動抑制します。

  • 抑制の ON/OFF はタスクトレイメニューの「フルスクリーン時は通知しない」で切り替え可能(デフォルト ON)
  • 抑制中でも通したい警告は「常に警告通知を有効にする」で項目別(CPU 使用率 / CPU 温度 / GPU 使用率 / GPU 温度 / ディスク温度)に例外指定できる
  • 例外指定を ON にした項目は抑制中でも Toast と警告音を発する(デフォルトは温度系 3 項目が ON)
  • 抑制が働いている間は、ウィンドウタイトルが sysmeters (fullscreen:silent) 表示になる
  • Toast 通知そのものの ON/OFF もタスクトレイメニューで切り替え可能(設定はレジストリに保持)

Claude Code の警告条件

Claude Code セクションは条件が多いため、色ごとに分けて整理します。

パーセンテージ文字色

状態 条件
通常色 均等消費ペース位置(緑線)以下
均等消費ペース位置(緑線)を超過
使用率が 100% に到達、または均等消費ペース位置からの超過率が閾値以上

黄・赤への変化はアカウント別に警告音・Toast 通知を伴います。 7d バーが警告中の間は、バー左端に警告解除までの残り時間を黒字で表示します(60 分以内は -20m のように分単位、60 分超は -1.1h のように時間単位。塗り幅が文字表示に足りない低使用時は非表示)。

超過料金テキスト

プラン上限超過分を従量課金するアカウントでは、ヘッダ行に超過額 $X.X を表示します。超過額が閾値を超えると赤文字になります。

バー背景色(使い切り不能検知)

7d バー専用の表示です。直近の平均消費ペースのままでは目標使用率に届かない=挽回不能と判断すると、7d バーの未使用部分の背景を暗青色に変えます。表示のみで警告音・Toast は発しません。次のすべてを満たしたときのみ発生します。

  • 現在の使用率が均等消費ペース位置(緑線)以下である(ペース超過中は表示しない)
  • 7d ウィンドウ開始(リセット)から猶予時間(デフォルト 48 時間)以上経過している
  • 直近の実測平均消費ペースで残り時間を消費し続けても、予測到達率が目標値(デフォルト 98%)に届かない

ペースの基準点は約 12 時間前のサンプルで、無ければ最古サンプル(30 分以上経過時)、アプリ停止明けは停止前最後のサンプル(アンカー)で代用します。ペースが推定できない間(履歴の観測時間が 30 分に満たないとき、直近の増加がないとき)は判定しません。

7d の履歴は %LOCALAPPDATA%\sysmeters にファイル保存し、停止前最後のサンプルをアンカーとして最大 24 時間(窓幅の 2 倍)保持します。sysmeters や OS を再起動しても停止前からの実質ペースで判定を継続でき、24 時間を超える停止後は履歴を作り直して約 30 分で判定を再開します。

インストール

動作要件

  • Windows 11(64bit)
  • 管理者権限は不要
  • CPU 温度を表示するには PawnIO ドライバ のインストールが必要(winget install namazso.PawnIO

手順

リリースの ZIP から

リリースページの ZIP をダウンロードします。次に任意のディレクトリへ展開します。

Scoop から

Scoop でインストールできます。

scoop bucket add aviscaerulea https://github.com/aviscaerulea/scoop-bucket
scoop install sysmeters

アンインストール

アンインストールしても、次のレジストリ設定とキャッシュディレクトリは残ります。不要であれば手動で削除してください。

  • HKEY_CURRENT_USER\Software\sysmeters(タスクトレイメニューで切り替えた表示設定)
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runsysmeters 値(スタートアップ登録を ON にしたとき)
  • %LOCALAPPDATA%\sysmeters(Claude Code の使用状況キャッシュ)

使い方

Scoop でインストールしたときは、完了と同時に起動します。以降は sysmeters コマンドでも起動できます。

ZIP を展開したときは、展開先の sysmeters.exe を実行します。設定ファイルと警告音は実行ファイルと同じディレクトリから読み込むため、展開したファイルは分けずにまとめて置いてください。

タスクトレイ(通知領域)にアイコンを表示します。アイコンを左クリックすると、最小化中のウィンドウを復元して一時的に最前面へ表示します(フォーカスは移しません)。右クリックメニューでは、常に最前面に表示、コンパクト表示、トッププロセス表示、Toast 通知、Windows スタートアップ登録の切り替えと、表示項目の選択、設定ファイルとログファイルを開く操作、終了ができます。メニュー先頭にはバージョンを表示し、新しい版があればクリックで配布ページを開けます。

設定

sysmeters.toml で外観(背景色、グラフ色)、警告閾値、プロセス優先度の自動制御等をカスタマイズできます。sysmeters.local.toml があれば、その値が sysmeters.toml の設定を上書きします。

Tip

設定は sysmeters.toml を直接編集せず、同じディレクトリに sysmeters.local.toml を作り、デフォルトから変更する項目だけを記述するのがお勧めです。バージョンアップで sysmeters.toml が更新されても設定内容を移行する手間がありません。廃止された設定項目が sysmeters.local.toml に残っていても無視され、動作はデフォルトに従います。

主要な設定セクションは以下のとおりです。

セクション 内容
[window] 初期表示位置とウィンドウ幅
[color] 背景色、グラフ色、バー色
[threshold] 警告閾値、リセット閾値、警告音の有効/無効、平均判定のサンプル数
[claude] Claude Code セクションの表示調整、nudge、使い切り不能検知
[claude_sub] サブアカウントの有効化と設定ディレクトリ
[topproc] トッププロセス表示の出現条件と残像表示の長さ
[guard] BLE ヘッドフォン対策の不可聴トーン長
[process] プロセス優先度の自動制御
[log] ログの出力先ディレクトリ
[update] 起動時の更新確認の有効/無効

サブアカウントを有効化する最小例です。config_dir にはサブ用 .claude/ ディレクトリの絶対パスを指定します。

[claude_sub]
enable     = true
config_dir = "C:\\Users\\xxx\\.claude-sub"
# name         = "Sub"     # 任意。ヘッダ表示名(省略時 "Claude")
# nudge_enable = false     # 任意。nudge_cmd は [claude] と共通

制限事項

  • GPU と VRAM の監視は NVIDIA GPU(NVML)のみに対応し、NVML が無い環境では該当セクションを表示しない
  • CPU 温度の表示には PawnIO ドライバが必要で、未導入の間は温度を表示しない
  • Disk I/O の表示は固定ドライブ最大 8 台まで
  • Claude Code セクションは claude login によるログイン済みが前提で、未ログインの間は Logout を表示

About

Real-time system HUD for Windows 11 — CPU/GPU/Memory/Disk/Network + Claude Code rate limit overlay via Direct2D

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages