Privvert - private browser-based file toolsPrivvert

User-Agent Parser

Browser-Strings dekodieren

Browser-
Engine-
OS-
Device(desktop)
CPU-

Über dieses Tool

Decode any User-Agent string into structured fields - browser, engine, OS, device and CPU. Useful for debugging analytics, building feature-detection logic, identifying mystery traffic in server logs, or just figuring out what a weird UA actually represents.

Privvert uses ua-parser-js, the same library many web analytics tools use. Sample strings for iPhone, Android, Windows, macOS, curl, and common bots are one click away. Runs locally.

Funktionen

  • Parses browser, engine, OS, device, CPU
  • Sample strings for iPhone, Android, Windows, macOS, curl, common bots
  • Loads your current browser's UA with one click
  • Powered by ua-parser-js
  • Browser-only - UA strings never uploaded
  • Free and unlimited
  • Breaks down the User-Agent into browser, engine, OS and device

So funktioniert's

  1. Paste a UA string, or click 'Use my browser' to load yours.
  2. Read the parsed fields.
🔒 100 % privat

Alles passiert direkt in deinem Browser mit JavaScript und WebAssembly. Deine Dateien werden nie hochgeladen, nie gespeichert und nie von uns gesehen.

Häufig gestellte Fragen

Why does curl show no browser?

curl isn't a browser - its User-Agent only identifies itself ('curl/8.0.1'), so the browser/engine fields stay empty. That's correct behavior.

Are UA strings reliable for fingerprinting?

No - they're easy to fake and many privacy-focused browsers reduce or randomise them. Use User-Agent for analytics aggregates, never for security decisions.

Why does my Chrome UA still say 'Mozilla/5.0'?

Historical accident - Netscape was 'Mozilla', then every later browser claimed Mozilla compatibility for compatibility detection. The 'Mozilla/5.0' prefix is now a vestigial header.

What about Client Hints?

Modern browsers are moving toward Client Hints (Sec-CH-UA) which give explicit, structured information instead of UA-string parsing. UA strings still exist as a fallback.

Why are user-agent strings so messy?

Historical accidents. Every new browser has copied parts of the older browsers' strings to convince servers that they're compatible, so the result is a string like Mozilla/5.0 (... AppleWebKit/...) ... Chrome/... Safari/... that contains the names of four browsers even though only one is actually running.

Should my app parse user-agent for feature detection?

Almost never. Use feature detection (testing for the actual API you need) instead of guessing capabilities from the user-agent. Modern browsers also implement client hints, which give you cleaner structured data when you do need to identify the client.