Hardware & Capabilities · Browser Tests

Device & Hardware Info

Read the hardware your browser exposes: CPU cores, memory, GPU renderer, touch points and battery.

Reading device signals…
—
CPU threads
—
Device memory
—
Touch points

Processor & memory

Graphics (GPU)

Input & power

Browsers deliberately expose only a rounded, limited view of your hardware. Everything here is read on your device and never leaves this page.

On this page
  1. What your browser can see
  2. Where each value comes from
  3. Why the GPU stands out
  4. Why the numbers are rounded
  5. What the readings are good for
  6. Hardware and fingerprinting

What your browser can see

You do not have to install anything for a website to learn a surprising amount about your hardware. Through ordinary JavaScript, a page can read how many CPU threads you have, roughly how much memory, whether your screen is touch-enabled and, via WebGL, a detailed description of your graphics card. This test gathers those signals and lays them out plainly.

Read-only and rounded

None of this lets a site control your device or read your files. It is a limited, deliberately blurred snapshot, but as you will see below, even a blurred snapshot can be revealing when combined with everything else.

Where each value comes from

Every figure on this page has a specific source in the browser. Knowing which one explains why some appear and others do not.

  • CPU threads. Read from navigator.hardwareConcurrency, a plain integer available in every modern browser.
  • Memory. Read from navigator.deviceMemory, which reports approximate gigabytes. It is a Chromium-only property, capped at 8.
  • Touch. Read from navigator.maxTouchPoints, the number of simultaneous touch contacts the device claims to support.
  • Graphics card. Read from WebGL by querying the WEBGL_debug_renderer_info extension for the unmasked vendor and renderer strings.
  • Battery. Read from navigator.getBattery(), part of the Battery Status API and now mostly withdrawn.

All of it is passive. No prompt appears, nothing is installed, and each value is a number or string the engine already knows.

Why the GPU stands out

Of everything on this page, the graphics card is the most telling. Through WebGL your browser can report an unmasked vendor and renderer string, something like the exact chip family and driver in your machine. Because there are so many combinations of GPU model, driver version and operating system, that single string often narrows you down dramatically.

It goes further than a label. The way your GPU renders test images differs subtly from other hardware, which is the basis of the canvas and WebGL parts of a fingerprint. Two machines with the same reported renderer can still produce slightly different pixels because of driver versions and anti-aliasing settings. That is why the same renderer string appears both here and in the fingerprint test: it is one of the highest-value tracking signals a browser exposes.

The WebGL fingerprint test takes the same hardware and hashes what it draws, which is what turns a description into an identifier.

Why the numbers are rounded

You might expect a hardware readout to be precise. It is not, on purpose. Browser makers learned that exact figures make excellent fingerprints, so they blunt them.

  • Memory is bucketed. It reports in coarse steps and caps out at 8 GB, so a 32 GB workstation and a 16 GB laptop can look identical.
  • Cores can be capped. Some browsers limit the reported thread count to reduce how distinctive it is.
  • Battery is mostly gone. Once shown to enable tracking, it was pulled from most browsers entirely.
  • GPU can be masked. Privacy-focused browsers may return a generic renderer instead of the real one.

Seeing "not shared" or a suspiciously round number is not a fault, it is the browser protecting you by refusing to be precise.

What the readings are good for

Beyond curiosity, these values have real uses. Developers check the core count and memory bucket to decide how heavy a web app can be before it struggles on lower-end devices. The GPU string helps diagnose why a game or video behaves differently on one machine than another. And confirming touch support explains why a site is showing you a touch-first layout.

If you are comparing two devices or troubleshooting performance, this page gives you a quick, install-free baseline of what each browser is willing to admit about the hardware beneath it. Combining it with the device pixel ratio test and the battery status test covers most of what a browser tells a page about the machine it is running on.

Hardware and fingerprinting

Individually, most of these values are shared by huge numbers of people. The concern, once again, is the combination. A specific GPU renderer, an unusual core count, a particular memory bucket and touch support together form a hardware profile that is stable across sessions and hard to change, which makes it valuable to trackers.

Hardware signals are also unusually durable. Clearing cookies, switching to a private window or changing your IP address does nothing to them, because they describe the machine rather than anything stored on it. Only a change of hardware, driver or browser build moves the picture, and some of those changes are themselves distinctive.

Reduce the GPU signal

If hardware fingerprinting concerns you, a browser that masks the WebGL renderer, such as Brave or the Tor Browser, removes the strongest signal here. See the fingerprint test to measure the effect.

Frequently Asked Questions

How can a website read my hardware without installing anything?
Browsers expose a deliberately limited set of hardware facts through JavaScript: the number of CPU threads, an approximate memory figure, touch support and, through WebGL, the graphics card. It is read-only and rounded, but it needs no permission and no software, which is exactly why it is worth understanding. Nothing here gives a site access to your files or control of your machine.
Why does device memory show a round number or nothing at all?
The device-memory value is intentionally coarse. Browsers report it rounded to values like 0.5, 1, 2, 4 or 8 GB so it cannot pinpoint your exact machine, and the figure is capped at 8 even on far larger systems. Firefox and Safari do not report it at all. If you see "not shared", your browser has chosen to withhold it for privacy.
Is the CPU core count exact?
It is the number of logical cores, or threads, your browser is willing to reveal, which usually matches your processor but can be capped for privacy. A 12-core chip with hyper-threading may report 24, or a deliberately reduced number. It tells a site how many parallel tasks it can reasonably run, not the precise model of your chip.
What is the GPU renderer string?
It is a text description of your graphics hardware and driver, read through the WebGL debug renderer extension. It is one of the most distinctive hardware signals a browser exposes, which is why it appears both here and in the fingerprint test. Some privacy browsers mask or generalise it, and the graphics card test looks at it alone.
Why is battery information often missing?
The Battery Status API was widely restricted after researchers showed a site could use the charge level and discharge timing as a short-lived tracking identifier across sites. Most browsers now hide it entirely or expose it only to secure pages, so seeing "not exposed" is normal and, from a privacy standpoint, a good sign. The battery status test checks it separately.