What is a user agent string?
A user agent string is one line of text your browser sends in the User-Agent header of every request. It names the browser, its version, the rendering engine and the operating system, so a server can adapt its response or log who visited.
The format dates from the 1990s, and most of it is history. Every mainstream browser still starts with Mozilla/5.0 because early sites only sent modern pages to Netscape. Chrome still mentions AppleWebKit and Safari for the same reason: sites once sniffed for those words. So when you ask "what is my user agent", the honest answer is a mix of real facts and compatibility tokens.
Chrome/154 major version carry real information, and the platform part is frozen.Crawlers like Googlebot and tools like curl send their own strings, which is why the user agent parser recognises bots too.
How to find my user agent in Chrome and other browsers
The quickest answer to "what is my user agent" is this page: it prints the string on load, with a copy button. Inside the browser, each one has a built-in route.
- Chrome, Edge, Brave, Opera: type
chrome://version(oredge://version,brave://version,opera://about) into the address bar. The User agent line is your string, and the top line is your full browser version. - Any desktop browser: open developer tools (F12, or ⌘ + ⌥ + I on a Mac), go to Console, type
navigator.userAgentand press Enter. - Firefox: go to
about:supportand look for User Agent in the Application Basics table. - Safari on Mac: turn on the Develop menu (Safari → Settings → Advanced), then use Develop → User Agent to see or change it.
// Paste into the DevTools console
navigator.userAgent
// → "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36" What version of Chrome do I have?
Your full Chrome version is shown at the top of this page, for example 154.0.8037.58. You can also check Chrome version details yourself: open the ⋮ menu, choose Help → About Google Chrome, and read the number under the heading, or type chrome://version into the address bar.
A Chrome version has four parts: major.minor.build.patch. The major number goes up with each feature release, roughly every four weeks. Build and patch numbers change with security and bug-fix updates between major releases, so two people on "Chrome 154" can be on different builds.
| Method | What it shows | Full version? |
|---|---|---|
| This page (Client Hints) | Brand, full version, platform, architecture | Yes |
chrome://version | Version, channel, 32/64-bit, user agent, command line | Yes |
| Help → About Google Chrome | Version and update status, with a Relaunch button | Yes |
navigator.userAgent | User-agent string only | No: major only, rest is 0.0.0 |
Server logs (User-Agent header) | User-agent string only | No: major only |
Is my browser up to date? How to update Chrome
In Chrome, press Check for updates in the tool. It fetches the list of stable releases Google is serving right now for your platform and compares it with your full version, then tells you whether you're current, whether a newer build is rolling out, or whether you need to update.
There is rarely a single current Chrome version. Google rolls out updates in stages, so on any given day several builds can be live on the stable channel at once, each to a share of users. When we last checked (26 September 2026), the Windows stable channel was serving 154.0.8037.58 to everyone and a 155 build to a small early group. The tool reads those shares, so it won't tell you you're behind just because the latest Chrome version hasn't reached you yet.
How to update Chrome
- Computer: open the ⋮ menu → Help → About Google Chrome. Chrome checks, downloads the update, then shows Relaunch. It reopens your tabs after the restart.
- Android: open the Play Store, search for Chrome, and tap Update if it appears.
- iPhone and iPad: open the App Store, tap your profile picture, and update Chrome from the list of pending updates.
- Chromebook: Chrome updates with the system. Go to Settings → About ChromeOS → Check for updates.
User agent reduction: why Chrome freezes parts of the string
User agent reduction is Chrome's change that replaced detailed values in the user-agent string with fixed placeholders. It cut how much a site learns passively from every request, which makes browser fingerprinting harder. It rolled out in phases and was complete on Android by Chrome 110.
| Part | Reduced value | Real value lives in |
|---|---|---|
| Minor, build, patch | 0.0.0 | fullVersionList |
| Windows | Windows NT 10.0; Win64; x64 | platformVersion |
| macOS | Macintosh; Intel Mac OS X 10_15_7 | platformVersion |
| Linux | X11; Linux x86_64 | platformVersion |
| ChromeOS | X11; CrOS x86_64 14541.0.0 | platformVersion |
| Android version and model | Android 10; K | platformVersion, model |
- Chrome 101: minor, build and patch numbers frozen at
0.0.0. - Chrome 107: desktop user agent fully reduced.
- Chrome 110: Android user agent fully reduced.
Two side effects matter. A Windows 11 PC still says Windows NT 10.0, and an Apple Silicon Mac still says Intel Mac OS X 10_15_7. So a user agent string alone cannot tell Windows 10 from 11 or show your real macOS release. The tool uses Client Hints to fill those in.
User-Agent Client Hints: where the real details went
User-Agent Client Hints are the structured replacement for the user agent. A few low-detail hints go with every request; the detailed ones only reach a site that asks for them, through the Accept-CH header or JavaScript. Chrome, Edge, Opera, Brave and other Chromium browsers support them. Firefox and Safari don't.
- Sent by default
Sec-CH-UA(brands and major versions),Sec-CH-UA-Mobile(?1or?0) andSec-CH-UA-Platform(such as "Windows").- On request
fullVersionList,platformVersion,architecture,bitness,model,wow64andformFactors, read withnavigator.userAgentData.getHighEntropyValues().- GREASE brand
- A deliberately fake entry such as
Not)A;Brandthat changes between versions, so sites have to parse the list properly instead of matching exact strings. The tool labels it as a decoy.
const hints = await navigator.userAgentData.getHighEntropyValues([
"fullVersionList", "platformVersion", "architecture", "model", "bitness"
]);
console.log(hints.fullVersionList); // [{brand: "Google Chrome", version: "154.0.8037.58"}, …]
console.log(hints.platformVersion); // "15.0.0" on Windows 11Per Microsoft's guidance, a Windows platformVersion of 13 or higher means Windows 11, 1 to 12 means Windows 10, and 0 means Windows 7, 8 or 8.1.
How the user agent parser reads a string
The user agent parser checks tokens in a fixed order, most specific first, because nearly every browser borrows another's name. Edge, Opera and Samsung Internet all contain Chrome/, and Chrome contains Safari/. Reading them in the wrong order is the most common parsing bug.
| Browser | Token to look for | Watch out for |
|---|---|---|
| Microsoft Edge | Edg/ (EdgA/ Android, EdgiOS/ iPhone) | Also contains Chrome/ |
| Opera | OPR/ | Also contains Chrome/ |
| Samsung Internet | SamsungBrowser/ | Its Chrome/ version is the engine, not the browser |
| Chrome on iPhone | CriOS/ | Uses WebKit, not Blink |
| Firefox on iPhone | FxiOS/ | Uses WebKit, not Gecko |
| Android WebView | ; wv) | An app's built-in browser, not Chrome |
| Firefox | Firefox/ with Gecko/ | Firefox Focus adds Focus/ |
| Safari | Version/ + Safari/ and no other brand | Every Chromium browser also says Safari |
| Brave | None: identical to Chrome | Only detectable in the live check, via navigator.brave |
Knowing what is my user agent on your own device is one job; reading a server log is another. The parser checks bots first: Googlebot, Bingbot, Applebot, AI crawlers such as GPTBot, ClaudeBot and PerplexityBot, link-preview bots, Headless Chrome and curl. Paste one string per line to sort visitors from crawlers.
What is my user agent telling websites?
Your user agent reveals your browser, its major version and a rough platform. It does not reveal your name, IP address, location or accounts. On its own it is weak for tracking, but combined with screen size, time zone, languages and fonts it becomes one input to a browser fingerprint.
- Changing it with a user-agent switcher extension or DevTools (Network conditions → User agent) changes the header and
navigator.userAgent, but Client Hints and other signals can still give the real browser away. - Do Not Track is a signal most sites ignore. Global Privacy Control has legal weight in some US states. The tool shows whether either is on.
- Blocking trackers matters more than hiding your user agent. Run the ad blocker test to see what your blocker catches, and the WebRTC leak test to check whether your VPN hides your IP.
If you're comparing browsers or chasing a bug, the Chrome flags explorer explains experimental switches that can change how a page behaves. For a lighter everyday setup, uBlock Origin Lite blocks trackers without broad permissions, and our VPN extension guide covers hiding your IP address.