SensorHUD keeps live system information visible over a game without requiring you to leave the Game Bar overlay. It is designed to remain compact, responsive, and easy to customize.
| Live telemetry | Flexible presentation | Local by design |
|---|---|---|
| CPU, GPU, memory, network, and frame-performance readings | Per-metric visibility, formats, decimals, layout, colors, and typography | No account, advertising, analytics, cloud service, or developer telemetry |
Note
Available readings depend on the sensors exposed by the computer's hardware, firmware, and drivers.
- Getting started
- Using SensorHUD
- Metrics
- Troubleshooting
- Architecture and performance
- Documentation
- Building from source
- Third-party software
- License
- 64-bit Windows 10 build 18362 or later on an Intel or AMD processor
- An up-to-date installation of Xbox Game Bar
- An administrator account or access to administrator credentials
- Developer Mode enabled for sideloading
- Open the latest GitHub release.
- Download
SensorHUD-<version>-x64.zip. - Extract the complete archive to a normal folder.
- Double-click
Install.cmd. - Accept the administrator prompt used to trust the
yoqziirelease certificate. - Press Win + G, open the widget menu, and select SensorHUD.
- Accept the SensorHUD Data Collector elevation prompt.
Important
Install SensorHUD only from this repository. The installer verifies that the MSIX package matches the included public certificate before changing certificate trust or installing the package.
The certificate is necessary because the signed MSIX is distributed directly
through GitHub. The installer adds only the public yoqzii certificate to the
Local Machine Trusted People store. It does not enable Developer Mode or
change the system-wide PowerShell execution policy.
On first use, the collector may install PawnIO 2.2.0. PawnIO provides the signed low-level driver used by supported hardware sensors. Later launches reinstall it only if it is missing, damaged, or older than the required version.
Select Check for updates in the settings widget's About SensorHUD
section. If a newer stable release is available, SensorHUD opens its GitHub
download page in the default browser. Download and extract the new release,
then run its Install.cmd. Windows replaces the package while preserving
SensorHUD's local settings.
SensorHUD supports only its current settings schema. An invalid or incompatible settings file resets safely to the current defaults.
Run Uninstall.cmd from the extracted release folder. It removes the
application package and its trusted release certificate.
PawnIO is installed system-wide and may be shared with other monitoring software, so SensorHUD leaves it installed. If it is no longer needed, remove PawnIO separately from Windows Settings > Apps > Installed apps.
- Press Win + G.
- Open SensorHUD from the Game Bar widget menu.
- Move and resize the telemetry widget as needed.
- Select the pin button to keep it visible after closing Game Bar.
- Select the widget's settings button to open SensorHUD Settings.
The settings page also shows collector health, PawnIO availability, frame capture state, detected hardware, the latest snapshot time, and the most recent connection error.
Settings are saved automatically. You can:
- Show or hide each metric.
- Choose vertical or horizontal layout.
- Change the horizontal separator.
- Select the font family, weight, and size.
- Align telemetry text horizontally and vertically.
- Adjust background opacity.
- Set a format and colors independently for every metric, plus decimal places
for numeric metrics. Literal text plus
{device}/{name}use one color, while{value},{unit}, and the clock output use another. Color flyouts accept editable ARGB hex values. - Configure each detected GPU independently.
Select the metric-count button on a category to open its metric editors in a focused, scrollable panel. This keeps the settings page compact as more categories and metrics are added.
Use Reset settings at the bottom of the settings widget to restore current defaults.
Numeric metric formats can contain these tokens:
| Token | Output |
|---|---|
{name} |
Metric name |
{value} |
Numeric reading |
{unit} |
Unit such as %, GB, or ms |
{device} |
Detected device name, or the category name as a fallback |
The Clock metric uses its Format field directly as a .NET custom date/time pattern:
| Desired output | Metric format |
|---|---|
8:42 PM |
h:mm tt |
8h42 PM |
h'h'mm tt |
20h42 |
HH'h'mm |
20:42:12 |
HH:mm:ss |
08:42:12 PM 25/08/2026 |
hh:mm:ss tt dd/MM/yyyy |
Here, h selects a 12-hour clock, HH selects a two-digit 24-hour clock,
mm and ss are minutes and seconds, MM is the month, and tt is the
AM/PM designator. Text inside single quotes is displayed literally.
For example:
{device} Temp: {value}{unit}
can render as:
NVIDIA GeForce RTX 4080 Temp: 64°C
Numeric metrics can use their default decimal count or zero, one, or two decimal places. Values are rendered slightly larger than units for quick scanning.
| Category | Available metrics |
|---|---|
| Frame Rate | FPS, 1% Low, and average frametime for the selected presenting foreground process |
| CPU | Total load and package temperature |
| GPU | Load, temperature, VRAM usage, VRAM used, and VRAM total for every detected adapter |
| Memory | Physical-memory usage, memory used, and memory total |
| Network | Upload and download throughput, Internet ping, and packet loss |
| Date & Time | Local date and time in a customizable pattern |
Every GPU is treated as an independent device. SensorHUD creates a separate settings card and saved preferences for each adapter detected by LibreHardwareMonitor.
Ping and packet loss measure general Internet-path stability, not a game server or the foreground process.
The collector selects between Cloudflare
1.1.1.1 and
Google Public DNS
8.8.8.8, then
sends one asynchronous ICMP probe per one-second sampling interval to the
selected endpoint. It keeps a bounded rolling window of 20 attempts:
- Ping is the average round-trip time of successful replies.
- Packet Loss is the percentage of failed attempts.
- After three consecutive failures, both endpoints are tested again.
Some networks block ICMP while allowing normal Internet traffic. In that case, these metrics can be unavailable even though browsing and games still work.
| Symptom | What to check |
|---|---|
| A temperature or hardware metric is unavailable | Confirm that the hardware, firmware, and driver expose the corresponding sensor |
| FPS remains unavailable | Reopen SensorHUD, accept the collector elevation prompt, and ensure a foreground application is presenting frames |
| Ping and packet loss are unavailable | The network or router may block ICMP; ordinary Internet traffic can still work |
| A GPU is missing | Check whether LibreHardwareMonitor detects that adapter |
| The widget shows no telemetry | Open SensorHUD Settings and review collector state and the latest connection error |
| Settings appear invalid after an update | Use Reset settings; SensorHUD intentionally supports only the current schema |
flowchart LR
G["Xbox Game Bar"] --> W["UWP widget"]
W -->|"launches"| C["Elevated collector"]
C -->|"secured named pipe"| W
C --> T["Telemetry providers"]
T --> L["LibreHardwareMonitor"]
T --> P["PawnIO"]
T --> E["DXG ETW"]
T --> I["Internet path probes"]
| Project | Responsibility |
|---|---|
SensorHUD |
Packaged UWP frontend: widget lifecycle, settings, presentation, and collector reconnection |
SensorHUD.Collector |
Elevated, windowless backend: PawnIO, LibreHardwareMonitor, ETW, sampling, and pipe server |
SensorHUD.Core |
Shared metric registry, settings model, telemetry contracts, protocol envelope, and JSON metadata |
The privileged collector is isolated from the widget. Communication uses a package-scoped named pipe with client identity verification and a strict, size-limited, length-prefixed protocol.
Recurring work is intentionally bounded:
- Hardware uses one shared update and enumeration pass.
- DXG ETW is filtered to frame-presentation events.
- Frame and Internet histories use fixed windows.
- The pipe keeps only the newest pending snapshot.
- The widget reuses existing XAML elements when structure is unchanged.
- A failed provider does not suppress independent metrics.
Settings use the current schema without a migration layer. Unknown properties or invalid JSON reset the file to current defaults; valid current-schema values are normalized to supported ranges.
| Document | Purpose |
|---|---|
| Extending SensorHUD | Architecture and recipes for metrics, categories, providers, and widget settings |
| Privacy policy | Local data handling and Internet stability probes |
| Third-party notices | Dependency licenses and source information |
The extension guide explains the settings and telemetry architecture, registry metadata, override persistence, global/per-device/mixed categories, stable device identities, provider ownership, and validation.
- Visual Studio with MSBuild, UWP, MSIX packaging, and C++ x64 build tools
- .NET 10 SDK
- Windows SDK 10.0.26100
- Xbox Game Bar
Open SensorHUD.slnx, select the x64 platform, and build the solution.
See Extending SensorHUD for the recommended validation checklist.
SensorHUD uses:
- PawnIO
- LibreHardwareMonitor
- Microsoft TraceEvent
- Microsoft Gaming Xbox Game Bar SDK
- C#/WinRT
Licenses and source information are documented in THIRD-PARTY-NOTICES. PawnIO's license text and corresponding source archives are included in both the repository and release package.
Copyright © 2026 yoqzii.
SensorHUD is released under the MIT License.

