JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 112028
  • Score
    100M100P100Q158689F
  • License MIT

detectIncognito.js can be used to detect incognito mode & other private browsing modes on most modern browsers.

Package Exports

  • detectincognitojs/dist/detectIncognito.esm.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (detectincognitojs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

detectIncognito.js

npm version Downloads License

Efficiently detect Incognito mode & other private browsing modes across most modern browsers.

Shameless plug: Looking for a powerful user tracking and bot detection solution?


Features

  • ✅ Incognito detection on Google Chrome
  • ✅ Private Window detection on Safari (macOS)
  • ✅ Private Tab detection on Safari (iOS)
  • ✅ Private Window detection in Firefox
  • ✅ InPrivate Window detection on Microsoft Edge
  • ✅ InPrivate Window detection on Microsoft Internet Explorer
  • ✅ Private Window detection in Brave (see notes)
  • ✅ Private Window detection in Opera

Demo

Check out the live demo.

Usage

Get the script from CDN (may be blocked by adblockers—see notes):

<script src="https://cdn.jsdelivr.net/gh/Joe12387/detectIncognito@main/dist/es5/detectIncognito.min.js"></script>

Or install via NPM:

npm i detectincognitojs
import { detectIncognito } from "detectincognitojs";

detectIncognito().then((result) => {
  console.log(result.browserName, result.isPrivate);
});

Supported Browsers

Browser Platform(s) Versions Notes
Safari All ≤ 18.4
Chromium All 50 to 137 Beta Detection broken by predictable-reported-quota flag (Issue #49)
Firefox All 44 to 138
MSIE Windows 11 Requires Promise polyfill

Notes

  • False positives can occur in certain browser setups or Chrome Guest mode (Issue #21).
  • Firefox Container Tabs aren't detected by this.
  • The script must run over HTTPS—running locally or via HTTP might fail.
  • Brave and uBlock Origin block the CDN; hosting the script yourself avoids this issue.
  • An error is thrown if the browser can't be identified.

Similar Projects

  • OverpoweredJS – An advanced browser fingerprinting & bot detection solution.

License

Copyright © 2025 Joe Rutkowski
Distributed under the MIT License.