ReaderClient is the high-level API you’ll use for 99% of self-hosted Reader workloads. It owns the Playwright pool and the browser instances, exposes scrape() and crawl(), and handles lazy initialization.
Constructor
scrape() or crawl() call.
ReaderClientOptions
See BrowserPoolConfig and ProxyConfig for the nested types.
Methods
scrape() and crawl() will initialize automatically if you haven’t called start().
true if the client has been initialized (via start() or a prior scrape()/crawl() call).
Lifecycle
ReaderClient is lazy by design:new ReaderClient()- constructor does nothing expensive- First call to
scrape()orcrawl()- triggers Playwright pool startup and browser initialization (1-2 seconds) - Subsequent calls - reuse the warm pool
- Auto cleanup on
SIGTERM/SIGINT/process exit - Explicit
close()- tears down browsers immediately
Server pattern
Where to go next
scrape()
Signature, options, and return type.
crawl()
Signature, options, and return type.

