AI Coding Guides Deep Dives
Web Search • Web Fetch • Browser Grounding • Research Loops

Which coding agents actually know how to use the web?

"Has web search" is a lazy label. Some repos ship a real no-extra-search-fee backend. Some only expose provider-native search inside Anthropic, OpenAI, Gemini, or Moonshot. Some bolt in Tavily, Perplexity, Exa, or Brave wrappers. And only a small subset turn search into an actual multi-hop research workflow instead of one more tool in the list.

(Alright, ad over. Back to the serious technical analysis.)

First: what counts as "free" here?

The useful distinction is not "free compute" versus "paid compute." These tools all sit inside model-powered harnesses, so something is always paying for tokens somewhere. The practical question is whether the harness forces you to buy a separate search API just to get decent current information.

🧭

The three cost buckets

No extra search bill means built-in DuckDuckGo, Bing, SearXNG, Jina-style fetch, or provider-native search already bundled into the model surface you are using. Provider-native means Anthropic, OpenAI/Copilot, Gemini, or Moonshot is doing the searching for you. External paid search means the harness wants Tavily, Perplexity, Exa, Serper, Brave, Firecrawl, or similar APIs on top of everything else.

That framing keeps unlike things from collapsing together. A repo that defaults to DuckDuckGo scraping is solving a different problem from a repo that only lights up search when the model provider exposes a first-party tool. Both can be valid. They just have different portability, reliability, and operator-cost stories.

The four recurring patterns

No-extra-search-fee scraping

Wintermolt, Crush, DeerFlow, and Reasonix all prove the same point: you can ship useful web search without forcing the operator into a Tavily-or-Exa subscription on day one.

Provider-native grounding

Claude Code, Codex, ADK-Rust, OpenCode, and Kimi CLI lean on the model provider's own web search surface. This is usually cleaner than scraping, but it ties the feature to provider support and account setup.

Paid wrapper stacks

Pochi, Oh My Pi, and Open Claude Code wrap Perplexity, Brave, Exa, Tavily, or large provider menus. The advantage is reach and optionality. The downside is configuration and cost creep.

Research orchestration

The most interesting split is not search versus no search. It is tool-only web access versus method-shaped research. DeerFlow, Crush, Claude Code, and Hermes are the clearest examples where the workflow around the search matters as much as the search itself.

Full comparison matrix: all unique harnesses in the current repo set

This table consolidates the current local snapshot by harness family. Duplicate refresh folders like codex/codex_new and oh-my-pi/oh-my-pi_new are treated as one product unless the duplicated directory meaningfully changes the picture.

Repo Search surface No separate search API? Deep-research story What matters
Claude Code source snapshot Anthropic-native web_search_20250305 plus dedicated WebFetchTool Yes Strong — Explore, Plan, and forked subagents Best integrated product runtime for search + fetch + delegation
Codex CLI Built-in web_search with search, open_page, and find_in_page actions Yes Moderate — agents and config modes, but less research-specific guidance Provider-native search is real here; older "no web search" summaries are outdated
DeerFlow Default DuckDuckGo search + Jina fetch; optional Serper, Tavily, Exa, Firecrawl, InfoQuest Yes Best in set — deep-research, GitHub deep-research, and literature-review skills Strongest explicit methodology, not just strongest tool list
Crush DuckDuckGo Lite scraping plus built-in fetch and Sourcegraph side-channel Yes Strongagentic_fetch subagent decomposes and iterates Cleanest coding-agent example of free search plus a real research loop
Wintermolt DuckDuckGo HTML search plus browser_control and generic HTTP tooling Yes Light — mostly tool surface, not an opinionated research workflow Best bare-metal free stack in one small binary
ADK-Rust Gemini google_search and Anthropic web_search built-ins Yes Moderate — loop agents and optional skills Best reusable framework example of provider-native search abstractions
DeepSeek Reasonix Bing HTML by default; optional SearXNG, Metaso, Tavily, Perplexity, Exa Yes Moderate — general subagent delegation rather than research-specific logic Most configurable search engine menu without abandoning a free default
Pochi Perplexity search via gateway, batch query arrays, Jina fetch via gateway No Light — search and fetch only Batching up to five related queries in one call is genuinely useful
Oh My Pi Large provider cascade: SearXNG, Perplexity, Exa, Brave, Tavily, Anthropic, Gemini, Kimi, Codex, and more Mixed Moderate — autoresearch exists, but it is more experiment tracking than deep web research Broadest search-provider menu, but most of the interesting routes cost money or setup
Kimi CLI SearchWeb service plus FetchURL fallback No Light — good tools, little explicit methodology Nicely engineered Moonshot-native search, but not portable
OpenCode OpenAI / GitHub Copilot openai.web_search provider tool Yes Light — search surface exists, research orchestration is not the point Good example of provider-native web search inside a platform runtime
Qwen Code Built-in web_fetch only; knows URLs, does not discover them Yes Light — agent system exists, but search is absent Fetch is solid; discovery is delegated elsewhere
Dirac Browser automation, but no dedicated web-search tool surfaced in the current snapshot Yes Light Interesting browser plumbing, not a web-research-first design
Goose No built-in search; relies on MCP extensions like AgentQL or Apify No None — research is extension-dependent Extensible, but not a built-in answer
Hermes Agent Optional research skills: DuckDuckGo, SearXNG, and a heavy OSINT stack Mixed Specialized — OSINT workflows are unusually deep The research methods are impressive, but they live in optional skill packs rather than a default coding-agent surface
Open Claude Code Brave API or SearXNG if configured; otherwise fetch-only fallback Mixed Light Search is present, but it is not a turnkey default
OpenHands No meaningful built-in web research surface in the local snapshot No None Sandbox/runtime focus outweighs web-grounding focus
Pi Mono No built-in web search or browser layer in the audited snapshot No None A deliberate minimal kernel, not a research stack
Zaica Local coding tools only No None Focused specialist rather than web-connected assistant
Neovate Code No genuine web-search surface detected No None Strong shell safety, not web research

