What browser am I using
Your browser, engine, operating system and user-agent string, plus what the browser can actually do. Why the string is a guess and features are not.
Runs in your browser
- Browser
- —
- Engine
- —
- Operating system
- —
- Languages
- —
- Timezone
- —
- CPU cores
- —
- Device memory
- —
- Online
- —
- Cookies enabled
- Do Not Track
- —
The browser and system above are read from the user-agent string, which every browser deliberately falsifies. Treat them as a good guess.
—
The top half is a guess
The browser, engine and system above are read out of your user-agent string, and that string is not a statement of fact. Every browser deliberately claims to be several others, for compatibility reasons that are now thirty years old.
Chrome on a Mac says:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36
That is one browser claiming to be Mozilla, AppleWebKit, KHTML, Gecko and Safari. It is none of them. The convention began when sites checked for Netscape before serving frames, so every subsequent browser added the previous one’s name to avoid being locked out, and nobody has ever been able to stop.
Parsing it means testing for the impostors in the right order — Edge before Chrome, Chrome before Safari — and accepting that a new browser will be mistaken for whatever it imitates.
What the string cannot tell you
An iPad reports itself as a Mac. Since iPadOS 13 the string is identical to Safari on macOS. The only clue left is touch support, which is why this page reports both together.
Every iOS browser is Safari’s engine. Chrome, Firefox and Edge on iPhone were required
to use WebKit; only the branding in the string differed. A CriOS string is Chrome’s
interface over Safari’s engine.
The version is increasingly frozen. Chrome and Edge have reduced what they report: the minor version digits are zeroed, and the platform is generalised. It is a fingerprinting-reduction measure, and it means the string is becoming less informative on purpose.
Feature support is the answer
The list at the bottom is what the browser can actually do, tested directly rather than inferred. This is the answer to essentially every question a user-agent string gets asked:
// Fragile — breaks when a new browser appears, or when the string changes
if (/Safari/.test(navigator.userAgent)) { … }
// Correct — asks the question you actually mean
if ('showOpenFilePicker' in window) { … }
Feature detection cannot be wrong about the present. UA sniffing is a guess about what features a name implies, and it is wrong every time a browser gains a capability or a new one arrives.
There are two honest uses for the string: telling a human which browser they are on — which is what this page does — and working around a specific, documented bug in a specific version. Anything else should be a feature test.
User-Agent Client Hints
Chromium browsers expose the same information as structured data through
navigator.userAgentData, with the sensitive parts available only on request. It solves the
parsing problem, and it does not solve the trust problem: a browser can report whatever it
likes there too.
Firefox and Safari have not implemented it, so the string is not going away.
The other readings
| Reading | Caveat |
|---|---|
| Languages | your Accept-Language order, which sites use to pick a locale |
| Timezone | inferred from your system clock, not from your address |
| CPU cores | may be capped or rounded to reduce fingerprinting |
| Device memory | Chromium only, and deliberately coarse — reports 8 for anything above 8 |
| Do Not Track | almost universally ignored, and being removed from browsers |
Do Not Track deserves the note. It was a request, never a requirement, and with almost no site honouring it, sending the header mostly made a browser more identifiable rather than less. Most browsers have now dropped the setting.
Nothing here is sent anywhere
Every value is read from your own browser and displayed. The page has no server side. The irony is not lost: a page about what your browser reveals is a page that keeps all of it.