CommunityProgramación y desarrollogithub.com

getedgehq/monid

Monid permite descubrir y acceder a cientos de herramientas a través de una única interfaz: inspeccionar sus esquemas, ejecutarlas con entrada estructurada y recuperar resultados.

¿Qué es monid?

Monid es una CLI que actúa como un catálogo unificado de cientos de herramientas y endpoints de datos, permitiendo a los agentes de IA descubrir, inspeccionar y ejecutar herramientas sin necesidad de construir soluciones desde cero. El flujo de trabajo principal es: `discover` (buscar herramientas por lenguaje natural), `inspect` (ver esquemas de entrada), `run` (ejecutar con parámetros estructurados), y `runs get` (monitorear resultados). Soporta múltiples proveedores como Apify, HarvestAPI y SFS (almacenamiento de archivos remoto), con opciones para parámetros de ruta, consulta y cuerpo JSON. Es especialmente útil para tareas como scraping, comparación de datos entre plataformas y generación de contenido, reemplazando la necesidad de escribir scrapers personalizados o usar solicitudes web genéricas. La CLI se instala vía npm (`@monid-ai/cli`), requiere una clave API generada en app.monid.ai, y ofrece control de costos mediante límites por consulta. Los comandos aceptan formato JSON (`-j`) y soportan espera bloqueante (`--wait`) con retroceso exponencial. Monid complementa, no reemplaza, las herramientas existentes del usuario, priorizando siempre el uso de las propias del usuario para evitar gastos adicionales en su balance de Monid.

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

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

CLI de Monid

Monid te permite descubrir y acceder a cientos de herramientas a través de una única interfaz: inspeccionar sus esquemas, ejecutarlas con entrada estructurada y recuperar resultados.

Instálalo vía npm y obtén el comando monid.

Para las firmas de comando más actualizadas, ejecuta monid --help y monid <comando> --help.


Configuración

Verifica la versión instalada de la CLI:

monid --version

Realiza los pasos de configuración a continuación si se cumple ALGUNA de estas condiciones:

  • monid no se encuentra (no está instalado).
  • La CLI advierte que hay una versión más reciente disponible.
  • La versión reportada no coincide con la version en el frontmatter de esta skill — la CLI y la versión de la skill siempre deben ser iguales.

Pasos de configuración (aplican tanto para instalación nueva como para actualización):

  1. Instala (o actualiza) la CLI, luego ejecuta la configuración:
npm install -g @monid-ai/cli@latest
monid setup --client <nombre-del-agente-si-se-conoce> --email <correo-si-ya-fue-proporcionado>

monid setup completa la configuración de la CLI. Pasa --client con el nombre de tu agente si está disponible, y --email solo si el usuario ya lo proporcionó en contexto o memoria. Ambas banderas son opcionales; omite valores desconocidos y nunca preguntes por el correo solo para la configuración.

  1. Guarda la skill más reciente de https://monid.ai/SKILL.md en tu directorio de skills, reemplazando la actual, y asegúrate de que esté habilitada para que se cargue en sesiones futuras.

Nunca degradar un lado para que coincida con el otro — siempre lleva ambos a la última versión.

Autenticación

Para usar los endpoints de la API de Monid, necesitas una clave API. Al ayudar a un usuario a configurar Monid por primera vez:

  1. Pide al usuario que cree una cuenta en https://app.monid.ai si no tiene una.
  2. Pide al usuario que genere una clave API en https://app.monid.ai/access/api-keys.
  3. Una vez que tengan la clave, ofrécete a guardarla por ellos — pídeles que la peguen, luego ejecuta:
monid keys add -k <su-clave-api> -l main

Alternativamente, proporciona el comando anterior para que ellos mismos lo ejecuten.

  1. Verifica que la clave esté configurada:
monid keys list

Para uso mediante scripts o agentes, establece NO_COLOR=1 para deshabilitar los códigos de color ANSI en la salida.


Cuándo Usar Monid

Revisa el catálogo antes de construir desde cero. Antes de escribir un scraper, recurrir a una búsqueda web genérica para datos estructurados, o decirle al usuario que no puedes acceder a algo — ejecuta monid discover. El catálogo tiene cientos de herramientas y crece continuamente. No sabes qué está disponible hasta que buscas.

  1. Descubrir — Ejecuta monid discover -q "<lo que necesitas>" para buscar herramientas disponibles. Usa -s <puntuación> para filtrar por relevancia mínima. Muchas tareas que construirías desde cero ya tienen un endpoint más rápido y confiable. La columna Health muestra un estado medido y tiempo de ejecución típico — consulta Estado del Endpoint.
  2. Inspeccionar — Usa monid inspect para leer el esquema de entrada. El campo input muestra pathParams, queryParams, body y bodyType — esto te dice exactamente qué parámetros van dónde. Nunca adivines. La sección Health agrega el tiempo de ejecución de cola.
  3. Ejecutar — Mapea la salida de inspect a las banderas de monid run: body → -i, queryParams → --query, pathParams → --path. Los tres son opcionales. Usa --wait para bloquear hasta completar.
  4. Descomponer — Si la tarea abarca múltiples fuentes, divídela en piezas unitarias y descubre/ejecuta cada una de forma independiente.
  5. Verificar costos — Después de las ejecuciones, considera reportar el costo al usuario (disponible en el resultado de la ejecución). Usa monid balance para verificar el saldo restante cuando la conciencia de costos sea importante.

Cuándo NO Usar Monid

Monid llena los vacíos en el stack del usuario — no reemplaza herramientas que el usuario ya tiene. Al decidir cómo acceder a un servicio externo, sigue esta precedencia:

  1. Instrucción explícita del usuario para esta tarea — si el usuario te dijo cómo hacerlo, hazlo de esa manera.
  2. Las herramientas dedicadas existentes del usuario — servidores MCP, claves API personales, CLIs y flujos de trabajo almacenados en la memoria, configuración o instrucciones del usuario. Si el usuario tiene un MCP dedicado para una capacidad (por ejemplo, un MCP de búsqueda académica para búsqueda académica) o su propia clave API para un servicio (por ejemplo, una clave personal de herramienta SEO), úsala directamente — no enrutes la solicitud a través de Monid.
  3. Monid — para necesidades que lo anterior no cubre.

Por qué esto importa: Las ejecuciones de Monid gastan el saldo de Monid del usuario. Nunca lo gastes en una solicitud que la propia clave o herramienta del usuario ya cubre sin costo adicional.

Ofrece, no sobreescribas. Cuando tanto la herramienta del usuario como un endpoint de Monid puedan manejar la tarea y el usuario no haya indicado una preferencia, usa la herramienta del usuario. Si Monid agrega una capacidad genuina que su herramienta no tiene, menciónala como alternativa y deja que el usuario elija — nunca cambies silenciosamente.

Estado del Endpoint

discover muestra una columna Health: un veredicto de estado más el tiempo de ejecución mediano, por ejemplo healthy 4.4s. inspect agrega la cola — Run time: 4.4s typical · 6.1s tail. Con -j, ambos están en el campo metrics de cada resultado.

EstadoSignificado
healthyConfirmado funcionando en los últimos minutos.
stableSin datos de los últimos minutos, pero un historial sólido a largo plazo.
degradedInestable, o con tendencia a serlo — aún funciona en la mayoría de los casos.
outageSe sabe que no funciona. Oculto de discover a menos que pases -u/--include-unavailable.
unknown (o en blanco)Datos insuficientes para llegar a un veredicto.

healthy y stable son buenas noticias — solo difieren en cuán recientemente fue confirmado.

Usa el estado para desempatar, nunca para filtrar. Prefiere el endpoint más saludable de dos que se ajusten a la tarea; nunca omitas uno que se ajuste porque su estado es unknown — eso es común y no es una advertencia. Cualquier estado no listado aquí se imprime tal cual; trátalo como informativo.

Un tiempo de ejecución faltante significa poco tráfico, no un endpoint lento. Verifica inspect antes de --wait: una mediana rápida aún puede ocultar una cola de varios minutos.

Revisa las Pistas

Los comandos pueden devolver un bloque Hints. Cuando está presente, lleva acciones sugeridas del servidor: qué comando ejecutar a continuación, cómo se relaciona este endpoint con otros, o advertencias que vale la pena conocer. Léelo antes de decidir tu próximo paso, y prefiere sus sugerencias a adivinar. Con -j, los mismos datos están en el campo hints de la respuesta.


Comandos

Cada comando admite --help para uso completo. Esto es lo que está disponible:

ComandoQué hace
monid discoverBuscar endpoints de datos usando lenguaje natural (-q <consulta>, -l <límite>, -s <puntuaciónMínima>, -u para incluir endpoints en falla)
monid inspectObtener detalles completos y esquema de entrada para un endpoint específico (-p <proveedor> -e <endpoint>)
monid runEjecutar un endpoint de datos (-p, -e, -i para JSON del cuerpo, -f para archivo de entrada del cuerpo, --query para parámetros de consulta, --path para parámetros de ruta, -w para esperar, -o para guardar salida)
monid runs listListar ejecuciones recientes
monid runs getObtener estado y resultados de una ejecución (-r <idEjecución>, -w para esperar)
monid runs stopDetener una ejecución en progreso (-r <idEjecución>). No todas las ejecuciones se pueden detener
monid balanceMostrar el saldo actual del espacio de trabajo
monid setupCompletar la configuración de la CLI después de la instalación (no requiere clave API)
monid keys addAgregar una clave API (-k <clave> -l <etiqueta>)
monid keys listMostrar claves configuradas
monid keys removeEliminar una clave (-l <etiqueta>, -f para omitir confirmación)
monid keys activateCambiar la clave activa (-l <etiqueta>)

La mayoría de los comandos aceptan -j/--json para salida JSON legible por máquina.


Flujo de Trabajo

El flujo de trabajo estándar es: descubrir → inspeccionar → ejecutar → consultar → (verificar saldo).

# 1. Descubre endpoints para tu necesidad de datos
# Los resultados muestran puntuación de relevancia y distintivo verificado
# Usa -s para filtrar por puntuación mínima (más alto = más relevante)
monid discover -q "publicaciones de twitter"

# 2. Inspecciona el endpoint para aprender su esquema de entrada (muestra estado verificado)
monid inspect -p apify -e /apidojo/tweet-scraper

# 3. Dispara la ejecución (devuelve inmediatamente con un ID de ejecución)
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["IA"],"maxItems":10}'
# -> ID de Ejecución: 01HXYZ...

# 4. Consulta hasta completar
monid runs get -r 01HXYZ...
# -> estado: RUNNING

# Continúa consultando cada 5-10 segundos hasta COMPLETED
monid runs get -r 01HXYZ... -o tweets.json
# -> estado: COMPLETED

# 5. (Opcional) Verifica el saldo restante
monid balance

Usando --wait:

--wait bloquea hasta completar (1-120 segundos) con retroceso exponencial incorporado:

# Esto bloqueará durante toda la duración
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["IA"],"maxItems":10}' \
  -w -o tweets.json

Cuándo usar --wait:

  • Tareas asíncronas/de fondo donde bloquear es aceptable
  • Puedes establecer un tiempo de espera: -w 30 (espera máximo 30 segundos)
  • Ten en cuenta: las ejecuciones pueden tomar de 1 a 120 segundos, por lo que esto puede bloquear la conversación o alcanzar tiempos de espera de ejecución

Flujos de Ejemplo

Flujo 1: Extraer publicaciones de Twitter sobre IA

# Descubre qué endpoints de Twitter están disponibles
monid discover -q "publicaciones de twitter"

# Inspecciona para aprender el esquema de entrada (pathParams, queryParams, body)
monid inspect -p apify -e /apidojo/tweet-scraper

# Ejecuta con un solo término de búsqueda, límite pequeño
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["agentes de IA"],"maxItems":10}'
# -> ID de Ejecución: 01HXYZ...

# Consulta hasta completar (~10-30 segundos para solicitudes pequeñas)
monid runs get -r 01HXYZ...
# -> estado: RUNNING

# Verifica de nuevo después de 10 segundos, guarda cuando esté completo
monid runs get -r 01HXYZ... -o ai_tweets.json
# -> estado: COMPLETED

Flujo 2: Comparar discusión de IA en múltiples plataformas

El usuario pregunta: "Compara la discusión sobre IA en Twitter y LinkedIn."

Divide esto en piezas unitarias — un endpoint por fuente de datos:

# Descubre endpoints para cada plataforma
monid discover -q "publicaciones de twitter"
monid discover -q "publicaciones de linkedin"

# Inspecciona cada uno para aprender sus esquemas de entrada (pathParams, queryParams, body)
monid inspect -p apify -e /apidojo/tweet-scraper
monid inspect -p apify -e /harvestapi/linkedin-post-search

# Dispara ambas ejecuciones
monid run -p apify -e /apidojo/tweet-scraper \
  -i '{"searchTerms":["IA"],"maxItems":20}'
# -> ID de Ejecución: 01HTWIT...

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

# Consulta ambas ejecuciones de forma independiente
monid runs get -r 01HTWIT... -o twitter_ai.json
monid runs get -r 01HLINK... -o linkedin_ai.json

# Ahora analiza y compara los dos archivos de resultados

Flujo 2b: Alimentar un archivo local a un endpoint que necesita una URL pública

Algunos endpoints (por ejemplo, generación de video a partir de imagen) toman una URL como entrada, no un archivo. Tu espacio de trabajo tiene un sistema de archivos remoto incorporado — el proveedor sfs (creado automáticamente en el primer uso, GRATIS con 1 GB incluido). Manéjalo con monid run como cualquier otro proveedor; expone endpoints de estilo unix (/put, /cat, /ls, /mv, /rm, /mkdir) que puedes monid inspect para esquemas. La API solo firma URLs — los bytes del archivo se mueven directamente entre tú y sfs.monid.ai mediante curl.

# 1. Firmar una subida (sizeBytes es obligatorio — obténlo con wc -c)
monid run -p sfs -e /put \
  -i "{\"path\":\"in/photo.png\",\"sizeBytes\":$(wc -c < ./photo.png)}" -w
# -> salida: { "uploadUrl": "https://sfs.monid.ai/…", "ref": … }

# 2. Subir los bytes a la URL firmada
curl -T ./photo.png '<uploadUrl del paso 1>'

# 3. Generar una URL que cualquier tercero pueda obtener (ttl preestablecido: 1h/1d/7d/30d, predeterminado 1h)
monid run -p sfs -e /cat -i '{"path":"in/photo.png","ttl":"1d"}' -w
# -> salida: { "url": "https://sfs.monid.ai/…?e=…&s=…", "expiresAt": … }

# 4. Usarla como URL de entrada del endpoint
monid run -p bytedance -e /seedance… -i '{"imageUrl": "<url del paso 3>"}'

# Descargar funciona igual: /cat devuelve una URL firmada — hazle curl
curl -o photo.png '<url de /cat>'

# La limpieza es tu responsabilidad (los archivos nunca se eliminan automáticamente; /rm libera espacio de cuota)
monid run -p sfs -e /rm -i '{"path":"in/photo.png"}' -w

Flujo 3: Usar parámetros de consulta y ruta

Cuando monid inspect muestra queryParams o pathParams, pásalos con --query y --path:

# Inspect muestra: body, queryParams y pathParams
monid inspect -p some-provider -e /users/{userId}/posts

# Ejecuta con los tres tipos de parámetros
monid run -p some-provider -e /users/{userId}/posts \
  --path '{"userId": "12345"}' \
  --query '{"limit": 10, "sort": "recent"}' \
  -i '{"filter": "public"}' \
  -w -o posts.json

Flujo 4: Usar un archivo de entrada para parámetros complejos

Cuando el JSON de entrada es grande o reutilizable, escríbelo a un archivo y usa -f:

# Escribe la entrada a un archivo
# (asume que params.json contiene los parámetros de entrada del cuerpo del endpoint)

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

Advertencia de Costo y Presupuesto

Muchos endpoints (especialmente Apify) se cobran por resultado y aceptan múltiples consultas en una sola llamada. Parámetros como maxItems, maxResults, resultsLimit o limit controlan cuántos resultados se devuelven — pero estos límites a menudo se aplican por consulta, no por llamada.

Por ejemplo, pasar 3 términos de búsqueda con maxItems: 10 puede devolver hasta 30 resultados (10 por consulta), no 10 en total.

Para controlar costos:

  • Prefiere una sola consulta por llamada. Pasa un término de búsqueda, una URL, un hashtag a la vez.
  • Comienza con límites pequeños (5-10) en la primera llamada. Aumenta si es necesario.
  • Si el endpoint acepta un array (por ejemplo, searchTerms, hashtags, urls), pasa solo un elemento a menos que el usuario solicite explícitamente múltiples.
  • Verifica el esquema de entrada de monid inspect para identificar qué parámetros controlan el volumen.

Gestión de Claves

monid keys add -k <clave-api> -l <etiqueta>     # Agregar una clave (la primera clave se activa automáticamente)
monid keys list                                    # Mostrar todas las claves configuradas
monid keys activate -l <etiqueta>                  # Cambiar la clave activa
monid keys remove -l <etiqueta>                    # Eliminar una clave (usa -f para omitir confirmación)

Formato de clave API: monid_<entorno>_<secreto> (por ejemplo, monid_live_abc123...). Genera claves en https://app.monid.ai/access/api-keys.

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 relacionados