hermai-cli について
hermai は Hermai レジストリのオープンソースコマンドラインツールで、Web サイト API のスキーマを検索・登録・呼び出しできます。エージェントに Web エンドポイントを利用させたい開発者や、新しいスキーマを提供したい開発者を対象としており、リクエストごとの署名を伴う認証付き書き込みにも対応しています。
主な機能
- 01Web サイト API スキーマの検索・取得・登録
- 02書き込み時のセッション処理とリクエスト署名
- 03送信せずに署名済みリクエストを表示するドライラン
- 04後続処理で使える JSON を出力する検出コマンド
- 05単一ドメインのブラウザ Cookie のインポート
- 06ローカルキャッシュと環境診断
活用シーン
- 01エージェントに Web エンドポイントからデータを読み取らせる
- 02下書き作成などログインが必要な書き込み操作を実行する
- 03書き込みフローを取得してスキーマをレジストリに登録する
MCP 対応
本プロジェクトは MCP サーバーではなくコマンドラインツールであり、README には MCP との直接の関係は記載されていません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
hermai-cli
ターミナルから、構造化されたウェブサイト API を発見、投稿、呼び出します。
hermai は、AI エージェント向けのウェブサイト API スキーマを集めたコミュニティカタログである Hermai registry のオープンソース CLI です。サイトを調査してエンドポイントを記録し、スキーマをカタログに登録するか、既存のスキーマを取得して呼び出します。リクエストごとの署名を使った認証済みの書き込みにも対応しています。
インストール
# macOS and Linux via Homebrew
brew install hermai-ai/hermai/hermai
# Anywhere Node is installed (no Go toolchain needed)
npm install -g hermai-cli # or: npx hermai-cli --help
# Go developers
go 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
すでにインストール済みの場合は、上記を再実行せずにその場でアップグレードできます。
hermai update
エージェントスキル
Claude Code、Codex、Cursor、または別のエージェントで実行していますか?エージェントがこの CLI の使い方を把握できるよう、Hermai スキルをインストールします。
npx skills add hermai-ai/hermai-skills --skill hermai
1 つのスキルで、どちらの用途にも対応します。ユーザーがサイトのデータを求めた場合、エージェントはスキーマを取得して呼び出します。ユーザーが新しいサイトの追加を希望した場合、スキルのコントリビューター向けリファレンス(段階的開示により必要に応じて読み込みます)が、発見、スキーマの作成、登録の手順をエージェントに案内します。
リポジトリ:hermai-ai/hermai-skills。
サイトを API として呼び出す
# Pull a schema (API key required, GitHub sign-in at hermai.ai/dashboard)
hermai registry login
hermai 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 はスキーマを読み込み、ユーザーのセッションを解決します(ディスク上の Cookie を使うか、初回実行時にインストール済みブラウザーから取得します)。その後、スキーマで宣言されたブートストラップ JS があれば実行してセッションごとの状態を計算し、リクエストごとの署名 JS があれば実行して、Chrome-TLS フィンガープリントを付与した HTTP クライアントからリクエストを送信します。2xx レスポンスでは Set-Cookie をローテーションします。ブラウザーを開かずに、X の x-client-transaction-id や TikTok の X-Bogus など、リクエストごとの署名が必要なサイトでも動作します。
便利なフラグ:
--dry-run— 署名済みリクエストをすべて表示し、ネットワークには送信しません--schema <file>— レジストリキャッシュの代わりにローカルのスキーマ JSON を使います--arg key=value— 繰り返し指定でき、スキーマの URL/本文テンプレート内の{{var}}プレースホルダーに値を入れます
レジストリ
hermai registry login # GitHub OAuth, stores API key
hermai registry list # browse the catalog
hermai registry pull <site> --intent "..." # download a schema
hermai registry push schema.json # contribute a schema
発見ツールキット
新しいスキーマを組み立てるための決定論的なサブコマンドです。LLM のキーは不要です。それぞれの出力する JSON を、次のステップで利用できます。
hermai detect <url> # platform + anti-bot classification
hermai wellknown <domain> # robots, sitemap, RSS, GraphQL
hermai 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-02
hermai enforcement --state IL <root-url> # discover Illinois IDFPR PDFs and emit cited actions
hermai intercept <url> # capture XHR in a browser
hermai introspect <graphql-url> # GraphQL schema
hermai replay request.json # replay a captured request
hermai session bootstrap <site> # warm a fresh browser session
hermai session import <site> # import cookies from your current browser
認証が必要な書き込みエンドポイントのキャプチャ
多くの興味深い API は Cookie によってアクセスが制限されています。再ログインせずに書き込みフロー(カートへの追加、下書きの保存、レビューの送信)をキャプチャするには、ブラウザーを表示した状態でのインターセプトとセッションの注入を組み合わせます。
# 1. Pull cookies from the browser you're already signed in with
hermai session import example.com
# 2. Open a visible Chrome, pre-loaded with those cookies, and capture what you click
hermai 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 interest
grep -F 'CreateOrder' capture.ndjson | jq '.request.body'
リクエスト本文はそのまま、スキーマの body_template に格納します。ユーザーによって変わる項目には {{var}} プレースホルダーを使います。推測せず、キャプチャしてください。本文のフィールドを作り上げることが、書き込みスキーマが拒否される最大の原因です。
Shopify Storefront や Estée Lauder の Stardust など、認証が必要な GraphQL エンドポイントでは、hermai introspect に --header name=value を指定できます(繰り返し指定可能です)。
既存のブラウザーセッションをインポートする
スキーマでログインが必要な場合(ツイートの投稿、カートへの追加、参加登録など)、Chrome、Firefox、Safari、Edge、Brave ですでに利用しているセッションを使えます。再ログインする必要はありません。
hermai session import x.com
# Reads cookies scoped to x.com from your installed browsers,
# saves them to ~/.hermai/sessions/x.com/cookies.json
初回実行時には OS レベルの認証プロンプトが表示されます(macOS Keychain、Windows DPAPI、Linux libsecret)。OS レベルで明示的な同意を得ずに Hermai が Cookie を読み取ることはできません。読み取りの対象は、指定した 1 つのドメインに常に限定されます。他のサイトの Cookie に触れることはありません。
値をディスクに書き込まずに Cookie 名を確認するには、--dry-run を使います。
hermai session import x.com --dry-run
ローカルキャッシュ
hermai catalog <url> # summarize cached endpoints for a URL
hermai schema <url> # show the cached schema JSON
hermai cache list # list cached domains
hermai init # create ~/.hermai/config.yaml
hermai doctor # verify your setup
コマンド一覧全体については、hermai --help を参照してください。
ドキュメント
- 概念とスキーマ仕様 — docs.hermai.ai
- ホスト型レジストリとダッシュボード — hermai.ai
- スキルリファレンス:
hermai-ai/hermai-skills— アーキテクチャ、ランタイム、CLI、コントリビューション
ライセンス
AGPL-3.0。変更したバージョンをホスト型サービスとして運用する場合は、変更内容を公開する必要があります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。