XMoni Icon
🖥️ Windows · macOS · Desktop Hardware Monitor

A Light & Elegant
Desktop Hardware Dashboard

Real-time monitoring for CPU · GPU · RAM · Network · Disks. 9 languages including EN/ZH/JA/KO/FR/DE/AR/PT/ES. DPI-aware scaling, translucent floating window, always on top.

78% GPU LOAD
XMoni V0.8.5 Screenshot

▲ XMoni Screenshot — CPU / GPU / RAM / Network / Disk Real-time Monitoring

Core Monitoring

5-in-1 real-time monitoring, precise & instant

⚡

CPU Processor

Load gauge + dual-line frequency chart. Solid blue = current frequency, dashed purple = turbo baseline. Compare boost states at a glance. Compatible with all Intel/AMD CPUs.

🎮

GPU Graphics

Core load gauge · CUDA compute (NVIDIA only) · Frequency curve · Temperature · Power · VRAM usage. Per-GPU header shows model/VRAM/CUDA. Smart brand detection: NVIDIA shows CUDA, Intel/AMD auto-hides. Intel iGPU auto-hides temperature gauges.

🧠

RAM Usage

Used/total GB + real-time percentage sparkline. Reads physical memory data with precision.

🌐

Network Traffic

Upload/download gauges with adaptive units: ≥1 MB/s → MB/s (2 decimals), <1 MB/s → KB/s (1 decimal). Triple-layer filtering excludes virtual/Bluetooth/hidden adapters.

💾

Physical Disks

WMI physical disk → partition → drive letter mapping. Per-disk used/total GB + percentage bar. Multi-disk, multi-partition. USB hot-plug devices auto-detected with [USB] label.

🎨

Deep Customization

15 color presets (incl. background/gauge/disk highlight/text) · 5 independent fonts (title/value/detail/disk model/drive info) · 9 languages with instant switch (EN/ZH/JA/KO/FR/DE/AR/PT/ES) · DPI scaling (100%/125%/150%/175%) · 50-1000ms refresh · 0-100% opacity · Glow effect · System tray · Square resolution presets.

Changelog

Version history for Windows and macOS

🪟 XMoni for Windows Windows
V0.8.5
2026-10-18
Interface Performance Texture
Show details (click to expand)

V0.8.5 — Frosted-glass surfaces + a glass / flat switch

  • Every background is now frosted glass: window body, title bar, all seven chart cards and the disk panel; each gauge also gains a glass lens so the ring no longer floats in space
  • A uniform milky, light-transmitting surface: vertical tint gradient, milky diffusion from the top, a 1px gradient rim and a whisper of bottom depth — no visible grain and no local hotspots (no DWM acrylic, so it looks the same from Windows 7 to 11)
  • Fixed horizontal banding: GDI+ gradients are quantised per scanline without dithering, so a 15-level span over 600 px produced a hard edge every 40 px. The gradient is now rasterised in-house with an 8x8 Bayer ordered dither (±0.5 LSB) — invisible, but the bands are gone; rasters are cached per size so each frame is a single blit
  • The disk panel is now dark smoked glass with the model name and percentages in opaque pure white #FFFFFF
  • The pin / close buttons became glass pills that turn red with a white inner rim and glow on hover, and switch the cursor to a hand; pressing deepens them further
  • Cached backdrop: the window background is rendered once and blitted per frame, so the glass theme costs only ~1.5-2% of one core more than the flat one (4-4.5% without the cache)
  • Settings → Effects → Surface style: a glass / flat switch with the active option highlighted; switching saves first and restarts automatically, and flat keeps the previous look exactly
  • Layout, fonts and colour settings are untouched — only the surface material changes; strings added for all 9 languages
V0.8.4
2026-10-18
Performance Memory Compatibility
Show details (click to expand)

V0.8.4 — Faster startup, fresher data, lower CPU/memory, broader hardware support

  • First frame 0.75s → 0.55s, first painted frame 0.93s → 0.66s: the context menu and tray icon are now built after the first frame, and font initialisation is de-duplicated
  • Sampling rate 1.6/s → 3.2/s: the collect loop now sleeps only the remainder of its interval, and LHM refresh is scheduled by time instead of by loop count
  • CPU load comes from the PDH % Processor Time counter (same source as Task Manager) so gauges follow the UI refresh rate
  • CPU 15.7% → 10.3% of one core: LHM is limited to the CPU/GPU nodes (memory uses PDH, network uses NetworkInterface, disks use WMI) and adapter enumeration is cached for 3 s (measured ~70 ms per call)
  • Working set 121 MB → 104 MB, private bytes 84 MB → 71 MB; a 160 s soak confirms no leak (GDI/handles flat, working set only GC sawtooth)
  • Adaptive CPU temperature sampling (2.4 s when stable, back to 1.0 s on change); disk WMI enumeration 5 s → 15 s
  • Broader platform support: three-level base-clock fallback (WMI → registry ~MHz → skip scaling), CPU name fallback via WMI, and null guards around every LHM collection — Intel / AMD / Hygon / Zhaoxin
V0.8.3
2026-10-02
Hardware support High DPI Fixes
Show details (click to expand)

V0.8.3 — CPU readout on MSR-locked machines + high-DPI / display-scaling support

  • Fixed the CPU frequency readout not matching Task Manager: on hybrid parts (e.g. 13900K) idle P-cores park at 800 MHz, so the per-core average read far too low (2558 MHz measured while the CPU ran near 5 GHz), and MSR-locked laptops were pinned at the nominal clock. Both now use the same definition as Task Manager — % Processor Performance × nominal clock (measured 4976-5018 MHz), with LHM's per-core clocks demoted to a fallback
  • Fixed CPU temperature stuck at 0 on the same machines: a literal 0 is no longer accepted as a reading (shows "--"), and a validated ACPI thermal-zone fallback runs only when LHM has no value at all (a zone that never changes is rejected as a firmware placeholder)
  • High-DPI fix: font size was scaled by the display DPI twice, so on a 4K laptop the text was oversized and the graphics tiny (font/layout ratio 0.339 at 250% vs the correct 0.178). The font scale now uses logical units, and the widget reads the real DPI of the monitor it is on and re-lays out when that changes
V0.8.2
2026-09-28
Stability Memory Performance Compatibility
View details (click to expand)

V0.8.2 — Stability hardening + memory/CPU optimisation + wider hardware support

  • Global exception guard: an error in any UI handler or timer no longer closes the app — it reports and keeps running
  • Crashes are logged to %LOCALAPPDATA%\XMoni\XMoni.error.log (capped at 64 KB)
  • Font ownership rebuilt: removes double-dispose and GDI handle leaks (renderers no longer dispose caller-owned fonts)
  • Opening Settings repeatedly no longer leaks font handles; tray tooltip / debug window / disk panel fonts are now released
  • No more per-frame GDI object creation in the render hot path; the layered Graphics is cached
  • WMI disk enumeration moved off the UI thread — disk data refreshes in the background, removing stutter
  • Sampling rate now follows the UI refresh rate; forced GC.Collect calls removed
  • CPU temperature: values outside 5–120 °C are rejected (AMD SMU failure values no longer shown as temperature)
  • CPU frequency: P-core average → all-core average → WMI → performance counter fallback chain; fixes value flicker
  • Network speed: adapter reconnect / counter wrap can no longer produce negative values or spikes
  • Fixed network up/down values "vanishing for a second": an invalid delta (adapter set changed, counter wrap) is no longer published as 0 — the last good reading is kept instead
  • Fixed sampling throttle: LHM's CPU update reads many MSRs (~380 ms/call), so updating it every cycle capped the sampler at ~1.5 Hz and left a bad sample on screen for over a second; CPU and GPU are now updated on alternating cycles
  • Fixed "takes 10+ seconds to show the UI / sometimes opens with no window": LHM's hardware enumeration (measured 3.2 s, longer with more GPUs/disks) was blocking the UI thread; it now runs on the collector thread — first frame 3.64s → 0.51s, window visible and painted 3.74s → 0.70s
  • Fixed "opens but nothing is visible" caused by an off-screen saved position: the window is now validated against the current monitor layout and moved back into view
  • Fixed multi-GPU machines showing only one GPU row (rows are rebuilt once the hardware tree is open)
  • Fixed a lost MouseUp during drag leaving the UI permanently un-repainted (appeared frozen)
  • Fixed the network gauge's coloured reading indicator disappearing entirely at a rate of 0 (a minimal tick is now drawn), plus a render-level fallback so the readout can never be blank
  • Missing fonts fall back automatically; rounded-rect drawing is guarded against degenerate rectangles
  • A missing or corrupted language file no longer prevents startup
V0.8.1
2026-06-25
Fast start GPU 9 languages
View details (click to expand)

V0.8.1 — Faster startup + LHM v0.9.6 + GPU sensor improvements

  • LHM initialisation deferred to a background thread — the UI appears instantly
  • Upgraded to LibreHardwareMonitorLib v0.9.6 (Intel iGPU temp/clock/voltage sensors)
  • New CPU temperature sparkline; new GPU temperature trend
  • Automatic GPU brand handling: CUDA shown for NVIDIA, hidden for Intel/AMD
  • Resolution presets widened by 100 px (from 700×600); CPU/GPU rows now 6 columns
  • PerfCounter de-duplicated by LUID — fixes startup delay on multi-GPU systems
  • CPU frequency now the all-core average; temperature/frequency read directly from LHM
V0.8.0
2026-06-24
UI 9-Lang DPI I18n Fixes
View details (click to expand)

V0.8.0 — 9 Languages + Five Fonts + DPI Scaling + UI Rebuild

  • 9-language support: EN/ZH/JA/KO/FR/DE/AR/PT/ES, auto-detect on first launch
  • Apply button live preview: colors/fonts/refresh/tray apply instantly
  • 5 independent font controls: Title/Value/Detail/Disk Model/Drive Info
  • Global uniform font scaling across all widgets
  • Reset Default Fonts button
  • Top-left pushpin + top-right gray close button
  • Corner radius unified at 15px (main + disk)
  • Full 9-language switching: menus/gauges/settings all i18n with instant apply
  • Settings window opens on left without overlapping main
  • Other Settings tab restructured with TableLayoutPanel
  • Adaptive network speed: ≥1 MB/s→MB/s(2dec), <1 MB/s→KB/s(1dec)
  • NVIDIA shows CUDA; Intel/AMD auto-hides CUDA; Intel iGPU hides temp gauges
  • RTX 5090 CUDA detection fix (PerformanceCounter fallback to LHM GPU Core)
  • DPI scaling support: 100%/125%/150% all adaptive
  • Memory leak fixes: GDI fonts, WMI objects, SettingsForm temp Fonts
  • GC optimization: reduced frequency + non-blocking mode
  • Disk flash fix during USB ejection
  • Tray icon cleanup on exit
V0.7.9
2026-06-23
I18n Website Fixes
View details (click to expand)

V0.7.9 — Multi-Language + Website I18n

  • Added Language/zh.json + en.json (90+ key pairs)
  • Settings: Language dropdown + Apply button + instant restart
  • All UI text internationalized (gauges, menus, tooltips)
  • New English landing page + CN/US flag language switcher
  • Mobile hamburger menu + legacy changelog fully translated
  • Fixed Apply button, text/bg color not working
  • Fixed 1650Ti dual-GPU laptop GPU load stuck at 0%

V0.7.8 — Button UX + CUDA Smart Detection + Spacing Optimization

  • Top-left pin + top-right close button with hover tooltip
  • NVIDIA shows CUDA; Intel/AMD auto-hides CUDA sparkline
  • hdrGap spacing: 2px at Mini, proportional scaling
  • Context menu "Toggle Pin" → "Always on Top"
  • Disk update: DriveInfo hotplug detection + 60s periodic refresh

V0.7.7 — Disk Fix + Uniform Spacing + Square Resolution

  • Fixed multi-letter disks not showing (Samsung 3-letter drives)
  • Disk panel min height: max(150,28%) → 168~336px
  • Square resolution presets: Mini 600 / Small 800 / Medium 1000 / Large 1200
  • Default 800×800, minimum 600×600
  • All titles with uniform 6px vertical spacing
  • Loading indicator auto-removed when data is ready
  • CUDA/VRAM font 10→9pt, no overflow on small screens
  • Removed startup delay; bitmap cache reuse for drag smoothness
  • Debug X close syncs checkbox; title simplified
  • StringFormat GDI leak fix (8 locations), GC enhancements
  • Dynamic header font scaling for 4K displays

V0.7.6 — System Tray + Menu Checkboxes + Startup Optimization

  • Added system tray icon; double-click to restore/minimize
  • Pin/Debug/Tray checkmarks synced
  • Fixed glow toggle + tray residue + drag stutter
  • Fixed Debug X close not syncing checkbox
  • Startup fix: removed 200ms delay + bitmap reuse

V0.7.5 — Title bar version number + base clock i18n

  • Title bar shows current version
  • "Base: 3000 MHz" → localized base clock label

V0.7.4 — GPU Header Full Model Name

  • GPU header shows full model: "NVIDIA GeForce RTX 4090 | 24GB VRAM | CUDA"
  • Fixed GPU gauge titles: "GPU1GPU Load" → "GPU1 Load" etc.
  • CPU and GPU header text in pure white

V0.7.3 — VRAM Usage Format

  • VRAM top-left: "0.9G" → "0.9/24G" (used/total)

V0.7.2 — CPU/GPU Info Header Row

  • Added CPU info row: model + base clock
  • Added GPU info row: model + VRAM + CUDA
  • Gauge title prefix: CPU1/GPU1/GPU2

V0.7.1 — CPU Dual Frequency Curves

  • Blue solid (current freq) + Purple dashed (turbo baseline)
  • SparklineRenderer: added dual-line rendering

V0.7.0 — Multi-GPU Support + Load Matching

  • GpuInfo data structure; dynamic multi-GPU UI
  • Sensor matching rewritten: D3D 3D + GPU Core + D3D Cuda
  • Total GPU load = max(D3D 3D, GPU Core, D3D Cuda)
  • CUDA sparkline uses real values; network triple-layer filtering
  • Auto font scaling 0.75x-1.55x; resolution presets
  • Auto disk panel font; title bar with rounded dark background
V0.6.0-0.6.34
2026-06-19 — 2026-06-20
Architecture Rebuild Performance UI Polish Bug Fixes
View details (click to expand)

V0.6.34 — Multi-GPU Support Architecture

  • GpuInfo 类 + List<GpuRow> Dynamic UI Layout
  • Sensor fallback fixes for discrete GPU load not updating

V0.6.33 — Dual GPU Compatibility

  • Priority NVIDIA(3)>AMD(2)>Intel(1), prevents iGPU from overriding dGPU data
  • Net speed FmtSpd() fix: preserves actual value when v<1 MB/s

V0.6.32 — Title Bar Redesign

  • Title bar 100px→30px, white text on rounded background

V0.6.31 — Title Fixes

  • Title color back to dark, uniform 20px rounding

V0.6.14 — 4K/High-DPI Ready

  • Font.GetHeight(g) Dynamic calculation, font cache with leak prevention
  • Intel iGPU compatible, WMI query throttling eliminates stutter

V0.6.13 — Per-Pixel Alpha Background

  • UpdateLayeredWindow + BLENDFUNCTION for glass effect

V0.6.10 — Context Menu Extension

  • Resolution/Refresh Rate/Opacity presets, large 18pt gauge text

V0.6.9 — Dependency Completion

  • BlackSharp.Core.dll + DiskInfoToolkit.dll + RAMSPDToolkit-NDD.dll

V0.6.3 — Sensor Diagnostics

  • Full dump + DiskIndex mapping + pin button

V0.6.2 — Localization + Disk WMI

  • Full label localization, Win32_DiskDrive→partition→letter mapping

V0.6.1 — Build Fixes + Layout

  • DLL reference Private=true, 5-col CPU + 5-col GPU + full-width disk layout

V0.6.0 — Full Refactor

  • UTF-8 encoding corruption → complete rewrite of all core files
  • Custom GDI+ render pipeline: GaugeRenderer/SparklineRenderer/DiskPanel
  • MainForm 560 lines: free resize + 8-direction drag + context menu + settings
  • Removed WinRing0/SuperIO/HWiNFO legacy code
V0.5.x
2026-06-19
UI Foundation Fixes
View details (click to expand)
  • V0.5h:Fixed sparkline occlusion in 900×520 window, disk panel style, added About page
  • V0.5g:GDI+ Basic Dashboard + Sparklines + Disk Panel + Debug Window + Single Instance
V0.1-0.4
2026-06
Project Inception
View details (click to expand)
  • LibreHardwareMonitor sensor backend, WinForms GDI+ basic UI
  • settings.ini persistence, PerformanceCounter+WMI data sources
  • 5D monitoring: CPU/GPU/RAM/Network/Disk, TopMost + borderless drag
🍎 XMoni for Mac macOS
2026.09.26-2334
2026-09-26
UI
View details (click to expand)

2026.09.26-2334 — Menu bar disk shows value only

  • Removed the "W" prefix from the menu bar disk readout; shows the write-speed value only (Compact + Loose)
  • Dropdown still shows full read / write speeds
2026.09.26-2326
2026-09-26
Feature Fixes i18n
View details (click to expand)

2026.09.26-2326 — Disk Write / Temp Font / Memory & Disk / Language Switch

  • Menu bar disk shows write speed only (Compact + Loose); dropdown still shows full read/write
  • Fixed CPU temperature number being smaller in Loose mode — now same height/size as the others
  • Added disk read/write rate + memory usage monitoring points
  • Added a Language menu (Follow System / 简体中文 / English); UI and settings switch together
  • Version now uses a "date-time" scheme
2026.09.26
2026-09-26
UI Feature
View details (click to expand)

2026.09.26 — Display Style (Compact / Loose)

  • New "Display Style" submenu: Compact / Loose, remembered across launches
  • Loose mode is a long strip: each metric with "number on top, label below"
  • Distribution zip named by date
v1.0.3
2026-09-26
UI Fix
View details (click to expand)

v1.0.3 — Column width by actual text

  • Column width now derives from the actual text (no template padding)
  • Strictly symmetric left/right padding (4pt each), removing right-side gap
v1.0.2
2026-09-26
UI
View details (click to expand)

v1.0.2 — Icon removed + symmetric padding

  • Removed the cpu icon from the status bar; digits only
  • Unified left/right padding (4pt each)
v1.0.1
2026-09-26
UI
View details (click to expand)

v1.0.1 — Two-row stacked compact layout

  • Status bar switched to two-row stacking (CPU block + network block), ~50% narrower
  • CPU: usage on top / temp below; Network: upload on top / download below
v1.0.0
2026-09-26
Initial
View details (click to expand)

v1.0.0 — First release

  • Menu bar resident (LSUIElement); live CPU usage / CPU temperature / network up-down
  • CPU temperature read directly via IOKit from Apple Silicon SMC — no root / admin required
  • Bilingual EN/ZH UI; ad-hoc signed
Historical versions: v1.0.3

Tech Specs

Light · Precise · Compatible

<70MB
RAM Usage
50-1000ms
Refresh Rate
5D
Dimensions
9
Languages
Multi-GPU
GPU Support
DPI
Scaling Aware

Technology Stack

Curated mature & reliable technology stack

C# .NET Framework 4.7.2 Windows Forms LibreHardwareMonitorLib GDI+ Rendering Engine WMI Queries PerformanceCounter UpdateLayeredWindow Per-pixel Alpha Transparency 9-Lang JSON Locale DPI Auto-Scaling GPU Brand Smart Detection

Get Started

Completely free · No background services · No ads · Windows & macOS

🪟 XMoni v0.8.5 XMoni-2026-10-18.zip
For Windows 10 / 11 64-bit
Requires .NET Framework 4.7.2 Runtime
✅ Stable · Crash-guarded · Leak-free · Broad hardware support
Download XMoni-2026-10-18.zip
ℹ ℹ "Unknown publisher" warning on launch?

Since the app is not code-signed (EV cert costs $300+/yr), Windows Defender SmartScreen may show "Windows protected your PC". This is a normal safety warning. How to proceed:

  1. Right-click XMoni.exe → Properties → Check "Unblock" → OK
  2. Or click "More info" → "Run anyway" in the SmartScreen pop-up
  3. No registry writes, no internet access, no background services — safe to run
💡 Run as Administrator Recommended

For more accurate CPU frequency and temperature sensor data, right-click XMoni.exe → Run as administrator. WMI hardware interface provides more complete sensor data under admin privileges.

Historical versions: v0.7.9 | v0.8.0
🍎 XMoni for Mac 2026.09.26-2334
For macOS 12+ (Apple Silicon / Intel)
Lives in your menu bar · No dependencies · Reads CPU temperature without admin rights
✅ Signed · Switchable EN/ZH UI
Download xmoniformac-2026-09-26-2334.zip
ℹ First launch says "unidentified developer"?

macOS shows a security prompt for apps not distributed via the App Store — this is normal. To open it:

  1. Unzip and drag XMoni.app into your Applications folder
  2. Right-click XMoni.app → Open, then click Open again
  3. Or go to System Settings › Privacy & Security and click "Open Anyway"
  4. No registry writes, no internet access, no background services — safe to run
💡 What it shows in the menu bar

Live CPU usage · CPU temperature · network up/down · disk write · memory. Click the icon for details (incl. full disk read/write), switch Display Style (Compact / Loose), switch Language (Follow System / 简体中文 / English), refresh and quit.

Historical versions: v1.0.3

Windows: double-click to run, no installation, config saved to C:\Users\YOUR_USERNAME\AppData\Local\XMoni
macOS: unzip and drag XMoni.app into your Applications folder