Fetch the example.com homepage and return its h1 heading, first paragraph text, and the trailing 'Learn more' link as structured JSON. Read-only, no auth, no anti-bot.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionfetch-homepage-contentExecute the skills CLI command in your project's root directory to begin installation:
Fetches fetch-homepage-content from example.com/fetch-homepage-content-3h5vgl and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate fetch-homepage-content. Access via /fetch-homepage-content in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
0
total installs
0
this week
0
upvotes
Run in your terminal
0
installs
0
this week
—
stars
| name | fetch-homepage-content |
| title | Fetch example.com Homepage Content |
| description | >- Fetch the example.com homepage and return its h1 heading, first paragraph text, and the trailing 'Learn more' link as structured JSON. Read-only, no auth, no anti-bot. |
| website | example.com |
| category | reference |
| tags | - reference - fetch - html-parse - smoke-test - iana |
| source | 'browserbase: agent-runtime 2026-05-19' |
| updated | '2026-05-19' |
| recommended_method | api |
| alternative_methods | - method: browser rationale: >- Works identically (browse open + browse get markdown body returns the same content cleanly), but spinning up a cloud session is ~2 orders of magnitude more expensive than a single HTTP fetch for a fully server-rendered static page. Only worth using if your harness has no HTTP fetch primitive or you specifically need a visual screenshot. |
| verified | false |
| proxies | false |
Read-only extraction of the example.com homepage and return its h1 heading text and the first paragraph text (and, optionally, the trailing "Learn more" link). example.com is the IANA-reserved illustrative domain whose homepage is a single static HTML document served by Cloudflare — no JavaScript rendering, no anti-bot, no authentication. The optimal path is a raw HTTP fetch and a minimal HTML parse; a browser session is not required.
example.com is reachable but that the expected document body is being served (e.g. detecting a captive portal or middlebox interception).h1 + lead paragraph from any URL, using example.com as the safe reference input.The recommended path is a single HTTP fetch. example.com serves a complete, server-rendered HTML document — there is nothing for a browser to do that curl-equivalent tooling cannot.
Fetch the page with browse cloud fetch. No --proxies, no --verified, no session needed:
browse cloud fetch https://example.com
The response is a JSON envelope; the content field holds the raw HTML and statusCode should be 200.
Parse the HTML for the two required fields. The document structure is stable: a single <h1> inside a <div>, followed by two <p> elements (the descriptive paragraph and a paragraph containing only the "Learn more" <a>). Any minimal parser works — examples:
cheerio → $('h1').text() and $('p').first().text().BeautifulSoup → soup.h1.get_text(strip=True) and soup.find('p').get_text(strip=True)./<h1>([^<]+)<\/h1>/ and /<p>([^<]+)<\/p>/.Normalize whitespace on the extracted strings (collapse runs of whitespace, strip leading/trailing) before returning. The served HTML is minified onto a single line, so naive substring extraction will not have stray newlines, but downstream consumers should still be defensive.
Return the structured shape shown in Expected Output.
Only worth using if your harness has no HTTP-fetch primitive at all, or if you want a visual screenshot for a marketplace card. Cost is ~2 orders of magnitude higher than browse cloud fetch (cloud session spin-up dominates).
sid=$(browse cloud sessions create --keep-alive | jq -r .id)
export BROWSE_SESSION="$sid"
browse open https://example.com --remote
browse get markdown body --remote
# {"markdown":"# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)"}
browse cloud sessions update "$sid" --status REQUEST_RELEASE
The browse get markdown body output is already cleanly normalized; split on \n\n to separate the heading line from the first paragraph.
Last-Modified: Thu, 14 May 2026 05:31:28 GMT, the lead paragraph reads: "This domain is for use in documentation examples without needing permission. Avoid use in operations." Do not hardcode the paragraph text in tests — extract it at runtime, or your skill will silently rot the next time IANA updates the copy.Cf-Cache-Status: HIT, Age header in the tens of thousands of seconds is normal). The Last-Modified header is therefore the authoritative freshness signal, not Date. If you need to detect a content change, compare Last-Modified rather than re-fetching on a timer.GET, HEAD only (Allow: GET, HEAD). Do not waste retries on POST / OPTIONS; the origin will refuse them.robots.txt enforcement and no rate limiting observed at single-digit requests per minute. This is the IANA reference domain, intentionally permissive for documentation use. Do not abuse it (do not use it as a load-test target — there are dedicated services for that).example.com, example.org, example.net, and example.edu all serve the same payload from the same infrastructure. If your skill is generalized for "IANA example domains", treat them interchangeably; only the host header in the request differs.example.com in its visible body — only the title (<title>Example Domain</title>) and the h1 (Example Domain) name the page. Do not assume the body contains the domain literal./api/, /v1/, GraphQL, or sitemaps — none exist.Content-Encoding: br (Brotli) is returned by default. browse cloud fetch and modern HTTP clients decode this transparently; raw socket-level clients will need to advertise Accept-Encoding: identity if they cannot decode Brotli.{
"url": "https://example.com",
"status": 200,
"fetched_at": "2026-05-19T00:00:43Z",
"last_modified": "2026-05-14T05:31:28Z",
"title": "Example Domain",
"h1": "Example Domain",
"first_paragraph": "This domain is for use in documentation examples without needing permission. Avoid use in operations.",
"learn_more_url": "https://iana.org/domains/example"
}
If you cannot reach the origin (DNS failure, TLS failure, captive portal returning a non-Example Domain body), return an error shape rather than fabricated content:
{
"url": "https://example.com",
"status": 0,
"error": "fetch_failed",
"error_detail": "ENOTFOUND example.com"
}
If you reach the origin but the document shape has drifted (no h1, or zero p elements found), return a partial-success shape with the raw HTML attached for debugging — never silently substitute defaults:
{
"url": "https://example.com",
"status": 200,
"h1": null,
"first_paragraph": null,
"error": "unexpected_document_shape",
"raw_html": "<!doctype html>..."
}
Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
tiangong-ai/skills
browserbasehq/sdk
teng-lin/agent-fetch
angular/angular
pro-football-reference.com/get-player-stats-5pitm4
wikipedia.org/get-article-4q40tl
fetch-homepage-content fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
Solid pick for teams standardizing on skills: fetch-homepage-content is focused, and the summary matches what you get after install.
fetch-homepage-content is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Keeps context tight: fetch-homepage-content is the kind of skill you can hand to a new teammate without a long onboarding doc.
Solid pick for teams standardizing on skills: fetch-homepage-content is focused, and the summary matches what you get after install.
fetch-homepage-content reduced setup friction for our internal harness; good balance of opinion and flexibility.
fetch-homepage-content has been reliable in day-to-day use. Documentation quality is above average for community skills.
Registry listing for fetch-homepage-content matched our evaluation — installs cleanly and behaves as described in the markdown.
Keeps context tight: fetch-homepage-content is the kind of skill you can hand to a new teammate without a long onboarding doc.
fetch-homepage-content reduced setup friction for our internal harness; good balance of opinion and flexibility.
showing 1-10 of 35