## Recommendation: Jina Reader (`r.jina.ai`) For Spool's use case — an agent encountering URLs and needing **faithful, clean markdown of a single page** — Jina Reader is the best fit. **Why Jina over the others:** - **Matches the privacy/trust posture.** DESIGN.md treats "via ACP · local" as non-negotiable. Jina explicitly states it never trains on your inputs/outputs, and its Reader is open-source and self-hostable — so the "external fetch" disclosure can credibly stay privacy-forward, with an offline escape hatch. - **Lowest integration cost.** Prepend `r.jina.ai/` to a URL, GET it, get markdown. No SDK, no schema — drops straight onto the existing `undici` client. API key is optional (20 RPM keyless, 500 RPM with a free key, 10M free tokens). - **Right output shape.** Returns LLM-optimized markdown with title/content/timestamps, browser-renders JS pages — exactly "clean readable content," not search chunks. **Main alternatives considered:** - **Firecrawl** — the strongest runner-up and natural upgrade path. Also open-source/self-hostable, with richer features (crawling, JS proxies, structured JSON extraction). Rejected as the *default* because it's credit-metered and heavier than single-URL extraction needs — but worth adopting later if Spool wants site crawling. - **Tavily Extract** — returns reranked 500-char chunks (≤5 per page), built for RAG search pipelines, not faithf