Hermes Agent + Wayfern

Show Hermes a web job once. It keeps the skill.

  • ~/.hermes/config.yaml
  • OAuth or a token header
  • Cron to Telegram or Discord

Hermes writes its own skills and runs them on its cron. A skill that reads the web stops working when the site blocks bots.

With Wayfern, the skill calls tools: scrape_page for a page, extract_data for fields, or an operation that turns a public page into a JSON call. Hermes records the calls, and Wayfern does the fetching.

Hermes calls three Wayfern tools in a row: map the events site, scrape the events page, extract the dates. The three steps fold into a skill card named library-events, which gets a weekly schedule.

Setup

Add Wayfern to config.yaml.

Hermes runs on your computer or on a server. It reaches Wayfern over the remote server from either.

  1. 1

    Install Hermes

    Skip this when Hermes is installed.

    bash

    curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
    hermes setup
  2. 2

    Add the server

    Or run hermes mcp add wayfern --url https://api.wayfern.com/mcp --auth oauth.

    ~/.hermes/config.yaml

    mcp_servers:
      wayfern:
        url: "https://api.wayfern.com/mcp"
        auth: oauth
  3. 3

    Sign in

    A browser opens on wayfern.com. Sign in and click Allow. In a running chat, /reload-mcp loads the server.

    bash

    hermes mcp login wayfern
    hermes mcp test wayfern
  4. 4

    Teach it a job

    prompt

    Every Monday, read the events page of the city library with Wayfern, list the new events, and save the steps as a skill.

Other ways to connect

  • With a token

    For a server with no browser. Use a token with the mcp scope.

    ~/.hermes/config.yaml

    mcp_servers:
      wayfern:
        url: "https://api.wayfern.com/mcp"
        headers:
          Authorization: "Bearer ${WAYFERN_API_TOKEN}"
  • As an agent skill

    Hermes copies the skill to ~/.hermes/skills. It takes effect in new sessions. The skill needs WAYFERN_API_TOKEN in the environment.

    bash

    hermes skills install https://wayfern.com/skills/wayfern/SKILL.md --name wayfern

Route

Single tool calls make good skills.

Hermes learns from its tool calls. MCP gives it one call per step, each with a known cost, and the OAuth sign-in keeps the token out of the skill file.

Remote MCP OAuth sign-in
Best fit
hermes mcp login wayfern on a computer with a browser.
MCP + token Authorization header
Works
A header with ${WAYFERN_API_TOKEN}. Use it on a server with no browser.
Agent skill SKILL.md
Works
hermes skills install with the SKILL.md URL. The skill calls the REST API with curl.

Example tasks

Jobs Hermes can learn

  • 01

    List new events

    “Every Monday, read the events page of the city library, list the new events and save the steps as a skill.”

    scrape_page at 1 credit a page. Hermes writes the skill to ~/.hermes/skills.

  • 02

    Turn a page into an operation

    “Learn the search page of the used-car site as a Wayfern operation with make and model as parameters. Then call it each morning for a Volvo V60.”

    learn_operation costs 3 credits when it finds candidates. create_operation is free. Each call_operation costs 1 credit.

  • 03

    Watch for mentions

    “Every 6 hours, search Google for new posts about our product on reddit.com and news.ycombinator.com, and send the links to Telegram.”

    search_web with site set bills 2 credits for each provider page.

  • 04

    Build a dataset

    “Crawl the public recipes section of this site, 100 pages at most, and write title, time and ingredients to recipes.jsonl.”

    crawl_site bills 1 credit for each page. crawl_status is free.

Tools

What Hermes Agent can call

The same tools on every route, at the REST API rates. Every result reports credits_charged.

All tool inputs
  • scrape_page Fetch one page through an anti-detect browser and return clean markdown, HTML, links and metadata. The screenshot, pdf and json formats add +4 credits (once); summary adds +2. 1 credit / page
  • extract_data Extract structured data from one or more pages with a prompt and an optional JSON Schema. Re-running over pages already fetched is free. 1 credit / uncached source page
  • map_site List a site's URLs from its sitemaps and page links. 2 credits / 10 URLs
  • capture_screenshot Capture a clean image of a page: cookie banners and ads removed, lazy images loaded, tall pages captured end to end. Returns a short-lived download URL and an artifact key, not image bytes. Slices of a full page cost nothing extra; a fail_if_contains match is not charged. 5 credits / capture
  • brand_profile Identity, colours, logos, social links and company metadata for a domain. 10 credits / profile
  • site_styleguide Colours, typography, spacing, radii, shadows and the design tokens a site declares. 10 credits / site
  • site_fonts Font families, where each is served from, available weights, file formats and where they are used. 5 credits / site
  • crawl_site Start a bounded multi-page crawl. Returns a job id immediately and charges nothing up front; pages are billed as the crawl runs. 1 credit / successful page
  • crawl_status Poll a crawl started with crawl_site and read a page of its results. The pages were billed as they were crawled. Free
  • search_web Search Google, Bing, and DuckDuckGo. Returns ranked results, ads, provider failures, pagination, and related queries. 2 credits / provider page
  • list_search_engines List live provider ids and labels. Free

Good to know

Skill review
skills.write_approval holds new skill files until you approve them.
Credits
A cron job spends credits on each run. get_usage reports the balance and is free.