getedgehq/monid

Monid vous permet de découvrir et d'accéder à des centaines d'outils via une interface unique — inspectez leurs schémas, exécutez-les avec une entrée structurée et récupérez les résultats.

Qu'est-ce que monid ?

Monid est un outil en ligne de commande (CLI) qui sert de passerelle unique vers des centaines d'API de données, éliminant le besoin de construire des scrapers personnalisés ou d'utiliser des appels web génériques. Installé via npm (`npm install -g @monid-ai/cli@latest`), il offre un cycle de vie clair : découvrez des endpoints disponibles avec `monid discover`, inspectez leurs schémas d'entrée précis avec `monid inspect`, exécutez des tâches avec `monid run` (en passant les paramètres via `-i`, `--query`, `--path`), et surveillez les exécutions asynchrones avec `monid runs get`. Il est particulièrement utile pour les agents d'IA (comme Claude Code ou Cursor) qui ont besoin de données structurées provenant de services externes, mais ne remplace jamais les outils dédiés que l'utilisateur possède déjà (comme des serveurs MCP, des clés API personnelles, ou des workflows existants). La priorité est toujours d'utiliser l'outil de l'utilisateur d'abord, et de recourir à Monid uniquement pour combler les lacunes, afin d'éviter des frais inutiles sur le solde Monid. Le CLI supporte la sortie JSON (`-j`), les timeouts configurables (`--wait`), et inclut des fonctionnalités de gestion de clés API et un espace de stockage de fichiers intégré (sfs) pour les endpoints nécessitant des URLs publiques.

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

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

CLI Monid

Monid vous permet de découvrir et d'accéder à des centaines d'outils via une interface unique — inspectez leurs schémas, exécutez-les avec une entrée structurée et récupérez les résultats.

Installez-le via npm et obtenez la commande monid.

Pour les signatures de commandes les plus à jour, exécutez monid --help et monid <commande> --help.


Configuration

Vérifiez la version installée du CLI :

monid --version

Effectuez les étapes de configuration ci-dessous si L'UNE DE CES conditions est vraie :

  • monid est introuvable (non installé).
  • Le CLI a averti qu'une version plus récente est disponible.
  • La version signalée ne correspond pas à la version dans le frontmatter de cette compétence — les versions du CLI et de la compétence doivent toujours être identiques.

Étapes de configuration (identiques pour une nouvelle installation et pour une mise à jour) :

  1. Installez (ou mettez à jour) le CLI, puis exécutez la configuration :
npm install -g @monid-ai/cli@latest
monid setup --client <nom-agent-si-connu> --email <email-si-déjà-fourni>

monid setup termine la configuration du CLI. Passez --client avec le nom de votre agent s'il est disponible, et --email uniquement si l'utilisateur l'a déjà fourni dans le contexte ou la mémoire. Les deux indicateurs sont facultatifs ; omettez les valeurs inconnues et ne demandez jamais l'email uniquement pour la configuration.

  1. Enregistrez la compétence la plus récente depuis https://monid.ai/SKILL.md dans votre répertoire de compétences, en remplaçant l'actuelle, et assurez-vous qu'elle est activée pour qu'elle se charge dans les sessions futures.

Ne jamais rétrograder un côté pour correspondre à l'autre — mettez toujours les deux à la dernière version.

Authentification

Pour utiliser les points de terminaison de l'API Monid, vous avez besoin d'une clé API. Lorsque vous aidez un utilisateur à configurer Monid pour la première fois :

  1. Demandez à l'utilisateur de créer un compte sur https://app.monid.ai s'il n'en a pas.
  2. Demandez à l'utilisateur de générer une clé API sur https://app.monid.ai/access/api-keys.
  3. Une fois qu'il a la clé, proposez de la sauvegarder pour lui — demandez-lui de la coller, puis exécutez :
monid keys add -k <leur-clé-api> -l principal

Alternativement, fournissez la commande ci-dessus pour qu'ils l'exécutent eux-mêmes.

  1. Vérifiez que la clé est configurée :
monid keys list

Pour une utilisation scriptée ou par agent, définissez NO_COLOR=1 pour désactiver les codes de couleur ANSI dans la sortie.


Quand utiliser Monid

