System Info Guide

A reference for the desktest.net System Info report. Explains what each field means, why browsers deliberately limit some hardware detail, and how to use the report for ticket notes and workstation checks - without installing anything.

Open System Info ->

What does System Info report?

Six categories, read from standard browser APIs, in one click. No hardware access, no plugin, no download. Hit the button, wait about three seconds, read the report.

  1. Processor and memory. Logical processor count (navigator.hardwareConcurrency) and the browser's coarse device-memory hint (navigator.deviceMemory).
  2. Graphics (GPU). GPU renderer and vendor strings via WebGL's WEBGL_debug_renderer_info, the WebGL version and max texture size, and whether WebGPU is available.
  3. Display. Screen resolution, available area, device pixel ratio, color depth and gamut, HDR capability, whether the desktop is extended across displays, and an estimated refresh rate.
  4. Operating system and browser. OS platform and version, CPU architecture and bitness, browser brand and version, language, and time zone.
  5. Input and capabilities. Pointer and touch support, hover capability, cookies, whether the page is running as an installed app, and any connected gamepads.
  6. Network and storage. The browser's connection-class and speed estimates (Chromium), and this site's storage quota and usage.

There are no network requests in the whole report - the page's Content-Security-Policy has no connect-src, so the browser blocks outbound connections entirely and nothing about the machine can leave it.

When should I run this?

Reading the report

Each category gets a badge: Pending, Reading, Read (the browser gave everything), or Limited (the browser withheld a field, or the API is not available here). "Limited" means the browser withheld that field on purpose; it is not a bug. Every category row expands to show its detected values.

The summary panel confirms the report is ready and notes how many categories were limited. Copy Diagnostic Report writes the whole thing as plain text (including the full user agent) to the clipboard for a ticket; View diagnostic report shows that same text inline; Send to your IT drops it into an email.

What each field means

FieldWhat it is
Logical processorsHardware threads the browser will admit to, not physical cores. An 8-core CPU with hyper-threading usually reports 16.
Device memoryA coarse, privacy-rounded RAM hint (0.25, 0.5, 1, 2, 4, 8 GB), capped at 8 in most browsers. A machine with 32 GB reports "8". Chromium only.
GPU renderer / vendorThe graphics chip as the driver names it (e.g. "ANGLE (NVIDIA GeForce RTX 3060 ...)"). If it names a software renderer, hardware acceleration is off.
Device pixel ratioPhysical pixels per CSS pixel. 2.0 on a typical HiDPI / "Retina" screen at 200% scaling.
Color gamut / dynamic rangeWhether the display advertises wide color (P3 / rec2020) and HDR. Reflects the display and OS, not just the panel.
Refresh rateEstimated by counting animation frames over half a second, so it is approximate and reads the refresh of the display the window is on.
Architecture / bitnessCPU architecture (x86, arm) and 32/64-bit, from User-Agent Client Hints. Chromium only.
Storage quota / in useHow much this browser will let this website store, and how much it currently uses - not the disk's free space.

Why some detail is limited

A web page cannot read your exact CPU model, serial numbers, motherboard, installed RAM sticks, or disk size the way a native tool can - and that is deliberate. Those values are the raw material of browser fingerprinting, so browsers cap, round, or mask them:

If you need exact hardware inventory (CPU model, RAM sticks, disk serial), that genuinely requires a native agent - your RMM, Intune hardware inventory, or a desktop tool like Speccy. This report is the no-install, nothing-leaves-the-machine answer to "what is this box, roughly?"

Behind the scenes

Every field is a read of a standard API: navigator.hardwareConcurrency and navigator.deviceMemory; a throwaway WebGL context for the GPU strings (immediately released with WEBGL_lose_context); window.screen and matchMedia for the display; navigator.userAgentData.getHighEntropyValues() for OS and CPU detail where available; navigator.connection for the network hints; and navigator.storage.estimate() for the quota. The refresh-rate figure is estimated by counting requestAnimationFrame callbacks over 500 ms - handy but approximate.

There is no network code in the file - no fetch, no image beacon, nothing - and the page CSP has no connect-src, so the browser would block an outbound request even if one existed. Where a browser withholds a value (masked GPU, missing Client Hints), the field is labelled rather than guessed. The report is plain text built in memory and copied via navigator.clipboard.writeText with a synthetic textarea fallback for browsers that block clipboard write. View source to verify.

Elsewhere on the web: