crw-dynamic-search
crw-dynamic-search — Programmatic Tool Calling for Web Research
Search the web and scrape pages so that raw web data never enters your context
window. Only your curated print() output comes back — pure signal, no noise.
Why this matters
A typical crw search --json returns 10 results × 300-600 chars of description
each = ~5K characters. That sounds manageable — until you add scrapeOptions to
fetch full page markdown, which can be 20-50K chars per result. A 10-result
search with full content ≈ 200-500K characters. If that floods your context, you
burn tokens reading cookie banners, navigation menus, and boilerplate — and your
reasoning quality degrades under the noise.
By processing results inside a Python subprocess, only your print() output enters
context — typically 1-3K characters of pure signal. That's a 100-200x reduction.