Communityコーディング&開発github.com

Monid CLI

Monid を使用すると、単一のインターフェースを通じて数百のツールを発見、アクセスできます。スキーマを検査し、構造化された入力で実行し、結果を取得できます。

Monid CLI とは?

Monid CLI は、エージェントや開発者が単一のコマンドラインインターフェースから数百のデータエンドポイントやツールを発見、検査、実行できるようにするスキルです。`monid discover` で自然言語を使って利用可能なツールを検索し、`monid inspect` で入力スキーマ(パスパラメータ、クエリパラメータ、ボディ)を確認し、`monid run` で構造化データを指定して実行します。このスキルは、ユーザーがゼロからスクレイパーやフォールバックを構築する必要性を減らすように設計されており、カタログが成長し続けるため、汎用的なウェブフェッチでは対応できないニッチなタスクに特に役立ちます。`monid` は npm パッケージ(`@monid-ai/cli`)としてインストールされ、ほとんどのコマンドで JSON 出力をサポートし、API キー認証が必要です。このスキルは、Claude Code、Cursor、Codex などの AI エージェントプラットフォームとシームレスに動作し、外部サービスとやり取りするための標準化されたワークフロー(発見→検査→実行→ポーリング)を提供します。コスト認識機能により、ユーザーは使用量を監視でき、スキルはユーザーの既存の専用ツール(MCP サーバー、個人用 API キー)を Monid を経由するよりも優先するルールを適用します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/getedgehq/skills/tree/main/monid

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Monid CLI は何をしますか?

Monid を使用すると、単一のインターフェースを介して数百のツールを発見し、アクセスできます。スキーマを検査し、構造化された入力を使用して実行し、結果を取得できます。

npm でインストールすると、monid コマンドが利用可能になります。

最新のコマンドシグネチャについては、monid --help および monid <command> --help を実行してください。


セットアップ

インストールされている CLI のバージョンを確認します:

monid --version

以下のいずれかに該当する場合は、下記のセットアップ手順を実行してください:

  • monid が見つからない(インストールされていない)。
  • CLI が新しいバージョンが利用可能であると警告した。
  • 報告されたバージョンが、このスキルの frontmatter にある version と 一致しない — CLI とスキルのバージョンは常に同じでなければなりません。

セットアップ手順(新規インストールとアップデートの両方で共通):

  1. CLI をインストール(または更新)し、セットアップを実行します:
npm install -g @monid-ai/cli@latest
monid setup --client <known-agent-name> --email <if-email-already-provided>

monid setup は CLI のセットアップを完了します。エージェント名がわかっている場合は --client を、ユーザーがコンテキストやメモで既にメールアドレスを提供している場合にのみ --email を渡します。両方のフラグはオプションです。不明な値は省略し、セットアップのためにメールアドレスを尋ねることは決してしないでください。

  1. https://monid.ai/SKILL.md から最新のスキルをスキルディレクトリに保存し、現在のものを置き換え、有効になっていることを確認して、将来のセッションで読み込まれるようにします。

片方のバージョンを下げてもう片方に合わせることは決してしないでください。常に両方を最新の状態にしてください。

認証

Monid の API エンドポイントを使用するには、API キーが必要です。ユーザーが初めて Monid をセットアップするのを支援する場合:

  1. ユーザーに https://app.monid.ai でアカウントを作成するよう依頼してください(まだ持っていない場合)。
  2. ユーザーに https://app.monid.ai/access/api-keys で API キーを生成するよう依頼してください。
  3. キーを入手したら、保存することを提案します — ユーザーにキーを貼り付けるよう依頼し、以下を実行します:
monid keys add -k <their-api-key> -l main

あるいは、ユーザーが自分で実行できるように上記のコマンドを提供します。

  1. キーが設定されていることを確認します:
monid keys list

スクリプトやエージェントの使用では、NO_COLOR=1 を設定して出力の ANSI カラーコードを無効にします。


Monid を使用すべき時