Consultez le catalogue avant de construire à partir de zéro. Avant d'écrire un scraper, de recourir à une récupération web générique pour des données structurées, ou de dire à l'utilisateur que vous ne pouvez pas accéder à quelque chose — exécutez monid discover. Le catalogue contient des centaines d'outils et croît continuellement. Vous ne savez pas ce qui est disponible tant que vous n'avez pas cherché.

  1. Découvrir — Exécutez monid discover -q "<ce dont vous avez besoin>" pour rechercher les outils disponibles. Utilisez -s <score> pour filtrer par pertinence minimale. De nombreuses tâches que vous construiriez à partir de zéro ont déjà un endpoint plus rapide et plus fiable. La colonne Santé indique un état mesuré ainsi qu'un temps d'exécution typique — voir Santé des endpoints.
  2. Inspecter — Utilisez monid inspect pour lire le schéma d'entrée. Le champ input montre pathParams, queryParams, body, et bodyType — cela vous indique exactement quels paramètres vont où. Ne devinez jamais. La section Santé ajoute le temps d'exécution récent.
  3. Exécuter — Mappez la sortie de inspect sur les indicateurs de monid run : body → -i, queryParams → --query, pathParams → --path. Les trois sont facultatifs. Utilisez --wait pour bloquer jusqu'à la fin.
  4. Décomposer — Si la tâche couvre plusieurs sources, divisez-la en morceaux unitaires et découvrez/exécutez chacun indépendamment.
  5. Vérifier les coûts — Après les exécutions, envisagez de signaler le coût à l'utilisateur (disponible dans le résultat de l'exécution). Utilisez monid balance pour vérifier le solde restant lorsque la sensibilité aux coûts est importante.

Quand NE PAS utiliser Monid

Monid comble les lacunes de la pile de l'utilisateur — il ne remplace pas les outils que l'utilisateur possède déjà. Lorsque vous décidez comment atteindre un service externe, suivez cette priorité :

  1. Instruction explicite de l'utilisateur pour cette tâche — si l'utilisateur vous a dit comment faire, faites-le de cette façon.
  2. Les outils dédiés existants de l'utilisateur — serveurs MCP, clés API personnelles, CLI, et flux de travail stockés dans la mémoire, la configuration ou les instructions de l'utilisateur. Si l'utilisateur dispose d'un MCP dédié pour une capacité (par exemple, un MCP de recherche académique pour la recherche savante) ou de sa propre clé API pour un service (par exemple, une clé personnelle d'outil SEO), utilisez-la directement — ne routez pas la demande via Monid.
  3. Monid — pour les besoins que les éléments ci-dessus ne couvrent pas.

Pourquoi c'est important : Les exécutions Monid dépensent le solde Monid de l'utilisateur. Ne dépensez jamais pour une demande que la propre clé ou l'outil de l'utilisateur couvre déjà sans frais supplémentaires.

Proposez, ne remplacez pas. Lorsque l'outil de l'utilisateur et un endpoint Monid peuvent tous deux gérer la tâche et que l'utilisateur n'a pas exprimé de préférence, utilisez l'outil de l'utilisateur. Si Monid ajoute une capacité authentique que leur outil n'a pas, mentionnez-la comme alternative et laissez l'utilisateur choisir — ne basculez jamais en silence.

Santé des Endpoints

discover montre une colonne Santé : un verdict d'état plus le temps d'exécution médian, par exemple healthy 4.4s. inspect ajoute la queue — Temps d'exécution : 4.4s typique · 6.1s queue. Avec -j, les deux sont sur le champ metrics de chaque résultat.

StatutSignification
healthyFonctionnement confirmé dans les dernières minutes.
stableAucune donnée des dernières minutes, mais un bon historique sur une période plus longue.
degradedInstable, ou tendant à l'être — fonctionne encore dans la plupart des cas.
outageConnu pour ne pas fonctionner. Caché de discover sauf si vous passez -u/--include-unavailable.
unknown (ou vide)Pas assez de données pour parvenir à un verdict.

healthy et stable sont tous deux de bonnes nouvelles — ils diffèrent uniquement par la récence de la confirmation.

Utilisez la santé pour départager, jamais pour filtrer. Préférez le plus sain de deux endpoints qui conviennent tous deux à la tâche ; ne sautez jamais un endpoint qui convient parce que son statut est unknown — c'est courant et ce n'est pas un avertissement. Tout statut non listé ici est imprimé tel quel ; traitez-le comme informatif.

Un temps d'exécution manquant signifie un faible trafic, pas un endpoint lent. Vérifiez inspect avant --wait : une médiane rapide peut encore cacher une queue de plusieurs minutes.

Vérifiez les Indices

Les commandes peuvent renvoyer un bloc Indices. Lorsqu'il est présent, il contient des actions suggérées par le serveur : quelle commande exécuter ensuite, comment cet endpoint se rapporte à d'autres, ou des mises en garde utiles. Lisez-le avant de décider de votre prochaine action et préférez ses suggestions à des suppositions. Avec -j, les mêmes données se trouvent sur le champ hints de la réponse.


Commandes

Chaque commande prend en charge --help pour une utilisation complète. Voici ce qui est disponible :

CommandeCe qu'elle fait
monid discoverRechercher des endpoints de données en langage naturel (-q <requête>, -l <limite>, -s <scoreMin>, -u pour inclure les endpoints en panne)
monid inspectObtenir les détails complets et le schéma d'entrée pour un endpoint spécifique (-p <fournisseur> -e <endpoint>)
monid runExécuter un endpoint de données (-p, -e, -i pour le JSON du corps, -f pour le fichier d'entrée du corps, --query pour les paramètres de requête, --path pour les paramètres de chemin, -w pour attendre, -o pour sauvegarder la sortie)
monid runs listLister les exécutions récentes
monid runs getObtenir l'état et les résultats d'une exécution (-r <runId>, -w pour attendre)
monid runs stopArrêter une exécution en cours (-r <runId>). Toutes les exécutions ne peuvent pas être arrêtées
monid balanceAfficher le solde actuel de l'espace de travail
monid setupTerminer la configuration du CLI après l'installation (aucune clé API requise)
monid keys addAjouter une clé API (-k <clé> -l <étiquette>)
monid keys listAfficher les clés configurées
monid keys removeSupprimer une clé (-l <étiquette>, -f pour ignorer la confirmation)
monid keys activateChanger la clé active (-l <étiquette>)

La plupart des commandes acceptent -j/--json pour une sortie JSON lisible par machine.


Flux de travail

Le flux de travail standard est : découvrir → inspecter → exécuter → interroger → (vérifier le solde).

# 1. Découvrez des endpoints pour votre besoin de données
# Les résultats montrent le score de pertinence et le badge vérifié
# Utilisez -s pour filtrer par score minimum (plus élevé = plus pertinent)
monid discover -q "posts twitter"

# 2. Inspectez l'endpoint pour connaître son schéma d'entrée (affiche le statut vérifié)
monid inspect -p apify -e /apidojo/tweet-scraper

# 3. Lancez l'exécution (retourne immédiatement avec un ID d'exécution)
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["IA"],"maxItems":10}'
# -> ID d'exécution : 01HXYZ...

# 4. Interrogez pour l'achèvement
monid runs get -r 01HXYZ...
# -> statut : RUNNING

# Continuez à interroger toutes les 5 à 10 secondes jusqu'à COMPLETED
monid runs get -r 01HXYZ... -o tweets.json
# -> statut : COMPLETED

# 5. (Facultatif) Vérifiez le solde restant
monid balance

Utilisation de --wait :

--wait bloque jusqu'à la fin (1 à 120 secondes) avec une temporisation exponentielle intégrée :

# Cela bloquera pour toute la durée
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["IA"],"maxItems":10}' \
  -w -o tweets.json

