Skip to content

Repository files navigation

SensorHUD application icon

SensorHUD

Fast, customizable PC telemetry inside Xbox Game Bar.

Latest release Windows x64 .NET 10 MIT License

Get started · Usage · Metrics · Documentation


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.

SensorHUD telemetry and settings widgets open in Xbox Game Bar

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.

Contents

Getting started

Requirements

  • 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

Install

  1. Open the latest GitHub release.
  2. Download SensorHUD-<version>-x64.zip.
  3. Extract the complete archive to a normal folder.
  4. Double-click Install.cmd.
  5. Accept the administrator prompt used to trust the yoqzii release certificate.
  6. Press Win + G, open the widget menu, and select SensorHUD.
  7. 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.

Update

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.

Uninstall

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.

Using SensorHUD

  1. Press Win + G.
  2. Open SensorHUD from the Game Bar widget menu.
  3. Move and resize the telemetry widget as needed.
  4. Select the pin button to keep it visible after closing Game Bar.
  5. 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.

Customize the overlay

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.

Format a metric

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.

Metrics

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.

Internet ping and packet loss

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.

Troubleshooting

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

Architecture and performance

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"]
Loading
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.

Documentation

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.

Building from source

Development requirements

  • 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.

Third-party software

SensorHUD uses:

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.

License

Copyright © 2026 yoqzii.

SensorHUD is released under the MIT License.

About

A fast, customizable PC telemetry widget built for Xbox Game Bar.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages