NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1141 most downloaded on npm
Lightweight browser detector
Last release 7 months ago
08 Feb 2026
Ships unpredictably
gaps range from 8 days to 4.9 years
Most releases are documented
notes for 49 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
87 releases · first in 2011
FIX: attempt to resolve including not needed files in bundle @naorpeled
[FEAT]: Add Smart TV platform detection @copilot-swe-agent
One column per quarter.
[REVERT]: rollback addition of named exports @naorpeled
[FEAT]: add support for latest MacOS @naorpeled & @seijikohara
[REVERT] rollback default export to = syntax in type definitions @naorpeled
= syntax in type definitions @naorpeled (#570)[DOCS]: remove artifact links from README @meirroth
[ADD]: Add detection for Miui Browser #436
Full Changelog: 2.10.0...v2.11.0
Parser#is method (#437)[FIX] Fix for Firefox detection on iOS 13 [ #415 ]
[ADD] Export more methods and constants via .d.ts [#388], [#390]
[FIX] Reverted [#382] as it broke build
[ADD] Add polyfills for Array.find & Object.assign [#383]
[FIX] Add support for QQ Browser [#362]
Nothing published for this version
[ADD] Define "module" export in package.json [#354]
[FIX] Exclude docs from the npm package [#349]
[FIX] Add MacOS names support [#338]
[FIX] Fixes the bug undefined method because of failed build
[FIX] Fixes the bug with a custom Error class
[ADD] Add constant output so that users can quickly get all types
[FIX] Update regexp for generic browsers
[ADD] Add support for Blink-based MS Edge
[ADD] Add an alias for Samsung Internet
[ADD] Add short aliases for browser names
[FIX] Fix buggy getFirstMatch reference
getFirstMatch reference[ADD] Add detection of PlayStation 4
[ADD] Add new Parser.getEngineName() method
Parser.getEngineName() method (#288)I hope you will like it. It's entirely new, so there is no reason to mention all the breaking changes here, go to the docs and try it out.
The new stable version of bowser is here!
We've been preparing and tuning it bit by bit. I've started with the better code structure so that it would be easier for the community to add new supporting browsers, platforms, OS and also propose new features. Thus, I came up with moving to ES2015 and splitting its functionality to a few modules. Another significant improvement is the API. It became more explicit and more useful than it used to be. I hope you will like it. It's entirely new, so there is no reason to mention all the breaking changes here, go to the docs and try it out.
Last, but not least, I'd like to say thanks to the community and people which were supporting and helping me with the new version, who tested it on their projects and proposed features. Especially, would like to praise @mjlescano, @udivankin, @darkowic and @alexandercerutti for their participation! ❤️
There're lots of things I'd like to improve here, so, if you're interested in participating and helping on this project, join us! 🙌🏻
Parser.satisfies() (#275)[FIX] Fix Chrome Mobile detection
[FIX] Fix failing comparing version through Parser.satisfies
Parser.satisfies (#243)[ADD] Add loose version comparison to Parser.compareVersion() and Parser.satisfies()
Parser.compareVersion() and Parser.satisfies()[CHANGE] Make ./es5.js the main file of the package
./es5.js the main file of the package (#239)[CHANGE] Rename split and rename compiled.js to es5.js and bundled.js (#231, #236, #237)
compiled.js to es5.js and bundled.js (#231, #236, #237)Parser.some (#235)[CHANGE] Make src/bowser main file instead of the bundled one
src/bowser main file instead of the bundled onerequire('bowser/compiled') (#231)typings.d.ts before stable release (#232)[ADD] Parser class which describes parsing process
Bowser.getParser()Bowser.parseParser class which describes parsing process[FIX] Fix NAVER Whale browser detection
[FIX] Fix typings.d.ts — add ipad, iphone, ipod flags to the interface
typings.d.ts — add ipad, iphone, ipod flags to the interface[FIX] Fix typings.d.ts — add osname property to the interface
typings.d.ts — add osname property to the interface[FIX] Fix typings.d.ts — add chromium flag to interface
typings.d.ts — add chromium flag to interface[ADD] Add a public method .detect()
Changes:
.detect() (#205)chromium flag in docs (#206)[FIX] Fix detection of MS Edge on Android and iOS
The release includes a new property osname that describes the name of the OS.
The release includes a new property osname that describes the name of the OS.
[FIX] Fix detection of Chrome on Android 8 OPR6
[FIX] Fix typings.d.ts according to #185
[ADD] Fix detecting of Tablet PC as tablet
[ADD] Add OS version support for Windows and macOS
Nothing published for this version
[ADD] Add some tests for Windows devices
root to initialization process (#170)[ADD] Throw an error when minVersion map has not a string as a version and fix readme
minVersion map has not a string as a version and fix readme (#165)[FIX] Fix mobile Opera's version detection on Android
mobile and tablet flagsbowser.check[FIX] Add support of Samsung Internet for Android
navigator.userAgent is undefinedstrictMode in check functionbowser variable in the README[FIX] Fix AMD define call — pass name to the function
define call — pass name to the function[FIX] Fix error Object doesn't support this property or method on IE8
Changes:
Object doesn't support this property or method on IE8[FIX] Fix missing isUnsupportedBrowser in typings description
Changes:
isUnsupportedBrowser in typings descriptioncheck's declaration in README[FIX] Fix strictMode logic for isUnsupportedBrowser
strictMode logic for isUnsupportedBrowser[FEATURE] Add bowser.compareVersions method
bowser.compareVersions methodbowser.isUnsupportedBrowser methodbowser.check methodNothing published for this version
Changelog: - add typescript typings - add iOS 9.0 to the tests
Changelog:
remove duplicated bowser.js file from the root of project
Changes of the release:
bowser.js file from the root of projectNothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →