The split
Hermai has two sides:- The CLI (hermai-cli, open source) — runs on your machine. Contributors use it to inspect a site and compose a schema describing its endpoints, then push the schema to the registry.
- The platform (api.hermai.ai) — a schema registry. It stores and serves the schemas that contributors have pushed. Agents query it at runtime to get instant, structured endpoint data for any domain in the registry. No browser, no discovery cost, sub-200ms.
What the CLI does
The CLI ships a deterministic toolkit — each subcommand does one thing and emits JSON the next step can consume:hermai detect— classify the site’s platform (Shopify, WordPress, Next.js, etc.) and detect anti-bot systems.hermai wellknown— proberobots.txt, sitemaps, RSS feeds, and GraphQL endpoints.hermai probe --body | hermai extract— pull embedded data from a page. Recognises 13 SSR/hydration patterns (__NEXT_DATA__,ytInitialData,__APOLLO_STATE__,SIGI_STATE, and more).hermai intercept— launch a browser and capture real XHR traffic, useful for dynamic features (search, cart, filters).hermai introspect— fetch a GraphQL schema.hermai session bootstrap— warm a browser session for anti-bot sites.
hermai registry push. No LLM key or managed service is required.
What the platform does
The platform is a lookup-only registry:GET /v1/catalog/{domain}— returns all endpoints and actions for a domain. This is the main agent-facing endpoint. Requires an intent describing why you need it.GET /v1/schemas— browse and search the full registry.POST /v1/schemas— push a new schema. Validated against the intent taxonomy and published immediately.
Why this split?
Discovery is expensive (browser + LLM + time). Lookup is cheap (database read). By separating them:- Contributors pay the discovery cost once, locally, on their own machine
- Every agent after them gets instant structured data for free
- The platform has no compute cost for discovery — it’s a registry with auth and analytics on top
- No vendor lock-in — the CLI is open source (AGPL-3.0) and works offline