IT
ItzmeJan/cloudflare-clearance-plugin
A puppeteer plugin for cloudflare turnstile clearance.
cloudflare-clearance-plugin
cloudflare-clearance-plugin
Adds browser.getClearance() to every Puppeteer browser instance. Calling getClearance() disconnects Puppeteer from the current browser session and reconnects using puppeteer-core.connect(). This effectively resets the automation fingerprint session and can help when Cloudflare/Turnstile starts showing challenges or blocking requests.
Install
npm install cloudflare-clearance-plugin puppeteer-extra puppeteer-coreRequires a Chromium/Chrome instance with remote debugging (WebSocket) enabled; otherwise getClearance() will throw.
Quick start (ESM)
import puppeteer from "puppeteer-extra";
import ClearancePlugin from "cloudflare-clearance-plugin";
puppeteer.use(ClearancePlugin());
(async () => {
const browser = await puppeteer.launch({ headless: false });
const freshBrowser = await browser.getClearance();
const page = await freshBrowser.newPage();
await page.goto("https://example.com");
})();Quick start (CommonJS)
const puppeteer = require("puppeteer-extra");
const ClearancePlugin = require("cloudflare-clearance-plugin");
puppeteer.use(ClearancePlugin());
(async () => {
const browser = await puppeteer.launch({ headless: false });
const freshBrowser = await browser.getClearance();
const page = await freshBrowser.newPage();
await page.goto("https://example.com");
})();API Reference
-
ClearancePlugin(opts?) => PuppeteerExtraPlugin- Injects
getClearanceon every launchedBrowser. opts(object): Reserved for future options.
- Injects
-
browser.getClearance() => Promise<import("puppeteer-core").Browser>- Disconnects current Puppeteer session, reconnects via
puppeteer-core.connect()to the same Chrome instance. - Returns a new
Browserbound to a fresh CDP session.
- Disconnects current Puppeteer session, reconnects via
Behavior and notes
- Requires a valid WebSocket endpoint (
browser.wsEndpoint()), typically available when launching Chrome with remote debugging. - The returned
Browseris a new connection; open new pages/contexts as needed. - Works with the
puppeteer-extraplugin system.
License
ISC