Claude has two practical ways to "read" a webpage during a Mac research session: fetch the raw HTML with curl from the terminal, or take a screenshot of the page rendered in Safari. Both work. They have very different strengths. Knowing which to use when is the difference between a fast accurate research workflow and one that runs slow and misses things.
This piece walks through what each method actually captures, when each wins, and how to combine them for a complete picture of any web page.
What curl captures
The curl command fetches the raw HTML returned by the server. It does not render the page. It does not execute JavaScript. It does not load images. It gets the underlying source code, exactly as the server sent it.
For Claude, the value of curl output is that it contains every word of textual content on the page, including content that would normally require scrolling to see. The full article body, all the footer links, every product card on a category page, every FAQ entry, curl returns the lot in one fetch, ready for Claude to parse and analyze.
What curl is great at
- Full-page text extraction. Every word on the page, regardless of where on the page it lives.
- Speed. Curling a page takes 100 to 500 ms. Loading and screenshotting the same page in Safari can take 3 to 8 seconds.
- Structured data. HTML tags survive curl. Claude can parse headings, lists, tables, and schema.org metadata directly from the source.
- Hidden content. Text in collapsed accordions, modal copy, hidden tabs, curl sees it all because it does not depend on visual rendering.
What curl fails at
- JavaScript-rendered content. React, Vue, Angular, and other client-side rendered apps return mostly empty HTML to curl. The actual content is rendered in the browser, not on the server.
- Visual layout. Curl cannot tell whether the design is dark or light, whether the hero is a video or a still image, whether typography is editorial or technical.
- Personalised content. Pages that change based on login state, geography, or cookies will return the logged-out, default version when curl-ed without auth headers.
- Anti-bot blocks. Many large sites (Cloudflare-protected, anti-scraping setups) return a challenge page or a 403 error to curl while serving normally to a real browser.
What a screenshot captures
A screenshot taken in Safari via Computer Use captures whatever the browser is currently rendering: the above-the-fold view, with all JavaScript executed, all images loaded, all custom fonts applied, and all design rendered as the brand intended it.
What screenshots are great at
- Visual design. Color palette, typography, layout structure, hero composition, logo treatment, button styling. None of this comes through curl.
- Brand impression. Whether the site feels premium or budget, dated or fresh, editorial or transactional.
- Above-the-fold composition. What a visitor sees before any scrolling. This is the single most important conversion-impacting view of any page.
- JavaScript-rendered content. Anything that renders after the page loads (charts, dashboards, dynamic product grids) is captured exactly as a human visitor would see it.
What screenshots fail at
- Below-the-fold content. Computer Use cannot scroll Safari (Safari is read-only tier), so screenshots only capture the viewport.
- Long-form text. Even above-the-fold text is harder for Claude to parse from a screenshot than from raw HTML.
- Structured content. Lists, tables, and metadata are visible in screenshots but harder to extract cleanly.
- Speed. Loading a page in Safari and taking a screenshot is slower than curling raw HTML.
The hybrid approach: when to use both
For most real research tasks, the right approach is to use both, in sequence. Curl first for the text content, screenshot second for the visual context. The combination covers everything either tool misses on its own.
Concrete examples:
Auditing a competitor homepage
Curl gives you the full copy: hero headline, value proposition, services list, testimonials, footer links. Screenshot gives you the visual: hero design, color palette, typography. Together they let Claude write a complete competitive audit covering both messaging and visual identity.
Reading a long-form article
Curl gives you the full article text including everything below the fold. Screenshot gives you a sense of the publication\'s editorial design and authority signals (author bio, publication date, related links). For pure information extraction, curl is enough; for understanding the brand context, the screenshot adds value.
Researching a product page
Curl gives you the title, full description, every variant, every review excerpt that was server-rendered. Screenshot gives you the hero image, the price emphasis, the trust badges, the CTA design. Both matter for a product page audit.
Analysing a dashboard or dynamic interface
Curl is almost useless here because the content is client-side rendered. Screenshot is the primary tool. Multiple screenshots after triggering different state transitions can substitute for the scroll Computer Use cannot do directly.
When to skip one or the other
Skip the screenshot when:
- You just need the text and do not care about design
- The page is text-heavy (a long article, a documentation page)
- You are doing batch research over many URLs and speed matters
Skip the curl when:
- The page is JavaScript-rendered and curl returns mostly empty HTML
- You only care about visual design impressions
- The site is anti-bot-protected and blocks curl
The Mac shell aliases worth setting up
If you find yourself running these workflows often, add these to your .zshrc:
# Fetch raw text content of a URL
alias web='function _web() { curl -s -L "$1" | python3 -c "import sys,re; t=sys.stdin.read(); print(re.sub(r'<[^>]+>', ' ', t))"; }; _web'
# Open URL in Safari without bringing Safari to front
alias safari='open -g -a Safari'
# Open URL in Safari foreground (default)
alias browse='open -a Safari'
With those in place, your research workflow becomes web https://example.com for text and browse https://example.com for visual.
Bottom line
Curl and screenshot are not competing tools. They are complementary. Curl gives Claude the text. Screenshot gives Claude the design. The combination gives Claude a complete picture of any web page that does not require scrolling.
If you are running ecommerce competitor research, supplier audits, or any kind of structured web analysis on a Mac, this is the foundational workflow. We use it dozens of times a day inside ScaleWise VA.
If you want help building this kind of workflow for your own Shopify operations, book a free 30-minute call and we will show you the setup.
How this matters for Shopify operations work
The curl-vs-screenshot decision shows up dozens of times per week in Shopify store management work. The right tool depends on what we're trying to extract.
Curl wins for: reading a competitor's full product description (the text matters more than the visual), checking what apps are installed on a competitor's storefront (the script tags reveal Klaviyo, Gorgias, Recharge, Loox), auditing a competitor's blog post depth (word counts, schema markup, internal linking), reviewing supplier documentation PDFs.
Screenshot wins for: understanding a competitor's brand identity (palette, typography, hero composition), reviewing a competitor's checkout UX (visual trust signals, payment options shown), evaluating ad creative quality on a landing page.
For most operational research tasks at ScaleWise VA, we run both in sequence. Curl first for the textual analysis (faster, more complete), screenshot second for the visual context. The combination covers what either tool misses alone.
This is also why we recommend brands keep brand-voice documents in plain text rather than image-only PDFs. When a Shopify VA needs to brief a new Klaviyo campaign in your voice, they should be able to curl your brand-voice doc directly. Our Klaviyo agency work depends on this kind of text-first reference material.
Book a discovery call if you want help systemizing your brand voice and operational documentation for AI-assisted workflows.