[+] [−] Is this actually a drop-in for curl?
Yes. recurl wraps a real curl binary and forwards every standard flag unchanged. Alias curl=recurl and existing scripts keep working. The recurl-specific behaviour lives behind a --recurl-* namespace that does not collide with anything curl already uses.
[+] [−] When does the fallback kick in?
When the first attempt looks blocked. Today that means HTTP 403, HTTP 429, or a recognised challenge response. Successful requests return immediately with no overhead — there is no proxy, no browser, no daemon involved on the happy path.
[+] [−] What does it install?
A recurl binary, a background daemon called recurld, and bundled curl-impersonate binaries on Linux and macOS. Chromium is downloaded on first use of the JS preflight layer. Cargo, Homebrew, npm, and pip installs are all supported.
[+] [−] Does it work on Windows?
Yes, with one caveat. The TLS impersonation layer relies on curl-impersonate, which is Linux/macOS only today. On Windows, recurl skips the impersonation layer and goes straight to the JS preflight layer when a request looks blocked.
[+] [−] Is it open source?
Yes, MIT licensed. The source lives at github.com/neul-labs/recurl. Issues, PRs, and contributions to the bypass detector are all welcome — the more real-world failures we see, the smarter the escalation gets.
[+] [−] Why not just use Playwright or Puppeteer?
Because most of your traffic does not actually need a browser. A headless browser is the right tool when you need to interact with rendered DOM. For everything else — APIs, JSON endpoints, file downloads, status checks — paying the Chromium overhead per request is wasteful. recurl pays it only when it has to.
[+] [−] Does it bypass paywalls or ToS-protected content?
No. recurl is a tool for engineers who already have legitimate access to the data they are fetching — public APIs, your own staging environments, sites you are authorised to scrape, security testing of your own properties. Same ethical scope as curl itself. Use it accordingly.
[+] [−] How does this compare to curl-impersonate?
curl-impersonate is the closest open-source competitor and recurl uses it internally. The difference: curl-impersonate forces you to pick a TLS fingerprint up front and gives up if the site still blocks. recurl detects the block, escalates to JS preflight automatically, and falls back to plain curl on success. See the comparison page for the full table.