User-Agent Parser
Identify browser, engine, OS and device from a User-Agent string
About this tool
Paste a User-Agent string from a log line, bug report or analytics export and get it decoded: browser and version, rendering engine, operating system, device type and CPU architecture. The parser is ua-parser-js, the same library behind countless analytics pipelines, running locally on your string.
User-Agent strings are archaeological sites — every one still claims to be Mozilla/5.0, Chrome claims Safari, Safari claims KHTML, and the real identity hides in the later tokens. A parser beats squinting: it knows that "CriOS" means Chrome on iOS and that Edge hides behind "Edg/".
Note the direction of travel: browsers are freezing and reducing UA strings (and Chromium ships UA Client Hints instead), so version detail from UA alone is increasingly coarse. For log forensics and bug triage it remains indispensable; for feature decisions, use feature detection.
Frequently asked questions
- Why does every User-Agent start with Mozilla/5.0?
- 1990s compatibility theater that never ended: servers sniffed for "Mozilla" to serve modern pages, so every new browser claimed to be it, and each subsequent browser impersonated its predecessors. The prefix is now meaningless tradition.
- Can I trust the OS version in a UA string?
- Less each year. macOS froze its UA version at 10_15_7, Windows 11 reports as Windows NT 10.0, and reduced-UA browsers coarsen versions deliberately. Treat OS versions from UA as approximate; use UA Client Hints where you control the client.
- What does "like Gecko" or "KHTML, like Gecko" mean?
- More impersonation layers: WebKit descends from KHTML and wanted pages that special-cased Gecko (Firefox's engine) to work, so it appended "like Gecko". Every WebKit/Blink browser carries the phrase to this day.
- Should I use UA parsing for feature detection?
- No — sniffing breaks the moment a new browser version ships. Detect the feature itself (if ("clipboard" in navigator)). UA parsing is for analytics, log analysis and reproducing user-reported bugs, where knowing the environment is the whole point.