- Overview
- What the Cascade Is
- How to Install
- How to Run
- Environment Variables Required
- How to Run Tests
do-web-doc-resolver fetches web pages and executes search queries, stripping HTML boilerplate and returning token-dense Markdown for LLM context windows. It evaluates results against content density and quality thresholds, executing a tiered fallback cascade across free and paid providers.
The resolver queries providers in priority tiers and halts upon receiving a response that satisfies quality scoring thresholds.
- Semantic Cache: Local SQLite vector cache (
sqlite-vec). - Free Search Tier: Exa MCP, Exa SDK, Tavily, DuckDuckGo.
- Paid Search Tier: Serper, Mistral.
- Semantic Cache: Local vector lookup.
- Free Static Tier:
llms.txtdiscovery. - Free Direct & Lite Tier: Direct HTTP fetch, Jina Reader, Firecrawl.
- Browser Tier: Mistral Browser.
Requires Python 3.11 or higher.
git clone https://github.com/d-oit/do-web-doc-resolver.git
cd do-web-doc-resolver
pip install -r requirements.txtRequires Rust 1.80 or higher.
cd cli
cargo build --releaseRequires Node.js 18 or higher.
cd web
npm install --legacy-peer-depsPass a target URL or query as the positional argument:
python -m scripts.cli "https://docs.python.org/3/"
python -m scripts.cli "python asyncio taskgroup example"from scripts.resolve import resolve
result = resolve("https://docs.python.org/3/")
print(result["content"])./cli/target/release/do-wdr resolve "https://docs.python.org/3/"
./cli/target/release/do-wdr resolve "rust tokio tutorial"cd web
npm run dev
# Open http://localhost:3000Zero-configuration mode runs using free providers without API keys. Optional environment variables enable paid provider tiers:
| Environment Variable | Provider | Required | Description |
|---|---|---|---|
EXA_API_KEY |
Exa SDK | No | Enables Exa search and content extraction |
TAVILY_API_KEY |
Tavily | No | Enables Tavily web search |
SERPER_API_KEY |
Serper | No | Enables Google Search via Serper |
FIRECRAWL_API_KEY |
Firecrawl | No | Enables Firecrawl scraping |
MISTRAL_API_KEY |
Mistral AI | No | Enables Mistral Search and Mistral Browser |
pytest tests/ -v -m "not live"cd cli && cargo testcd web && npx playwright test --project=desktop./scripts/quality_gate.sh