NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1498 most downloaded on npm
Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent & Client Hints data. Supports browser & node.js environment
Last release 4 months ago
21 May 2026
Ships fairly regularly
a new release about every 5 weeks
Most releases are documented
notes for 23 of 29 stable releases
65 versions withdrawn
withdrawn after publishing
14 years old
94 releases · first in 2012
Fix ReDoS vulnerability by limiting Client Hints input length (GHSA-9h5v-pfqq-x599)
useExtension() in UAParser to extend custom detection rulesinapp browserextensions submodule:
helpers submodule:
isElectron() function return itselfFull Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.9...2.0.10
One column per quarter.
useExtension() in UAParser to extend custom detection rulesinapp browserextensions submodule:
helpers submodule:
isElectron() function return itselfFull Changelog: 2.0.9...2.0.10
Add new browser: Aloha Browser, Avira Secure Browser, Lighthouse, Luakit, Norton Private Browser
extensions submodule:
Full Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.8...2.0.9
extensions submodule:
Full Changelog: 2.0.8...2.0.9
Resolve syntax error related to import renaming in ESM build
extensions submodule:
helpers submodule:
getOutlookEdition() to map Outlook versions to their marketing editionsFull Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.7...2.0.8
extensions submodule:
helpers submodule:
getOutlookEdition() to map Outlook versions to their marketing editionsFull Changelog: 2.0.7...2.0.8
Add support for chaining withClientHints() & withFeatureCheck()
withClientHints() & withFeatureCheck()helpers submodule into several new submodules:
bot-detection:
isAIAssistant()isAICrawler()isBot()browser-detection
isChromeFamily()isElectron()isFromEU()isStandalonePWA()device-detection
getDeviceVendor()isAppleSilicon()extensions submodule:
Full Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.6...2.0.7
withClientHints() & withFeatureCheck()helpers submodule into several new submodules:
bot-detection:
isAIAssistant()isAICrawler()isBot()browser-detection
isChromeFamily()isElectron()isFromEU()isStandalonePWA()device-detection
getDeviceVendor()isAppleSilicon()extensions submodule:
Full Changelog: 2.0.6...2.0.7
Add new CLI feature: processing batch user-agent data from file and output as JSON
setUA(): trim leading space from user-agent string inputundici dependency with node's internal Headersextensions submodule:
Full Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.5...2.0.6
Fix parsing error on pages with modified Array prototypes
node-fetch dependency with undicienum submoduleenums submodule:
Extension enum for extensions submoduleBrowser => BrowserNameCPU => CPUArchDevice => DeviceTypeVendor => DeviceVendorEngine => EngineNameOS => OSNameextensions submodule:
helpers submodule:
isAIBot():
Bravebot, cohere-training-data-crawler, FirecrawlAgent, HuggingFace-Bot, Kangaroo Bot, PanguBot, Replicate-Bot, RunPod-Bot, TikTokSpider, Together-Bot, v0bot, xAI-Botbrands as an array by @anulman in https://github.com/faisalman/ua-parser-js/pull/798Full Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.4...2.0.5
Add new browser: Edge WebView, Edge WebView2
withClientHints() browser naming adjustments: Microsoft Edge WebView2 => Edge WebView2xrsmarttvextensions submodule:
enums submodule:
BLU categorized as browser name instead of device vendorFull Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.3...2.0.4
Add new browser: Dooble, Ecosia, LG Browser, Otter, qutebrowser, Surf
withClientHints():
HuaweiBrowser => Huawei BrowserMiui Browser => MIUI BrowserOperaMobile => Opera MobiYaBrowser => Yandexextensions submodule:
Full Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.2...2.0.3
Fix TypeScript dependency issue
Full Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.1...2.0.2
Add new browser: Ladybird, Daum
withClientHints():
engine.version also get updateddevice.vendor & device.type by guessing from device.modelGoogle Chrome => ChromeMicrosoft Edge => EdgeAndroid WebView => Chrome WebViewHeadlessChrome => Chrome Headlessenums submodule:
extensions submodule:
Vehicles: BYD, Rivian, VolvoFull Changelog: https://github.com/faisalman/ua-parser-js/compare/2.0.0...2.0.1
We’re excited to share the release of Version 2.0! This update comes with significant improvements and new features compared to earlier versions. Than
We’re excited to share the release of Version 2.0! This update comes with significant improvements and new features compared to earlier versions. Thank you for your support!
ua-parser-js/extensions submodule:
ua-parser-js/helpers submodule:
isAIBot(): Checks if the user-agent is an AI botBreaking change: rename module to library
ua-parser-js/extensions submodule:
module to libraryFix incorrect import path in ESM files
ua-parser-js/enums submodule:
ua-parser-js/helpers submodule:
isBot() to check if the browser is identified as a botFix Python Request mistakenly identified as Meta Quest
ua-parser-js/helpers submodule:
getDeviceVendor() to guess for a device vendor based on its model nameisElectron() to check if current window is running inside ElectronisFromEU() to check if current window is from an EU (European Union) countryisStandalonePWA() to check if current window is a standalone PWAisChromiumBased() to isChromeFamily()isAppleSilicon() to also checks for WebGL renderer infoua-parser-js/extensions submodule:
bots as a compilation of all these browser types: clis, crawlers, fetchers, and modulesAR/VR devices moved to new device type: xr
xrbrowser: typeua-parser-js/extensions submodule, bots divided into crawler / fetchernpx ua-parser-jsUAParser()formFactor -> formFactorsAdd TypeScript declaration file in ua-parser-js/extensions submodule
ua-parser-js/extensions submoduleua-parser-js/helpers submodule: isAppleSilicon() & isChromiumBased()Update Client Hints Form-Factor
Add isFrozenUA() method in ua-parser-js/helpers submodule
withFeatureCheck() methodisFrozenUA() method in ua-parser-js/helpers submoduleMediaPlayers & Modules in ua-parser-js/extensions submoduleFix browser result always returning Chromium when using withClientHints()
withClientHints()withClientHints() in non-client-hints browser"Chrome" => "Mobile Chrome", "Firefox" => "Mobile Firefox""Mac OS" => "macOS", "Chromium OS" => "Chrome OS"withClientHints()withFeatureCheck()is()toString()import { UAParser } from 'ua-parser-js''ua-parser-js/enums''ua-parser-js/extensions'Initial work on new major version
Add new browser: Daum, Ladybird
Full Changelog: https://github.com/faisalman/ua-parser-js/compare/1.0.40...1.0.41
Add new browser: 115, LibreWolf, Slimboat, Slimjet
Add new feature: executable command using npx ua-parser-js "[INSERT-UA-HERE]"
npx ua-parser-js "[INSERT-UA-HERE]"Fix error on getOS() when userAgentData.platform is undefined
Fix misidentified WebView token as device model
Add new devices: Infinix, Tecno
Fix result of user-supplied user-agent from being altered
Fix Sharp Mobile detected as Huawei Tablet
Identify Macintosh as an Apple device
Add new browser : DuckDuckGo, Huawei Browser, LinkedIn
Fix OPPO Reno A5 incorrect detection
Add new browser : Obigo, UP.Browser, Klar
Nothing published for this version
Add new browser: Daum, Ladybird
Full Changelog: https://github.com/faisalman/ua-parser-js/compare/0.7.40...0.7.41
Nothing published for this version
Nothing published for this version
Fix error on getOS() when userAgentData.platform is undefined
Fix misidentified WebView token as device model
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →