Hermai Cli

io.github.hermai-aiPublished by GitHub account hermai-aiv0.3.0Updated Oct 28, 2026

Hermai MCP server — look up, submit, and classify website API schemas from any MCP client.

Overview

AI-generated overview

Hermai CLI exposes the Hermai registry of website API schemas, letting an assistant look up, submit and call site endpoints from an MCP client.

What you can do
  • Look up and pull website API schemas from the Hermai registry, list the catalog, and summarize or show cached schemas for a URL
  • Submit new schemas to the registry and run discovery helpers that classify a site's platform, anti-bot setup, well-known files, embedded data and GraphQL schemas
  • Call read endpoints directly, or run authenticated write actions with session handling and per-request signing, with a dry-run mode to inspect the signed request first
  • Import cookies from an installed browser for a single named domain, or bootstrap a fresh session, to reach login-gated endpoints
  • Capture XHR traffic from a headful browser and replay captured requests to document write flows
When to use it
Useful when an assistant needs structured access to a website's API rather than scraping pages, or when you want to document a site's endpoints and contribute the schema to a community catalog. Also suited to agents that must perform login-gated writes such as posting, saving drafts or adding to cart.
Requirements
Runs as a local process; installable via npm (Node.js), Homebrew, Go, or prebuilt binaries. A Hermai registry account with GitHub sign-in is needed for an API key to pull schemas. Browser cookie import requires OS-level authorization (Keychain, DPAPI, libsecret) and installed browsers for capture.
Before you install
It reads cookies from your installed browsers and stores them under a local sessions directory, so treat that data as sensitive. Authenticated write actions send requests to third-party sites on your behalf and can change data there. Schemas and captured requests may be pushed to a public registry, so check what is submitted.

Installation

In SourceWeft

  1. Open Hermai Cli in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

hermai-cli

English · 繁體中文 · 简体中文

Discover, contribute, and call structured website APIs from your terminal.

hermai is the open-source CLI for the Hermai registry — a community catalog of website API schemas for AI agents. Probe a site to document its endpoints, push the schema to the catalog, or pull an existing schema and call it — including authenticated writes with per-request signing.

Install

bash
# macOS and Linux via Homebrewbrew install hermai-ai/hermai/hermai
# Anywhere Node is installed (no Go toolchain needed)npm install -g hermai-cli      # or: npx hermai-cli --help
# Go developersgo install github.com/hermai-ai/hermai-cli/cmd/hermai@latest
# Prebuilt binaries for every OS × arch# https://github.com/hermai-ai/hermai-cli/releases/latest

Already installed? Upgrade in place without re-running any of the above:

bash
hermai update

Agent skill

Running in Claude Code, Codex, Cursor, or another agent? Install the Hermai skill so the agent knows how to use this CLI:

bash
npx skills add hermai-ai/hermai-skills --skill hermai

One skill covers both audiences. When a user asks for data from a site, the agent pulls the schema and calls it. When a user wants to add a new site, the skill's contributor references (loaded on demand via progressive disclosure) walk the agent through discovery, schema authoring, and push.

Repo: hermai-ai/hermai-skills.

Call a site as an API

bash
# Pull a schema (API key required, GitHub sign-in at hermai.ai/dashboard)hermai registry loginhermai registry pull x.com --intent "drafting a post from my agent"
# Read endpoints: call them directly with curl / fetch / any HTTP client.# Authenticated writes: `hermai action` handles sessions + signing for you.hermai action x.com CreateDraftTweet --arg text="drafted by hermai"

hermai action loads the schema, resolves the user's session (cookies from disk, or pulled from an installed browser on first run), runs any schema-declared bootstrap JS to compute per-session state, runs any per-request signer JS, fires via a Chrome-TLS fingerprinted HTTP client, and rotates Set-Cookie back on 2xx responses. Works against sites that require per-request signing (X's x-client-transaction-id, TikTok's X-Bogus) without opening a browser.

Useful flags:

  • --dry-run — print the fully-signed request, don't hit the network
  • --schema <file> — use a local schema JSON instead of the registry cache
  • --arg key=value — repeatable, fills {{var}} placeholders in the schema's URL/body templates

Registry

bash
hermai registry login                         # GitHub OAuth, stores API keyhermai registry list                          # browse the cataloghermai registry pull <site> --intent "..."    # download a schemahermai registry push schema.json              # contribute a schema

Discovery toolkit

Deterministic subcommands for composing a new schema. No LLM key — each prints JSON the next step can consume.

bash
hermai detect <url>                          # platform + anti-bot classificationhermai wellknown <domain>                    # robots, sitemap, RSS, GraphQLhermai probe --body <url> | hermai extract   # 13 named embedded-data patterns plus                                             # any <script type="application/json" id="X">hermai probe --body <pdf-url> | hermai extract --state IL --url <pdf-url> --report-month 2026-02hermai enforcement --state IL <root-url>     # discover Illinois IDFPR PDFs and emit cited actionshermai intercept <url>                       # capture XHR in a browserhermai introspect <graphql-url>              # GraphQL schemahermai replay request.json                   # replay a captured requesthermai session bootstrap <site>              # warm a fresh browser sessionhermai session import <site>                 # import cookies from your current browser

Capturing authenticated write endpoints

Most interesting APIs are gated behind cookies. To capture a write flow (add-to-cart, save-draft, submit-review) without logging in a second time, combine headful intercept with session injection:

bash
# 1. Pull cookies from the browser you're already signed in withhermai session import example.com
# 2. Open a visible Chrome, pre-loaded with those cookies, and capture what you clickhermai intercept https://example.com/product/123 \  --headful --session example.com \  --timeout 120s --wait 100s --ndjson > capture.ndjson
# 3. Grep/jq the captured JSON for the XHR of interestgrep -F 'CreateOrder' capture.ndjson | jq '.request.body'

The request body goes straight into your schema's body_template with {{var}} placeholders for user-varying fields. Capture, don't guess — inventing body fields is the #1 cause of rejected write schemas.

hermai introspect takes --header name=value (repeatable) for auth-gated GraphQL endpoints like Shopify Storefront or Estée Lauder's Stardust.

Import your existing browser session

When a schema requires login (post a tweet, add to cart, RSVP), you can use the session you already have in Chrome, Firefox, Safari, Edge, or Brave — no need to log in again:

bash
hermai session import x.com# Reads cookies scoped to x.com from your installed browsers,# saves them to ~/.hermai/sessions/x.com/cookies.json

The first run surfaces an OS-level authorization prompt (macOS Keychain, Windows DPAPI, Linux libsecret) — Hermai can't read your cookies without your explicit consent at the OS level. Reads are always scoped to the single domain you name; we never touch cookies for other sites.

Use --dry-run to see the cookie names without writing values to disk:

bash
hermai session import x.com --dry-run

Local cache

bash
hermai catalog <url>                          # summarize cached endpoints for a URLhermai schema <url>                           # show the cached schema JSONhermai cache list                             # list cached domainshermai init                                   # create ~/.hermai/config.yamlhermai doctor                                 # verify your setup

hermai --help for the full command list.

Docs

  • Concepts + schema spec — docs.hermai.ai
  • Hosted registry + dashboard — hermai.ai
  • Skill reference: hermai-ai/hermai-skills — architecture, runtime, CLI, contributing

License

AGPL-3.0. Running a modified version as a hosted service requires publishing your changes.

Source: README.md at commit 7419a24

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.3.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts