Stealth mode for browser automation anti-detection.
Stealth mode changes only Chromium launch flags. It sets no JavaScript
patches: patched getters and fake plugin lists are themselves detectable
(CreepJS and rebrowser-bot-detector flag the tampering), and the launch
flags already make navigator.webdriver false.
The undetected mode (spel --undetected) also replaces the driver with
Patchright, which removes the CDP leaks (Runtime.enable, console) that
launch flags cannot fix. In headless mode it sets a user agent without
HeadlessChrome that matches the real browser version.
Usage: (stealth-args) ;; Chrome launch args (stealth-ignore-default-args) ;; args to suppress (undetected-user-agent "154.0.1.2") ;; headless user agent
Stealth mode for browser automation anti-detection. Stealth mode changes only Chromium launch flags. It sets no JavaScript patches: patched getters and fake plugin lists are themselves detectable (CreepJS and rebrowser-bot-detector flag the tampering), and the launch flags already make `navigator.webdriver` false. The undetected mode (`spel --undetected`) also replaces the driver with Patchright, which removes the CDP leaks (`Runtime.enable`, console) that launch flags cannot fix. In headless mode it sets a user agent without `HeadlessChrome` that matches the real browser version. Usage: (stealth-args) ;; Chrome launch args (stealth-ignore-default-args) ;; args to suppress (undetected-user-agent "154.0.1.2") ;; headless user agent
(stealth-args)Returns a vector of extra Chrome launch arguments for stealth mode. These disable automation-detection features in Blink.
Returns a vector of extra Chrome launch arguments for stealth mode. These disable automation-detection features in Blink.
(stealth-ignore-default-args)Returns a vector of Chromium default args to suppress in stealth mode. Removing --enable-automation prevents the 'Chrome is being controlled by automated software' infobar and related automation signals.
Returns a vector of Chromium default args to suppress in stealth mode. Removing --enable-automation prevents the 'Chrome is being controlled by automated software' infobar and related automation signals.
(undetected-user-agent browser-version)(undetected-user-agent browser-version os-name)Returns the user agent of a headed Chrome for a browser version, or nil.
Chrome reduces its user agent to <major>.0.0.0 and a frozen platform
token. A user agent from a different version than the running browser is
itself a signal (CreepJS reports a platform and version mismatch), so pass
the version of the launched browser.
Returns the user agent of a headed Chrome for a browser version, or nil. Chrome reduces its user agent to `<major>.0.0.0` and a frozen platform token. A user agent from a different version than the running browser is itself a signal (CreepJS reports a platform and version mismatch), so pass the version of the launched browser.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |