Dev.to AI 🤖 Ai 👁 0 📖 2 min read

Firecrawl Skill for Hermes: Transform Any Website into Clean Markdown

Firecrawl Skill for Hermes: Transform Any Website into Clean Markdown The Problem Web data is everywhere, but getting it into a clean, usable format for AI agents is a pain. Raw HTML is noisy, JavaScript-ren

Firecrawl Skill for Hermes: Transform Any Website into Clean Markdown

The Problem

Web data is everywhere, but getting it into a clean, usable format for AI agents is a pain. Raw HTML is noisy, JavaScript-rendered pages can't be scraped with simple HTTP requests, and building reliable web extraction pipelines from scratch takes significant engineering effort.

That's exactly why we built the Firecrawl skill for Hermes — a plug-and-play integration that gives your AI agent instant access to clean web content, search results, and browser interactions.

What the Firecrawl Skill Does

With a single skill install, your Hermes AI agent can:

  • Scrape any URL and get back clean Markdown — no HTML noise
  • Search the web and retrieve full page content from results
  • Crawl entire websites systematically
  • Interact with dynamic pages — fill forms, click buttons, handle JavaScript
  • Extract structured data as JSON from any page

How It Works

The skill wraps Firecrawl's v2 API with a simple Python helper:

import os, urllib.request, json

BASE = "https://api.firecrawl.dev/v2"
KEY = os.environ["FIRECRAWL_API_KEY"]

def firecrawl(endpoint, payload):
    data = json.dumps(payload).encode()
    req = urllib.request.Request(
        f"{BASE}/{endpoint}",
        data=data,
        headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}
    )
    return json.loads(urllib.request.urlopen(req).read())

Scraping a page is then one line:

result = firecrawl("scrape", {"url": "https://example.com", "formats": ["markdown"]})
print(result["data"]["markdown"])

Real-World Examples

Web search with full content:

results = firecrawl("search", {"query": "best Python frameworks 2026", "limit": 5})
for r in results["data"]:
    print(f"{r['title']} — {r['url']}")

Extract structured data:

result = firecrawl("scrape", {
    "url": "https://shop.example.com/product/123",
    "formats": ["extract"],
    "extract": {"prompt": "Extract product name, price, and availability"}
})
print(result["data"]["extract"])
# → {"name": "...", "price": 29.99, "availability": "In Stock"}

Interact with dynamic pages:

result = firecrawl("interact", {
    "url": "https://example.com/login",
    "actions": [
        {"type": "fill", "selector": "#email", "value": "[email protected]"},
        {"type": "click", "selector": "#submit"},
        {"type": "scrape", "formats": ["markdown"]}
    ]
})

Using It with Hermes

  1. Add your API key to ~/.hermes/.env:
   FIRECRAWL_API_KEY=your_key_here
  1. Get your key at firecrawl.dev
  2. Ask your Hermes agent naturally:
    • "Scrape https://news.ycombinator.com and summarize the top stories"
    • "Search for Python best practices and give me a summary"
    • "Extract all product prices from this e-commerce page"

Hermes routes these requests to the Firecrawl skill automatically.

Get Started

The Firecrawl skill is now live in the hermes-skills repository. ⭐ Star it to follow future skill releases — we're building the toolkit for production AI agents, one skill at a time.

📰 Read the original article on Dev.to AI

Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.