ゼロから構築する前にカタログを確認してください。 スクレイパーを作成したり、構造化データのために汎用的なウェブフェッチにフォールバックしたり、ユーザーに何かにアクセスできないと伝える前に — monid discover を実行してください。カタログには数百のツールがあり、継続的に成長しています。検索するまで何が利用可能かはわかりません。

  1. 発見 — monid discover -q "<必要なもの>" を実行して、利用可能なツールを検索します。-s <score> を使用して最小関連性でフィルタリングします。ゼロから構築する多くのタスクには、より高速で信頼性の高いエンドポイントが既に存在します。Health 列には、測定されたステータスと典型的な実行時間が表示されます — エンドポイントヘルス を参照してください。
  2. 検査 — monid inspect を使用して入力スキーマを読み取ります。input フィールドには pathParams、queryParams、body、bodyType が表示されます — これにより、どのパラメータがどこに行くかが正確にわかります。推測は絶対にしないでください。Health セクションにはテール実行時間が追加されます。
  3. 実行 — inspect の出力を monid run フラグにマッピングします: body → -i、queryParams → --query、pathParams → --path。3つすべてはオプションです。--wait を使用して完了するまでブロックします。
  4. 分解 — タスクが複数のソースにまたがる場合は、ユニットごとに分割し、それぞれを独立して発見/実行します。
  5. コストを確認 — 実行後、コストをユーザーに報告することを検討します(実行結果で利用可能)。コスト認識が重要な場合は、monid balance を使用して残高を確認します。

Monid を使用すべきでない時

Monid はユーザーのスタックのギャップを埋めます — ユーザーが既に持っているツールを置き換えるものではありません。外部サービスにアクセスする方法を決定する際は、次の優先順位に従ってください:

  1. このタスクに対する明示的なユーザー指示 — ユーザーが方法を指示した場合は、その方法で行います。
  2. ユーザーの既存の専用ツール — MCP サーバー、個人用 API キー、CLI、およびユーザーのメモリ、設定、または指示に保存されているワークフロー。ユーザーが機能用の専用 MCP(例: 学術検索用の academic-search MCP)またはサービス用の自身の API キー(例: 個人用 SEO ツールキー)を持っている場合は、それを直接使用し、リクエストを Monid 経由でルーティングしないでください。
  3. Monid — 上記でカバーされていないニーズに対して。

なぜこれが重要か: Monid の実行はユーザーの Monid 残高を消費します。 ユーザー自身のキーやツールが追加コストなしで既にカバーしているリクエストに決して費やさないでください。

提供はしますが、上書きはしません。 ユーザーのツールと Monid エンドポイントの両方がタスクを処理でき、ユーザーが好みを述べていない場合は、ユーザーのツールを使用してください。Monid がユーザーのツールにない真の機能を追加する場合は、代替案として言及し、ユーザーに選択させてください — 絶対に黙って切り替えないでください。

エンドポイントヘルス

discover は Health 列を表示します: ステータス判定と実行時間の中央値(例: healthy 4.4s)。inspect はテールを追加します — Run time: 4.4s typical · 6.1s tail。-j を使用すると、両方が各結果の metrics フィールドに含まれます。

ステータス意味
healthy直近数分以内に動作確認済み。
stable直近数分のデータはないが、より長い履歴で強力な実績がある。
degraded不安定、またはその傾向にある — ほとんどの場合まだ動作する。
outage動作していないことが判明している。-u/--include-unavailable を渡さない限り discover からは非表示。
unknown (または空白)判定するのに十分なデータがない。

healthy と stable はどちらも良好なニュースです — 確認されたのがどのくらい最近かだけが異なります。

ヘルスをタイブレーカーとして使用し、フィルタリングには決して使用しないでください。 両方ともタスクに適合する2つのエンドポイントのうち、より健全な方を優先します。ステータスが unknown だからといって適合するものをスキップしないでください — これは一般的であり、警告ではありません。ここにリストされていないステータスはそのまま表示されます。情報として扱ってください。

実行時間がない場合、それはエンドポイントが遅いという意味ではなく、トラフィックが少ないことを意味します。--wait の前に inspect を確認してください: 速い中央値でも、複数分のテールが隠れている可能性があります。

ヒントを確認する

コマンドは Hints ブロックを返すことがあります。存在する場合、サーバーからの推奨アクションが含まれます: 次に実行するコマンド、このエンドポイントが他のエンドポイントとどのように関連するか、または知っておくべき注意事項。次の行動を決定する前にそれを読み、推測よりもその提案を優先してください。-j を使用すると、同じデータがレスポンスの hints フィールドに含まれます。


コマンド

各コマンドは --help で完全な使用方法をサポートしています。利用可能なものは次のとおりです:

コマンド機能
monid discover自然言語を使用してデータエンドポイントを検索します(-q <query>、-l <limit>、-s <minScore>、-u で停止中のエンドポイントを含める)
monid inspect特定のエンドポイントの完全な詳細と入力スキーマを取得します(-p <provider> -e <endpoint>)
monid runデータエンドポイントを実行します(-p、-e、-i でボディJSON、-f でボディ入力ファイル、--query でクエリパラメータ、--path でパスパラメータ、-w で待機、-o で出力を保存)
monid runs list最近の実行を一覧表示します
monid runs get実行のステータスと結果を取得します(-r <runId>、-w で待機)
monid runs stop進行中の実行を停止します(-r <runId>)。すべての実行を停止できるわけではありません
monid balance現在のワークスペースの残高を表示します
monid setupインストール後にCLIのセットアップを完了します(APIキーは不要)
monid keys addAPIキーを追加します(-k <key> -l <label>)
monid keys list設定済みのキーを表示します
monid keys removeキーを削除します(-l <label>、-f で確認をスキップ)
monid keys activateアクティブなキーを切り替えます(-l <label>)

ほとんどのコマンドは、機械可読なJSON出力のために -j/--json を受け入れます。


ワークフロー

標準的なワークフローは: 発見 → 検査 → 実行 → ポーリング → (残高確認)です。

# 1. データニーズに合ったエンドポイントを発見
# 結果には関連性スコアと検証済みバッジが表示されます
# -s を使用して最小スコアでフィルタリング(高いほど関連性が高い)
monid discover -q "twitter posts"

# 2. エンドポイントを検査して入力スキーマを学習(検証済みステータスが表示されます)
monid inspect -p apify -e /apidojo/tweet-scraper

# 3. 実行を開始(実行IDがすぐに返されます)
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["AI"],"maxItems":10}'
# -> Run ID: 01HXYZ...

# 4. 完了するまでポーリング
monid runs get -r 01HXYZ...
# -> status: RUNNING

# 5〜10秒ごとにポーリングを続け、COMPLETEDになるまで待つ
monid runs get -r 01HXYZ... -o tweets.json
# -> status: COMPLETED

# 5. (オプション)残高を確認
monid balance

--wait の使用:

--wait は、組み込みの指数バックオフを使用して、完了するまでブロックします(1〜120秒):

# これは全体の期間ブロックされます
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["AI"],"maxItems":10}' \
  -w -o tweets.json

--wait を使用すべき時:

  • ブロッキングが許容される非同期/バックグラウンドタスク
  • タイムアウトを設定できる場合: -w 30(最大30秒待機)
  • 注意: 実行には1〜120秒かかる可能性があるため、会話がブロックされたり、ランタイムのタイムアウトに達したりする可能性があります

フロー例

フロー 1: AI に関する Twitter 投稿をスクレイピング

# 利用可能なTwitterエンドポイントを発見
monid discover -q "twitter posts"

# 検査して入力スキーマを学習(pathParams、queryParams、body)
monid inspect -p apify -e /apidojo/tweet-scraper

# 1つの検索語句、少ない制限で実行
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["AI agents"],"maxItems":10}'
# -> Run ID: 01HXYZ...

# 完了するまでポーリング(小さなリクエストで約10〜30秒)
monid runs get -r 01HXYZ...
# -> status: RUNNING

# 10秒後にもう一度確認し、完了したら保存
monid runs get -r 01HXYZ... -o ai_tweets.json
# -> status: COMPLETED

フロー 2: プラットフォーム間でのAI議論の比較

ユーザーが「Twitter と LinkedIn でのAI議論を比較して」と依頼した場合。

これをユニットピースに分割 — データソースごとに1つのエンドポイント:

# 各プラットフォームのエンドポイントを発見
monid discover -q "twitter posts"
monid discover -q "linkedin posts"

# それぞれを検査して入力スキーマを学習(pathParams、queryParams、body)
monid inspect -p apify -e /apidojo/tweet-scraper
monid inspect -p apify -e /harvestapi/linkedin-post-search

# 両方の実行を開始
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["AI"],"maxItems":20}'
# -> Run ID: 01HTWIT...

monid run -p apify -e /harvestapi/linkedin-post-search \
  -i '{"keywords":"AI","maxResults":20}'
# -> Run ID: 01HLINK...

# 両方の実行を独立してポーリング
monid runs get -r 01HTWIT... -o twitter_ai.json
monid runs get -r 01HLINK... -o linkedin_ai.json

# 2つの結果ファイルを分析して比較

フロー 2b: パブリックURLが必要なエンドポイントにローカルファイルを供給

一部のエンドポイント(例: 画像から動画への生成)は、ファイルではなくURLを入力として受け取ります。ワークスペースには組み込みのリモートファイルシステムがあります — sfs プロバイダー(初回使用時に自動作成、1 GB 含まれ FREE)。他のプロバイダーと同様に monid run で操作します。Unix スタイルのエンドポイント(/put、/cat、/ls、/mv、/rm、/mkdir)を公開しており、monid inspect でスキーマを確認できます。API は URL に署名するだけです。ファイルのバイトは、curl を介してあなたと sfs.monid.ai の間で直接移動します。

# 1. アップロードに署名(sizeBytes は必須 — wc -c で取得)
monid run -p sfs -e /put \
  -i "{\"path\":\"in/photo.png\",\"sizeBytes\":$(wc -c < ./photo.png)}" -w
# -> output: { "uploadUrl": "https://sfs.monid.ai/…", "ref": … }

# 2. 署名されたURLにバイトをアップロード
curl -T ./photo.png '<uploadUrl from step 1>'

# 3. 任意のサードパーティがフェッチできるURLを発行(ttl プリセット: 1h/1d/7d/30d、デフォルト 1h)
monid run -p sfs -e /cat -i '{"path":"in/photo.png","ttl":"1d"}' -w
# -> output: { "url": "https://sfs.monid.ai/…?e=…&s=…", "expiresAt": … }

# 4. エンドポイントの入力URLとして使用
monid run -p bytedance -e /seedance… -i '{"imageUrl": "<url from step 3>"}'

# ダウンロードも同様: /cat は署名されたURLを返す — curl で取得
curl -o photo.png '<url from /cat>'

# クリーンアップはユーザーの責任(ファイルは自動削除されません。/rm でクォータスペースを解放)
monid run -p sfs -e /rm -i '{"path":"in/photo.png"}' -w

フロー 3: クエリとパスパラメータの使用

monid inspect が queryParams または pathParams を表示する場合、--query と --path で渡します:

# Inspect shows: body、queryParams、および pathParams
monid inspect -p some-provider -e /users/{userId}/posts

# 3つのパラメータタイプすべてを使用して実行
monid run -p some-provider -e /users/{userId}/posts \
  --path '{"userId": "12345"}' \
  --query '{"limit": 10, "sort": "recent"}' \
  -i '{"filter": "public"}' \
  -w -o posts.json

フロー 4: 複雑なパラメータの入力ファイルの使用

入力JSONが大きい、または再利用可能な場合、ファイルに書き込んで -f を使用します:

# 入力をファイルに書き込む
# (params.json にエンドポイントのボディ入力パラメータが含まれていると仮定)

monid run -p apify -e /damilo/google-maps-scraper \
  -f params.json -w -o results.json

コストと予算の警告

多くのエンドポイント(特に Apify)は 結果ごとに課金 され、単一の呼び出しで複数のクエリを受け入れます。maxItems、maxResults、resultsLimit、limit などのパラメータは、返される結果の数を制御します — しかし、これらの制限は多くの場合、呼び出しごとではなくクエリごとに 適用されます。

たとえば、3つの検索語句を maxItems:10 で渡すと、合計10件ではなく、最大 30件の結果(クエリあたり10件)が返される可能性があります。

コストを制御するには:

  • 呼び出しごとに単一のクエリを優先します。 1つの検索語句、1つのURL、1つのハッシュタグを一度に渡します。
  • 最初の呼び出しでは小さな制限(5〜10)から始めます。 必要に応じて増やします。
  • エンドポイントが配列を受け入れる場合(例: searchTerms、hashtags、urls)、ユーザーが明示的に複数を要求しない限り、1つの要素のみを渡します。
  • monid inspect の入力スキーマを確認 して、どのパラメータが量を制御するかを特定します。

キー管理

monid keys add -k <api-key> -l <label>     # キーを追加(最初のキーは自動的にアクティブ化されます)
monid keys list                              # 設定されたすべてのキーを表示
monid keys activate -l <label>               # アクティブなキーを切り替え
monid keys remove -l <label>                 # キーを削除(-f で確認をスキップ)

APIキーの形式: monid_<stage>_<secret>(例: monid_live_abc123...)。https://app.monid.ai でキーを生成します。

Individual skills in this repo

This repo contains 18 individual skills — each has its own dedicated page.

getedgehq/agent-evals

Build evals for an AI agent that already does real work. Use when someone asks "how do I know my agent is right", wants to test an agent before trusting it, compare models on cost versus quality, or turn production failures into tests. Walks from first tasks and yes/no verifiers, to isolated environments, to a trace-driven improvement loop.

getedgehq/cli-ux-review

Audit a command-line tool for user-friendliness — clear situation / next-step / options in every output, colour-highlighted runnable commands, no raw jargon, no silent hangs. Invoke for "CLI UX audit", "review my CLI", "is this CLI intuitive", or before any CLI release.

getedgehq/generate-image

Generate images with OpenAI GPT Image 2 via the Codex CLI, billed through the user's ChatGPT Plus subscription (no OpenAI API key, no per-image API cost). Use when the user asks to create, generate, or make an image, picture, illustration, icon, hero graphic, or concept art from a text prompt.

getedgehq/harness-first

Diagnose and fix an unreliable, expensive, or unsafe LLM agent by auditing its harness (golden set, judge, cost caps, data layer, action approvals, tracing) before blaming or swapping the model. Use when someone says an agent is "burning tokens", "hallucinating", "brittle", gives inconsistent answers, asks whether to switch to a cheaper/better model, or wants to ship an agent or prompt change to customers.

getedgehq/http-error-triage

Run before concluding anything from an HTTP error on a third-party API. Separates a real credential/entitlement problem from a CDN or WAF block, a wrong endpoint, or a client-signature ban. Use whenever an API returns 401/403/402/429 and you are about to say "the key is dead", "credits are exhausted", "the plan lacks access", or "we are rate limited".

getedgehq/linkedin-media-prep

Convert, crop, resize, and compress images and videos for optimal LinkedIn upload quality and file size. Use when the user wants to prepare a photo, image, or video for LinkedIn (profile picture, cover photo, post image, article featured image, post video, or video ad), optimize file size for LinkedIn, crop and resize for LinkedIn dimensions, convert HEIC/RAW/PNG/MOV to LinkedIn-ready JPEG or MP4, or mentions LinkedIn media requirements, specs, or limits.

getedgehq/opendraft

An 18-agent pipeline that turns one topic line into a drafted

getedgehq/people-search

Find and rank professional people for recruiting, partnerships, sales, or research from user-provided data, public web sources, an authenticated search session, or a connected provider. Use for people discovery, LinkedIn or Sales Navigator search design, profile-list ranking, or provider filter translation.

getedgehq/rocketlist

Turn a CV into a shortlist of live startup roles from Rocketlist's public job board, including adjacent job titles the person would never have searched for, each with its published salary, the evidence for the fit, and a direct apply link. Use for "find roles I would be a strong fit for", career pivots, remote or VC-backed job hunts, and salary-visible role discovery.

getedgehq/security-audit-checklist

Run a comprehensive security audit across application code, cloud infrastructure, containers, CI/CD pipelines, and infrastructure-as-code. Covers privacy compliance, OWASP basics, secret leakage, API security, IAM misconfigurations, storage exposure, Kubernetes hardening, and network security. Use when the user asks to audit, review, or harden app or cloud security, check for secrets, scan for XSS/SQLi, verify security headers, review Terraform/CloudFormation, audit AWS/GCP/Azure configs, or perform any security-focused review.

getedgehq/shadcn-first

>-

getedgehq/skills

Develop or review a branded long-form YouTube channel using Simon Kaiser's public creator-led approach: audience fit, recurring formats, natural brand integration, Time with Brand, and an organic, paid, and Shorts strategy. Use for channel strategy, format briefs, and pilots.

getedgehq/skills

Build a YouTube strategy, evidence-backed idea slate, and title plus thumbnail package using Paddy Galloway's public method. Use when planning a channel, choosing concepts, or preparing a video before filming.

getedgehq/skills

Build or review a buyer-centered strategic narrative using Andy Raskin's public method. Use for sales or investor deck stories, homepage positioning, keynotes, launch narratives, and why-now messaging.

getedgehq/skills

Turn a product URL, launch brief, or approved script into a production-ready launch video. Use for product reveals, feature announcements, SaaS launches, and narrated product films; not for generic explainers or editing existing footage.

getedgehq/strip-image-ai-metadata

Strip C2PA and AI-generation metadata from images (PNG, JPEG, WebP) to remove "Generated by AI" / "ChatGPT" / "DALL-E" labels that platforms like LinkedIn, Instagram, and X display. Use when the user wants to clean AI-generated images before posting, remove AI attribution from photos, strip C2PA manifests, sanitize image metadata for professional use, or verify whether an image contains C2PA data.

getedgehq/top-down-comms

>-

getedgehq/workplan

Create, update, or close work plans for multi-step tasks. Use when starting refactors, bug lists, feature work, migrations, or any task with 2+ steps. Also use after auto-compaction to re-orient. Triggers: "workplan", "work plan", "create a plan", "what's the plan", "where was I", or when Claude detects

関連スキル