So which ones actually stand out?

Best deep-research workflow: DeerFlow

DeerFlow is the clearest case where web access becomes a method. The default config already ships free DuckDuckGo search and Jina fetch. Then the skill layer goes further: broad exploration, targeted deep dives, diversity checks, GitHub-specific research rounds, and literature-review batching with explicit concurrency limits.

Best no-extra-search-fee coding-agent stack: Crush

Crush is the surprise favorite if the question is "what would I actually copy into a coding agent?" The DuckDuckGo Lite search path is free, production-minded, and paired with an agentic_fetch subagent that explicitly tells the child to break questions apart, iterate, fetch promising links, and return sources.

Best bare-metal implementation: Wintermolt

Wintermolt is the most elegant "just make it work" answer: DDG HTML search, browser control, generic HTTP, and no giant runtime. It is less impressive on methodology than DeerFlow or Crush, but it is the cleanest demonstration that free web grounding does not need a SaaS dependency pyramid.

Best provider-native examples: Claude Code, Codex, ADK-Rust

These three show the cleanest path when you are willing to trust the model vendor. Claude Code has the richest integrated search + fetch + delegated exploration stack. Codex now clearly belongs in the conversation too, with a real built-in web-search surface and configurable modes. ADK-Rust is the best framework-shaped wrapper around Gemini and Anthropic built-ins.

Best engine matrix: Reasonix

Reasonix is the most useful answer if you hate lock-in. Bing works by default, SearXNG is available for self-hosters, and the rest of the usual premium suspects are there when you want them. What it lacks is a uniquely opinionated research workflow on top.

Best "research brain" outside the coding mainstream: Hermes

Hermes is a weird but important edge case. Its OSINT/public-records skill work is deeper than almost anything else here. The catch is that this is not the default coding-agent tool surface. It is a skills-heavy research platform grafted onto a broader agent.

Are they all basically the same?

Superficially, yes. Once you read enough repos, the search backends start repeating:

The interesting engineering is not the backend name. It is everything around it:

Search/fetch separation

Claude Code, Crush, DeerFlow, Pochi, and Qwen all keep "find the page" separate from "read the page." That split matters because fetch needs a different permission, extraction, and token-budget story from search.

Mode control

Codex is especially interesting here: cached, live, and disabled web-search modes are treated as a real configuration axis rather than a hidden feature flag.

Method enforcement

DeerFlow and Crush stand out because they tell the agent how to research: start broad, narrow down, follow links, validate, synthesize, and carry sources through to the result.

Source discipline

Pochi and Crush explicitly push the model toward returning a source list. That sounds small, but it is the difference between a web tool that looks smart and one that remains auditable.

What I would steal for a new coding agent

DeerFlow's research phases

"Broad exploration → deep dive → diversity & validation → synthesis check" is exactly the sort of explicit method most agents are missing. It converts search from a toy tool into a repeatable operator behavior.

Crush's agentic_fetch child

This is the most copyable coding-agent pattern in the set: spawn a smaller child with search, fetch, grep, glob, and view; tell it to decompose the question; make it return sources.

Claude Code's tool split

Search, fetch, explore, and plan are separate surfaces. That makes permissions, UI, and delegation cleaner than the monolithic "do web stuff" tools common elsewhere.

Wintermolt's default-free posture

A working DDG search backend plus browser control in a compact runtime is a great reminder not to over-engineer the first version.

Reasonix's engine menu

One free default, one self-hosted path, and several premium upgrades is a much healthier operator story than "here are six paid APIs, good luck."

Codex's mode knob

Treating web search as cached/live/disabled is better than burying the behavior in undocumented provider assumptions. Search needs a policy surface just like sandboxing and approvals do.

If I had to pick one or two

🏁

My actual picks

If I only get one overall pick, I take DeerFlow. It is the most complete answer to the actual problem: free defaults, optional premium upgrades, and the best built-in research methodology in the current repo set.

If I get a second pick, I take Crush. It is the best example of a coding-agent-shaped runtime that gives you current information with no separate search API bill and turns that into a delegated multi-step workflow instead of a one-off query.

My honorable mentions would be:

Recommendations for new agent builders

  1. Ship one no-extra-search-fee path by default. Even if the premium integrations are excellent, the harness should work out of the box with DDG, Bing, SearXNG, or provider-native grounding.
  2. Separate search from fetch from browser control. Discovery, extraction, and interaction are different permission and UX problems.
  3. Write the research method down. A prompt or skill that explicitly says "search broadly, then narrow, then validate, then synthesize" is more valuable than adding a fifth search provider.
  4. Demand sources. If the harness cannot surface what URLs informed the answer, the web tool is incomplete.
  5. Expose a mode knob. Cached/live/disabled, free/paid, or local/remote: the operator should be able to control how much web access the agent is using.
  6. Do not confuse a browser with a research system. Browser automation is valuable, but it is not the same thing as planning searches, comparing sources, and preserving provenance.

Bottom line

The field is not boring, but the boring parts are increasingly easy to spot. Everyone can wire in a paid API. Everyone can add a fetch tool. The repos worth copying are the ones that make a clear choice about defaults, cost, and method.

DeerFlow wins on research discipline. Crush wins on no-extra-search-fee coding-agent pragmatism. Wintermolt wins on compact free implementation. Claude Code, Codex, and ADK-Rust show what provider-native search looks like when it is taken seriously. And the rest of the field mostly falls into one of three buckets: wrappers, fetch-only helpers, or repos that simply are not trying to solve this problem yet.