WebReaper.Cdp 10.0.0

dotnet add package WebReaper.Cdp --version 10.0.0
                    
NuGet\Install-Package WebReaper.Cdp -Version 10.0.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.Cdp" Version="10.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WebReaper.Cdp" Version="10.0.0" />
                    
Directory.Packages.props
<PackageReference Include="WebReaper.Cdp" />
                    
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.Cdp --version 10.0.0
                    
#r "nuget: WebReaper.Cdp, 10.0.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 WebReaper.Cdp@10.0.0
                    
#: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.Cdp&version=10.0.0
                    
Install as a Cake Addin
#tool nuget:?package=WebReaper.Cdp&version=10.0.0
                    
Install as a Cake Tool

WebReaper.Cdp

Raw Chrome DevTools Protocol IPageLoadTransport for WebReaper — the AOT-clean browser transport, the bedrock for stealth Chromium fork backends (see WebReaper.Stealth.CloakBrowser).

Why this satellite

Three things WebReaper.Puppeteer and WebReaper.Playwright cannot do that this one does:

  1. AOT-publishable inside WebReaper.Cli. PuppeteerSharp and Microsoft.Playwright both depend on reflection-heavy serialisation. The CLI bakes WebReaper.Cdp and stays single-binary across 6 RIDs.
  2. Drive stealth Chromium forks (CloakBrowser, Patchright, Camoufox, undetected-chromedriver). Those ship as bare Chromium binaries with --remote-debugging-port; CDP-direct is the only way to talk to them without re-introducing a heavy SDK dependency.
  3. Connect to any CDP endpoint — a sidecar, a browser farm, a playwright launch-server, a remote debug session.

Install

dotnet add package WebReaper.Cdp

Quick start

using WebReaper.Builders;
using WebReaper.Cdp;

// Option 1: connect to an existing CDP endpoint (BYO browser)
var engine = await ScraperEngineBuilder
    .CrawlWithBrowser("https://example.com")
    .Extract(schema)
    .WithCdpPageLoader("http://localhost:9222")
    .BuildAsync();

// Option 2: launch-and-connect (transport spawns Chromium itself)
var engine = await ScraperEngineBuilder
    .CrawlWithBrowser("https://example.com")
    .Extract(schema)
    .WithCdpPageLoader(new CdpLaunchOptions
    {
        // ExecutablePath = null → PATH-detected Chrome / Chromium / Edge
        Headless = true,
        AdditionalArgs = ["--no-sandbox"]
    })
    .BuildAsync();

await engine.RunAsync();

CdpLaunchHelpers — the public utility every stealth satellite composes on

using WebReaper.Cdp;

var path = CdpLaunchHelpers.FindOnPath("google-chrome", "chromium", "chrome", "msedge");
var endpoint = await CdpLaunchHelpers.LaunchAsync(
    new CdpLaunchSpec(path!, ["--headless=new", "--no-sandbox"]),
    CancellationToken.None);
// endpoint.CdpUrl, endpoint.DisposeAsync()

WebReaper.Stealth.X satellites use these helpers + the WithCdpPageLoader(cdpUrl) overload — they spawn their fork's binary, then hand the resulting CDP URL to this transport.

SemVer

10.0.0 (initial release). See ADR-0052 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 (1)

Showing the top 1 NuGet packages that depend on WebReaper.Cdp:

Package Downloads
WebReaper.Stealth.CloakBrowser

CloakBrowser stealth Chromium fork backend for WebReaper. Adds .WithCloakBrowser() — one-liner that finds (or downloads from upstream) the CloakBrowser binary, launches it with the fork's recommended flags, and wires the resulting CDP endpoint into WebReaper.Cdp. CloakBrowser solves invisible bot-checks (Cloudflare Turnstile, reCAPTCHA v3, FingerprintJS) via C++ source-level fingerprint patches. The first concrete satellite of the ADR-0054 stealth-backend pattern. CloakBrowser binary: free to use; license at https://github.com/CloakHQ/CloakBrowser/blob/main/BINARY-LICENSE.md (no redistribution — this satellite downloads from upstream, does not bundle).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.0 81 5/26/2026

10.0.0: initial release. Raw CDP IPageLoadTransport satellite per ADR-0052. AOT-clean by construction (System.Net.WebSockets + System.Text.Json source-gen). Public CdpLaunchHelpers utility (PATH search, free-port spawn, CDP-connect-validate, teardown) that every WebReaper.Stealth.* satellite composes on. Two builder overloads: WithCdpPageLoader(cdpUrl) and WithCdpPageLoader(CdpLaunchOptions). Implements all 7 PageAction arms (ADR-0035) including SemanticAct (ADR-0050). Requires WebReaper 10.0.0.