Bowser is a browser detector library that identifies browser, platform, and rendering engine properties from user agent strings and Client Hints data.
The library solves the problem of determining what browser and operating system a user is running so developers can apply targeted logic, workarounds, or feature detection. It parses user agent strings to extract browser name, version, engine type, and OS information, and supports the modern User-Agent Client Hints API for improved accuracy in privacy-conscious browsers. The tool provides a filtering API that lets developers define rules to handle specific browsers or platforms differently, with OS and platform-specific rules taking precedence over standalone browser rules.
Bowser suits projects that need lightweight browser detection in both browser and Node.js environments. The library emphasizes a small footprint—the ES5 version is approximately 4.8 kilobytes gzipped—and allows importing only the parsers you need to avoid unnecessary code. It works as an ES module for tree-shaking in modern bundlers, as a CommonJS require, or as a plain script tag. The tool is available in multiple forms: a standard ES5 transpiled version, a bundled version with polyfills included, and source files for custom builds. Version 2.0 introduced breaking API changes, so projects on earlier versions should consult the legacy branch documentation.
The project receives issue and pull request responses within one to two weeks. Work in the issue tracker centers on detection improvements, requests for help, and feature requests, indicating active engagement with detection accuracy and user-reported gaps in browser or platform coverage.