A minimal, cross-compatible CPU/GPU telemetry monitor with accurate data directly from vendor APIs and beautiful ASCII visualization.
moritz@opencl-pc:~/hw-smi$ sudo bin/hw-smi --bars

moritz@opencl-pc:~/hw-smi$ sudo bin/hw-smi --graphs

| Metric (Windows/Linux) |
CPUs Win32/ /proc |
Nvidia GPUs NVML |
AMD GPUs ADLX/AMDSMI |
Intel GPUs SYSMAN |
|---|---|---|---|---|
| device name | ✅/✅ | ✅/✅ | ✅/✅ | ✅/✅ |
| per-core/avg usage [%] | ✅✅/✅✅ | ✅✅/✅✅ | ✅✅/✅✅ | ✅✅/❎✅ |
| memory bandwidth [MB/s] | ❌❌/❌❌ | ✅✅/✅✅ | 🟨🟨/✅✅ | ❎❎/❎❎ |
| memory occupation [MB] | ✅✅/✅✅ | ✅✅/✅✅ | ✅✅/✅✅ | ✅✅/✅✅ |
| temperature [°C] | 🫠✅/✅✅ | ✅✅/✅✅ | ✅✅/✅✅ | ❎✅/❎✅ |
| power [W] | ❌❌/❌❌ | ✅✅/✅✅ | ✅✅/✅✅ | ❎✅/✅✅ |
| fan [RPM] | ❌❌/❌❌ | ✅🟨/✅🟨 | ✅✅/✅🟨 | ✅🟨/🫠🟨 |
| core clock [MHz] | 🟨🟨/✅🟨 | ✅✅/✅✅ | ✅✅/✅✅ | ✅✅/✅✅ |
| memory clock [MHz] | ❌❌/❌❌ | 🫠🫠/🫠🫠 | ✅✅/✅✅ | ✅✅/🫠✅ |
| PCIe bandwidth [MB/s] | 🟨🟨/🟨🟨 | ✅✅/✅✅ | ❌❌/🫠✅ | ❎✅/❎❎ |
| Legend | Description |
|---|---|
| AB/CD | A current value (Windows), B max value (Windows)C current value ( Linux ), D max value ( Linux ) |
| ✅ | supported and working |
| ❎ | supported and working, but administrator/sudo permissions required |
| 🟨 | vendor API does not directly provide metric, but workaround/estimate/default possible |
| 🫠 | available but broken in vendor API |
| ❌ | unavailable in vendor API and no suitable default value possible |
API issues submitted
- Download and install Visual Studio Community. In Visual Studio Installer, add:
- Desktop development with C++
- MSVC v142
- Windows 10 SDK
- Download and unzip hw-smi.
- Open
hw-smi.vcxprojin Visual Studio Community. - Compile by clicking the ► Local Windows Debugger button.
- Go to
hw-smi/bin/folder and double-clickhw-smi.exe. - Alternatively, run from CMD:
hw-smi.exe hw-smi.exe --bars hw-smi.exe --graphs hw-smi.exe --log hw-smi.exe --help
- Note that it will also work without
administratorpermissions. However, some telemetry counters on Intel GPUs are not available withoutadministratorpermissions.
- Clone from GitHub:
git clone https://github.com/ProjectPhysX/hw-smi.git && cd hw-smi
- Compile:
chmod +x make.sh ./make.sh
- Run:
sudo bin/hw-smi sudo bin/hw-smi --bars sudo bin/hw-smi --graphs sudo bin/hw-smi --log sudo bin/hw-smi --help
- Note that it will also work without
sudo. However, some telemetry counters on Intel GPUs are not available withoutsudo.
- Run hw-smi with the
--logcommand-line option. This will write all telemetry data into a filehw-smi-YYYY-DD-MM-hh-mm-ss.loglocated next to the hw-smi executable. - The telemetry data in the file is formatted as follows:
, Intel Core i7-8700K , NVIDIA TITAN Xp Date Time , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, CPU, RAM , Tmp, Clk , PCIe BW, GPU, BW , VRAM , Tmp, Pwr , Fan , CClk, MClk, PCIe YYYY-MM-DD hh:mm:ss.ss, %, %, %, %, %, %, %, %, %, %, %, %, %, MB, 'C, MHz, MB/s, %, GB/s, MB, 'C, W, RPM, MHz, MHz, MB/s Hardware Specs , 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 16250, ?, 5000, 3936, 100, 548, 12288, 100, 250, 5000, 1911, 1426, 3936 2026-08-19 17:01:46.29, 0, 5, 0, 0, 11, 0, 5, 0, 0, 0, 0, 0, 4, 7953, ?, 3696, 0, 0, 0, 163, 35, 16, 1150, 139, 101, 0 2026-08-19 17:01:46.69, 8, 2, 2, 14, 14, 2, 8, 2, 26, 2, 8, 2, 3, 7952, ?, 3696, 0, 0, 0, 163, 35, 16, 1150, 139, 101, 0 2026-08-19 17:01:47.05, 10, 0, 10, 4, 22, 0, 10, 0, 10, 0, 16, 4, 7, 7946, ?, 3696, 0, 0, 0, 163, 35, 16, 1150, 139, 101, 0 2026-08-19 17:01:47.41, 12, 12, 0, 17, 0, 0, 12, 0, 6, 0, 0, 12, 8, 7940, ?, 3696, 0, 0, 0, 163, 35, 16, 1150, 139, 101, 0 2026-08-19 17:01:47.79, 8, 8, 8, 14, 0, 0, 8, 0, 0, 2, 2, 0, 8, 7930, ?, 3696, 0, 0, 0, 163, 35, 16, 1150, 139, 101, 0