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.
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 | Strong — agentic_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:
- Free default path: DuckDuckGo, Bing HTML, or SearXNG.
- Premium path: Tavily, Exa, Perplexity, Serper, Firecrawl, Brave.
- Provider-native path: Anthropic, OpenAI/Copilot, Gemini, Moonshot.
-
Fallback: if search is weak, ship
web_fetchor browser automation and make the model do the rest.
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:
- Wintermolt for the cleanest lightweight free search + browser stack
- Claude Code for the strongest integrated provider-native product design
- Codex for joining that provider-native tier more clearly than older summaries implied
- Reasonix for the most operator-friendly engine menu
Recommendations for new agent builders
- 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.
- Separate search from fetch from browser control. Discovery, extraction, and interaction are different permission and UX problems.
- 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.
- Demand sources. If the harness cannot surface what URLs informed the answer, the web tool is incomplete.
- 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.
- 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.