$ exec useragent
User-Agent Parser
Paste a User-Agent header to break it into browser, engine, operating system, device, and CPU architecture — or leave it empty to inspect your own browser plus its environment.
output will appear here.
$ cat about.md
The User-Agent header is the primary way browsers identify themselves to a server. It’s also the most-lied-about header on the web — every browser pretends to be every other browser to defeat 1990s-era “if (browser == Netscape)” logic. Parsing it reliably requires a maintained database of vendor strings and version patterns, which this tool provides via the popular ua-parser-js library.
Given a UA string, the parser returns five components: the browser (Chrome, Safari, Edge, Firefox, etc. with version), the rendering engine (Blink, WebKit, Gecko), the operating system (with version), the device type and model (mobile, tablet, console, smart-tv, embedded — empty for desktop), and the CPU architecture (x86_64, arm64, etc.). When you don’t supply a UA, the tool reads navigator.userAgent and additionally reports your screen resolution, viewport, timezone, language, network status, CPU core count, and device memory — a quick fingerprint of your runtime environment.
Note that modern browsers are deprecating the UA string in favour of UA-Client-Hints (Sec-CH-UA-* headers). Chrome already sends a heavily reduced UA and only reveals full details on request. For server-side detection in 2026, prefer Client Hints when you can; UA parsing remains useful for debugging analytics and for inspecting raw access logs.
$ ls examples/
Mozilla/5.0 (iPhone; CPU iPhone OS 17_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Mobile/15E148 Safari/604.1Identifies Safari, WebKit, iOS 17, mobile, and Apple as vendor.
Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Mobile Safari/537.36Chrome on a Pixel running Android 14.
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36Desktop Chrome on macOS.
(empty input)Leave the field empty to inspect your current browser plus environment data.
$ man --faq
Q.Why does Chrome on Android say “Mozilla/5.0”?
A.All major browsers start their UA with “Mozilla/5.0” for historical compatibility — early sites only sent modern features to “Mozilla”, so everyone copied the prefix and never stopped.
Q.How accurate is UA detection in 2026?
A.It’s a best-effort heuristic. Browsers are actively reducing the UA string to combat fingerprinting, so device-level detection (model, OS minor version) is increasingly unreliable. For server-side decisions, prefer Sec-CH-UA-* Client Hints.
Q.Is my UA sent to a server?
A.No. Parsing happens entirely in your browser. Your UA never leaves the page.
Q.Can I detect bots and crawlers?
A.Common bots (Googlebot, Bingbot, GPTBot, Applebot) declare themselves and will be parsed correctly. Sophisticated bots impersonate real browsers and require richer heuristics (TLS fingerprint, behavioural signals) to identify.
Q.What is the difference between browser, engine, and OS?
A.The browser is the application (Chrome, Safari). The engine is the rendering and JS core (Blink, WebKit, Gecko). The OS is the host operating system. Edge and Chrome share the same engine (Blink) but are different browsers.