Back to Explore

bowser-js/bowser

GitHub
1 updates · last 90 daysOpen source

Last release:

Bowser is a small, fast JavaScript library for detecting a user’s browser, platform, and related engine details, with an API usable in both browser and Node. It can parse standard User-Agent strings and can also use User-Agent Client Hints for more accurate browser detection, useful for tasks like tailoring features or filtering supported browsers.

Project status

  • The source appears actively maintained, with an upstream push on 2026-10-27 and an update the day before.
  • Update cadence is uneven: recent updates were months apart, followed by a fresh October 2026 update.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v2.15.0

    Bowser v2.15.0 addresses multiple polynomial ReDoS vulnerabilities, adds browser detections, and improves version matching. It also changes packaging to provide a real ES module alongside the existing CommonJS/UMD entry point, and updates the build and dependency-management toolchain.

    BreakingSecurityFeatures
  • v2.14.1

    v2.14.1 is a small release focused on packaging output. Release notes mention a fix intended to stop including unnecessary files in the bundle, and the code diff shows changes to how the npm package contents are selected.

  • v2.14.0

    v2.14.0 adds new detection rules for additional browser and bot identities, including Smart TV platform detection, Brave, Line spider, DuckDuckGo, and Slack bot. In the actual code, there is also a larger, undocumented capability added: support for User-Agent Client Hints (navigator.userAgentData) with new Parser APIs and new call signatures for Bowser.getParser and Bowser.parse.

    Features
  • v2.13.1

    v2.13.1 rolls back previously added named exports. The release notes call out the revert, and the code diff confirms TypeScript typings, runtime exports, and related unit tests were updated to remove those named exports.

    Breaking
  • v2.13.0

    Bowser v2.13.0 expands user agent detection to cover newer macOS versions (11 to 15), adds HarmonyOS OS detection, and introduces multiple crawler and AI bot platform detections (including GPTBot and related bots). It also adds tree-shaking oriented named exports for modern bundlers, exposing parsing helpers and mapping tables.

    Features
  • v2.12.1

    This release primarily updates the TypeScript declaration file export syntax in index.d.ts. It changes how Bowser is exported for TS consumers, specifically switching to TypeScript's `export =` form. The only other changes are to the GitHub Actions publish workflow, adding manual release capability and improving publish robustness.

    Breaking
  • v2.12.0

    v2.12.0 focuses on expanding browser and platform detection (Bot, Nokia, Pale Moon) and improving TypeScript typings for the Parser API. It also migrates CI to GitHub Actions and adds release automation via release-drafter. The release notes document these additions and a Next.js middleware compatibility fix, but the code diff shows a few additional type and tooling changes that are not explicitly called out.

    Features
  • v2.11.0

    v2.11.0 adds new browser detection for MIUI Browser, and extends Parser#is with an option to include aliases in comparisons. It also updates TypeScript typings, including the return type documentation for Parser#parse.

    Features
  • 2.10.0

    Version 2.10.0 focuses on improving Firefox detection for iOS 13, updating the OS and platform parsing logic (notably for Firefox on iPad). It also updates TypeScript typings and refreshes development tooling, with CI changes and a large package-lock.json update.

  • 2.7.0

    Release 2.7.0 primarily extends Bowser's user agent detection to recognize QQ Browser (and QQ Browser Lite) and Google Search (GSA), and it updates project dependencies. The code changes are focused on adding browser alias mappings and UA parsing rules, plus adding acceptance test fixtures for the new browsers.

    Features
  • 2.5.3

    Release 2.5.3 adds macOS “version name” support to the OS parsing output, and it updates TypeScript typing wiring plus other dependency upgrades. The code diff also shows additional functional changes beyond the brief release notes, notably Android “Pie” version name support and a build configuration change.

    Features