DEV Community

Robin Beraud-Sudreau
Robin Beraud-Sudreau

Posted on

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-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())
Enter fullscreen mode Exit fullscreen mode

Scraping a page is then one line:

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

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']}")
Enter fullscreen mode Exit fullscreen mode

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"}
Enter fullscreen mode Exit fullscreen mode

Interact with dynamic pages:

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

Using It with Hermes

  1. Add your API key to ~/.hermes/.env:
   FIRECRAWL_API_KEY=your_key_here
Enter fullscreen mode Exit fullscreen mode
  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.

Top comments (0)