Unified signal, less noise
Query a server-bounded engine subset concurrently, normalize and merge URLs, then rerank agreement while policy remains operator-controlled.
Scorch gives applications one guarded service for search, scraping, mapping, and crawling—without a database, broker, browser farm, or worker fleet.
API · 127.0.0.1:33000 / Renderer · Obscura
One guarded runtime
One deliberate surface
Runtime and routing policy remain on the server. API, CLI, and MCP callers get a compact contract without gaining access to forbidden engines or backends.
Query a server-bounded engine subset concurrently, normalize and merge URLs, then rerank agreement while policy remains operator-controlled.
Render every page through isolated embedded Obscura with JavaScript execution and Chrome-like stealth transport statically enabled.
Discover sitemaps and same-site links, then run robots-aware crawl jobs with pagination, cancellation, retained-byte limits, and expiry.
Why self-contained
Measured, not asserted
Both products rendered the same four public pages in a browser and returned Markdown, collected side by side on August 14, 2026. Every request succeeded on both.
A deployment-footprint and browser-scrape microbenchmark, not a feature-parity or extraction-quality comparison. Where two collections disagreed these are the figures least favourable to Scorch. See the full comparison and method.
Operationally compact
The client only speaks HTTP. The service owns execution, isolation, policy, and ephemeral crawl state.
Strictly separated executables
Shared guarded egress policy
Durable services required
Enter the reproducible environment, build two optimized binaries,
start scorchd, and connect through the CLI, JSON API, or
MCP.
The constraints that matter before putting Scorch to work.
No. Crawl jobs live in bounded memory and expire. Restarting scorchd removes them, so Scorch is not a durable crawl archive.
The server controls the engine allowlist; callers may select an allowed subset, while omitted selection uses DuckDuckGo. Every page scrape uses embedded Obscura with stealth statically enabled; callers cannot switch rendering or transport modes.
Not in the local-first release. Keep the loopback bind, or place an authenticated TLS gateway in front of the API.
No. It is embedded in scorchd as a Rust library, with fresh
context, page, and JavaScript state per request.
Build Scorch, start scorchd, and make the first request
through a runtime you control.