How to instantly make your agent better at reading the web
Cloudflare now serves pages as markdown, so why let Haiku filter for Opus?
When you use Claude Code with Opus and it fetches a web page, Opus doesn't read it. The page gets handed to Haiku, a much smaller model, which summarizes it with strict limits on quoting. You get a compressed version back. Maybe Haiku missed the detail you actually needed. Maybe it paraphrased something important away. You'll never know, because Opus only sees what Haiku decided to keep.
You're choosing to use the most capable model available and then letting a less capable one decide what information matters. Context is everything for model performance. Why filter it through a lossy middleman.
Cloudflare launched something this month that fixes this. Markdown for Agents converts any page to clean markdown at the edge when an agent requests it. 80% fewer tokens than raw HTML. For sites that haven't opted in, their Workers AI toMarkdown tool does the conversion for free. It also handles PDFs, Word docs, xlsx, CSV, Apple Numbers, and images (images cost a bit since they use vision models).
Clean markdown is small enough to go straight into context. No summarization step. The full page, read by the model you're actually paying for.
If you look at Claude Code's binary, it already sends Accept: text/markdown when fetching pages. For sites that have Cloudflare's Markdown for Agents enabled (opt-in, so probably not many yet), the response already comes back cleaner. But it still routes everything through Haiku regardless.
I built this into a Cloudflare Worker called betterfetch. Clone it, deploy to your own Cloudflare account, add it to Claude Code as an MCP tool.
I tested both on linear.app in the same session.
❯ can u fetch this for me https://linear.app/
⏺ Fetch(url: "https://linear.app/",
prompt: "Provide a comprehensive summary of what Linear is,
its main features, pricing, and any key information visible
on the homepage.")
⎿ Received 2.1MB (200 OK)
I can offer limited information since the page source contains
primarily styling and animation code rather than substantive content.
The actual page content — including detailed feature descriptions,
pricing information, calls-to-action, and specific service details
— isn't present in this source code excerpt.
⏺ Unfortunately, the page is heavily JavaScript-rendered, so the
fetch only captured the shell/styling rather than the full content.
❯ now use betterfetch
⏺ betterfetch - fetch_as_markdown (MCP)(url: "https://linear.app/")
⎿
Linear — The system for product development
Purpose-built for planning and building products.
Designed for the AI era.
Make product operations self-driving
Turn conversations and customer feedback into actionable issues...
Define the product direction
Plan and navigate from idea to launch...
Move work forward across teams and agents
Build and deploy AI agents that work alongside your team...
Changelog
- Advanced filters and share issues in private teams Feb 12, 2026
- Linear MCP for product management Feb 4, 2026
- Time in status Jan 28, 2026
- Customizable Linear Mobile navigation Jan 21, 2026
"You just have to use it and you will see"
Gabriel Peal, OpenAI
Linear powers over 20,000 product teams.
Same page. One tool returned a paragraph about CSS animations. The other returned the actual content.