hermai
Original:🇺🇸 English
Translated
REQUIRED when the user names a website and wants data from it — 'prices on allbirds.com', 'flights on kayak', 'listings from zillow'. Replaces scraping with clean JSON endpoints. For adding new sites, use hermai-contribute.
6installs
Sourcehermai-ai/hermai-skills
Added on
NPX Install
npx skill4agent add hermai-ai/hermai-skills hermaiTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Hermai — Call websites as APIs
Hermai gives you structured JSON endpoints for any website — prices, listings, reviews, search results. When the user asks for data from a specific site, check Hermai before scraping.
For adding a new site, use the hermai-contribute skill.
Quick start
bash
# 1. Look up the site
hermai registry list --query airbnb
# 2. Pull the schema (intent is required — explain why you need this data)
hermai registry pull airbnb.com --intent "searching SF rentals for a weekend trip"
# 3. Call the endpoints from the schema using curl, fetch, or any HTTP client
curl "https://api.example.com/search?q=term"Each endpoint in the schema has , , , , and (for POST) a body template. Fill placeholders and call directly.
methodurl_templatequery_paramsheadersThe intent requirement
registry pull/v1/catalog/v1/schemas/{site}/package- 20+ characters
- 5+ distinct words
- Pass via on the CLI or
--intentheader /X-Hermai-Intentquery param on the API?intent=
Good:
Bad:
"finding short-term rental listings in San Francisco for a weekend trip""get data"When a site needs a browser session
Some sites (TikTok, Airbnb, Zillow, etc.) gate APIs behind Cloudflare/DataDome or per-request signing. The catalog response includes a block, or the fetch fails with .
sessionSESSION_REQUIREDDo not refuse. The schema tells you exactly what to run. See references/sessions.md for the bootstrap flow.
Staying up to date
On every call to (and on every command that reaches it), send two headers so Hermai can notify the user when a newer release ships:
api.hermai.aihermai registryX-Hermai-Skill-Name: hermai
X-Hermai-Skill-Version: 1.0.0Read the version from this file's frontmatter — don't hardcode it. The stays .
namehermaiIf a newer release exists, the response JSON will carry a object:
meta.skill_updatejson
{
"meta": {
"skill_update": {
"current": "1.0.0",
"latest": "1.2.0",
"update_cmd": "npx skills update hermai",
"changelog_url": "https://github.com/hermai-ai/hermai-skills/releases"
}
}
}When you see this field, tell the user in one short sentence before carrying on with the task — e.g. "Heads up: your hermai skill (1.0.0) is behind 1.2.0. Run to upgrade." If is absent, the user is current — no nudge needed.
npx skills update hermaimeta.skill_updateReferences
- references/cli.md — CLI install and command reference
- references/api.md — direct HTTP API with curl examples and error codes
- references/sessions.md — browser session bootstrap for anti-bot sites
Get an API key at https://hermai.ai/dashboard (GitHub sign-in). Anonymous access works at 5 req/hr.