WebReaper.Stealth.CloakBrowser 10.2.0

dotnet add package WebReaper.Stealth.CloakBrowser --version 10.2.0
                    
NuGet\Install-Package WebReaper.Stealth.CloakBrowser -Version 10.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WebReaper.Stealth.CloakBrowser" Version="10.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WebReaper.Stealth.CloakBrowser" Version="10.2.0" />
                    
Directory.Packages.props
<PackageReference Include="WebReaper.Stealth.CloakBrowser" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add WebReaper.Stealth.CloakBrowser --version 10.2.0
                    
#r "nuget: WebReaper.Stealth.CloakBrowser, 10.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package [email protected]
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=WebReaper.Stealth.CloakBrowser&version=10.2.0
                    
Install as a Cake Addin
#tool nuget:?package=WebReaper.Stealth.CloakBrowser&version=10.2.0
                    
Install as a Cake Tool

WebReaper.Stealth.CloakBrowser

CloakBrowser stealth Chromium fork backend for WebReaper. One-liner .WithCloakBrowser() that finds (or downloads from upstream) the CloakBrowser binary, launches it with the fork's recommended flags, and wires its CDP endpoint into WebReaper.Cdp.

The first concrete satellite of the ADR-0054 stealth-backend pattern.

What CloakBrowser solves

C++ source-level fingerprint patches make the browser indistinguishable from a real user's. Designed for sites that block automation:

Challenge Outcome
Cloudflare Turnstile, reCAPTCHA v3, FingerprintJS, BrowserScan Silent pass; challenge never appears
reCAPTCHA v2 image grid, hCaptcha (interactive puzzles) Not handled by stealth; needs a separate captcha-solving service
DataDome on aggressive sites Partial; vendor recommends headed mode + residential proxies (use WithProxy(...))

Install

dotnet add package WebReaper.Stealth.CloakBrowser
# WebReaper.Cdp is pulled transitively

Quick start

using WebReaper.Builders;
using WebReaper.Stealth.CloakBrowser;

var engine = await ScraperEngineBuilder
    .CrawlWithBrowser("https://protected-site.example/catalog")
    .Follow("a.product-link")
    .Extract(productSchema)
    .WithCloakBrowser()             // one-liner: find/download/launch/wire
    .WriteToMongoDb(connStr, "scrapes", "products")
    .BuildAsync();

await engine.RunAsync();

License acknowledgment

CloakBrowser's binary license: free to use, no redistribution. This satellite:

  • Does NOT bundle the binary in the NuGet package (cannot redistribute).
  • DOES download it from CloakHQ's own GitHub releases on first use (same legal model as playwright install, winget, brew install --cask).
  • Logs a license-acknowledgment line on first install (via the wired ILogger); CLI surface (per ADR-0055) gets a Y/n prompt.

See BINARY-LICENSE.md for the binding terms; by using this satellite you accept them.

How it composes

.WithCloakBrowser()
    │
    ├── CloakBrowserInstaller.EnsureInstalledAsync()  → finds/downloads to ~/.webreaper/stealth/cloakbrowser/
    ├── CloakBrowserLauncher.LaunchAsync(path)        → uses CdpLaunchHelpers; spawns with stealth flags
    └── builder.WithCdpPageLoader(endpoint.CdpUrl)    → connects WebReaper.Cdp to the running browser

Composes naturally with WithProxy(...) (residential proxies for the hardest sites) and the LLM action resolver from WebReaper.AI (.WithLlmActionResolver(...); semantic clicks like "dismiss popup" work through stealth).

SemVer

10.0.0 (initial release). See ADR-0054 for the design.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.2.0 0 5/29/2026
10.1.0 0 5/29/2026
10.0.0 40 5/26/2026

10.0.0: initial release. First concrete satellite of the ADR-0054 stealth-backend pattern. WithCloakBrowser() one-liner; detects pre-installed CloakBrowser binary or downloads from upstream (legal model = `playwright install`), launches with the fork's recommended flags, wires CDP into WebReaper.Cdp. CloakBrowser solves invisible bot-checks (Cloudflare, reCAPTCHA v3, FingerprintJS) via C++ source-level fingerprint patches. License-acknowledgment logger one-liner on first install; CLI surface (ADR-0055) gets a Y/n prompt. Requires WebReaper 10.0.0 + WebReaper.Cdp 10.0.0.