Quand utiliser --wait :

  • Tâches asynchrones/en arrière-plan où le blocage est acceptable
  • Vous pouvez définir un délai d'attente : -w 30 (attendre max 30 secondes)
  • Soyez conscient : les exécutions peuvent prendre 1 à 120 secondes, cela peut donc bloquer la conversation ou atteindre les délais d'attente d'exécution

Flux d'exemple

Flux 1 : Scraper les posts Twitter sur l'IA

# Découvrez quels endpoints Twitter sont disponibles
monid discover -q "posts twitter"

# Inspectez pour connaître le schéma d'entrée (pathParams, queryParams, body)
monid inspect -p apify -e /apidojo/tweet-scraper

# Exécutez avec un seul terme de recherche, petite limite
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["agents IA"],"maxItems":10}'
# -> ID d'exécution : 01HXYZ...

# Interrogez pour l'achèvement (~10-30 secondes pour les petites demandes)
monid runs get -r 01HXYZ...
# -> statut : RUNNING

# Vérifiez à nouveau après 10 secondes, sauvegardez lorsque terminé
monid runs get -r 01HXYZ... -o ai_tweets.json
# -> statut : COMPLETED

Flux 2 : Comparer les discussions sur l'IA entre plateformes

L'utilisateur demande : "Comparez les discussions sur l'IA sur Twitter et LinkedIn."

Divisez cela en morceaux unitaires — un endpoint par source de données :

# Découvrez des endpoints pour chaque plateforme
monid discover -q "posts twitter"
monid discover -q "posts linkedin"

# Inspectez chacun pour connaître leurs schémas d'entrée (pathParams, queryParams, body)
monid inspect -p apify -e /apidojo/tweet-scraper
monid inspect -p apify -e /harvestapi/linkedin-post-search

# Lancez les deux exécutions
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["IA"],"maxItems":20}'
# -> ID d'exécution : 01HTWIT...

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

# Interrogez les deux exécutions indépendamment
monid runs get -r 01HTWIT... -o twitter_ai.json
monid runs get -r 01HLINK... -o linkedin_ai.json

# Analysez et comparez maintenant les deux fichiers de résultats

Flux 2b : Alimenter un fichier local vers un endpoint qui a besoin d'une URL publique

Certains endpoints (par exemple, la génération image- vers-vidéo) prennent une URL en entrée, pas un fichier. Votre espace de travail dispose d'un système de fichiers distant intégré — le fournisseur sfs (créé automatiquement lors de la première utilisation, GRATUIT avec 1 Go inclus). Pilotez-le avec monid run comme n'importe quel autre fournisseur ; il expose des endpoints de type unix (/put, /cat, /ls, /mv, /rm, /mkdir) que vous pouvez monid inspect pour les schémas. L'API ne signe que les URL — les octets du fichier se déplacent directement entre vous et sfs.monid.ai via curl.

# 1. Signez un téléchargement (sizeBytes est requis — obtenez-le avec wc -c)
monid run -p sfs -e /put \
  -i "{\"path\":\"in/photo.png\",\"sizeBytes\":$(wc -c < ./photo.png)}" -w
# -> sortie : { "uploadUrl": "https://sfs.monid.ai/…", "ref": … }

# 2. Téléchargez les octets vers l'URL signée
curl -T ./photo.png '<uploadUrl de l'étape 1>'

# 3. Générez une URL que tout tiers peut récupérer (ttl preset : 1h/1j/7j/30j, défaut 1h)
monid run -p sfs -e /cat -i '{"path":"in/photo.png","ttl":"1j"}' -w
# -> sortie : { "url": "https://sfs.monid.ai/…?e=…&s=…", "expiresAt": … }

# 4. Utilisez-la comme URL d'entrée pour l'endpoint
monid run -p bytedance -e /seedance… -i '{"imageUrl": "<url de l'étape 3>"}'

# Le téléchargement fonctionne de la même manière : /cat renvoie une url signée — curl it
curl -o photo.png '<url de /cat>'

# Le nettoyage vous appartient (les fichiers ne sont jamais automatiquement supprimés ; /rm libère de l'espace de quota)
monid run -p sfs -e /rm -i '{"path":"in/photo.png"}' -w

Flux 3 : Utilisation de paramètres de requête et de chemin

Lorsque monid inspect montre queryParams ou pathParams, passez-les avec --query et --path :

# inspect montre : body, queryParams, et pathParams
monid inspect -p some-provider -e /users/{userId}/posts

# Exécutez avec les trois types de paramètres
monid run -p some-provider -e /users/{userId}/posts \
  --path '{"userId": "12345"}' \
  --query '{"limit": 10, "sort": "recent"}' \
  -i '{"filter": "public"}' \
  -w -o posts.json

Flux 4 : Utilisation d'un fichier d'entrée pour des paramètres complexes

Lorsque le JSON d'entrée est volumineux ou réutilisable, écrivez-le dans un fichier et utilisez -f :

# Écrivez l'entrée dans un fichier
# (supposons que params.json contienne les paramètres d'entrée du corps de l'endpoint)

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

Avertissement sur les Coûts et le Budget

De nombreux endpoints (en particulier Apify) sont facturés par résultat et acceptent plusieurs requêtes en un seul appel. Des paramètres comme maxItems, maxResults, resultsLimit, ou limit contrôlent le nombre de résultats renvoyés — mais ces limites sont souvent appliquées par requête, pas par appel.

Par exemple, passer 3 termes de recherche avec maxItems: 10 peut renvoyer jusqu'à 30 résultats (10 par requête), pas 10 au total.

Pour contrôler les coûts :

  • Préférez une seule requête par appel. Passez un terme de recherche, une URL, un hashtag à la fois.
  • Commencez avec de petites limites (5-10) lors du premier appel. Augmentez si nécessaire.
  • Si l'endpoint accepte un tableau (par exemple searchTerms, hashtags, urls), ne passez qu'un seul élément, sauf si l'utilisateur demande explicitement plusieurs.
  • Vérifiez le schéma d'entrée à partir de monid inspect pour identifier les paramètres qui contrôlent le volume.

Gestion des Clés

monid keys add -k <clé-api> -l <étiquette>     # Ajouter une clé (la première clé est auto-activée)
monid keys list                              # Afficher toutes les clés configurées
monid keys activate -l <étiquette>               # Changer la clé active
monid keys remove -l <étiquette>                 # Supprimer une clé (utilisez -f pour ignorer la confirmation)

Format de la clé API : monid_<stade>_<secret> (par exemple monid_live_abc123...). Générez des clés sur https://app.mon

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

Skills associés