CLI de Ezeo
Ezeo SEO desde tu terminal y desde tu agente de código, como tú.
Qué es
Un paquete, un único registro de comandos. "ezeo <comando>" es el CLI y "ezeo mcp" sirve los mismos comandos a cualquier agente compatible con MCP, de modo que un comando que funciona en la terminal funciona igual dentro de Claude Code o Codex.
Es para cualquier propietario, administrador o miembro de una organización de Ezeo: tanto el equipo de Ezeo como los clientes de autoservicio. Las cuentas de cliente usan la aplicación web. El CLI actúa como el usuario que inició sesión, así que la seguridad a nivel de fila, la pertenencia a la organización y los límites de gasto controlan cada llamada, y nunca usa una clave de service role. "ezeo login" rechaza una cuenta de cliente y no guarda nada.
Si "ezeo whoami" indica que tu organización tiene cero proyectos, añade tu sitio en https://ezeo.ai/app o, si instalaste Ezeo con la app de Ezeo para Shopify, reclama tu tienda en https://ezeo.ai/app/shopify/link.
Instalación
Requiere Node 22 o superior. Instala el paquete desde npm y después inicia sesión:
npm i -g @ezeo/cli
ezeo login
ezeo whoamiDespués, cada comando se ejecuta como "ezeo <comando>". Vuelve a ejecutar el mismo comando de instalación para actualizar.
Iniciar sesión
"ezeo login" sin opciones abre el inicio de sesión en el navegador (Google). Google siempre muestra su selector de cuentas, así que elige la cuenta cuyo acceso a Ezeo quieres que use el CLI. Después la terminal muestra con qué usuario iniciaste sesión.
ezeo login
ezeo login --password
ezeo whoami"ezeo login --password" pide correo y contraseña en la terminal, para una máquina sin navegador; nunca se leen de los argumentos ni del entorno. La sesión se guarda en ~/.config/ezeo/credentials.json (modo 0600). "ezeo logout" la elimina.
Elige un proyecto, gana el de mayor prioridad: --project, luego la variable EZEO_PROJECT, luego project = "Nombre" en un .ezeo.toml buscado hacia arriba desde el directorio actual, y por último lo que guardó "ezeo use". Los nombres coinciden por prefijo; un prefijo ambiguo es un error que lista los candidatos.
Referencia de comandos
Todos los comandos aceptan --json. La ausencia de dato se muestra como un guion en las tablas y como null en JSON, nunca como 0.
Cuenta y proyecto
ezeo login [--password]Inicia sesión con el navegador (Google), o con correo y contraseña usando --password.
gratisezeo logoutCierra la sesión y elimina la sesión guardada.
gratisezeo whoamiRol, indicador de superadmin, organización y cuántos proyectos puede ver esta cuenta.
gratisezeo use <project>Recuerda un proyecto predeterminado para esta máquina.
gratis
Proyectos, estado, preguntas y resumen
ezeo projectsTodos los proyectos que esta cuenta puede ver, con id, dominio y estado.
gratisezeo statusQué está programado por servicio y los últimos 10 intentos de sincronización.
gratisezeo ask "<question>"Una respuesta construida con los datos en vivo del proyecto mediante llamadas a herramientas.
llmezeo brief [--mode] [--refresh]El resumen del proyecto, sintetizado. "ezeo brief --no-synthesize" es gratis y no usa LLM.
llm
Informes y resumen semanal
ezeo readout [--week YYYY-MM-DD]El documento semanal de "qué cambió", con su cobertura.
gratisezeo metrics search [--days 28]Totales de Search Console y la cobertura que hay detrás.
gratis
Artículos e ideas de contenido
ezeo ideas [--limit] [--status]El backlog de temas de contenido, la mejor oportunidad primero.
gratisezeo articles list [--status s]Artículos recientes y cada ejecución en curso.
gratisezeo articles waitingCada ejecución que espera a una persona, en todos tus proyectos.
gratisezeo articles show <id>Una ejecución o artículo, el cuerpo completo y su content_hash.
gratisezeo articles watch <run>Sigue una ejecución hasta que termine.
gratisezeo articles request [--count N]Inicia N ejecuciones de artículos para esta semana ISO.
pipelineezeo articles approve <run> --hash <content_hash>Aprueba en la puerta humana del artículo, con el content_hash que leíste.
pipelineezeo articles approve-images <run> --hash <image_set_hash>Aprueba en la puerta humana de imágenes, con el image_set_hash.
pipelineezeo articles retry <run> --reason "…"Devuelve al pipeline una ejecución aparcada o fallida.
pipelineezeo articles cancel <run> --reason "…"Abandona una ejecución aparcada o en espera. No gasta nada y no se puede deshacer.
gratis
Auditorías, rastreo y conversión
ezeo audit [--url] [--type]Auditoría técnica, de contenido o GEO de una página más señales del sitio.
llmezeo cro audit [--url]Auditoría de tasa de conversión de una página: siete puntuaciones por categoría, hallazgos y victorias rápidas.
scrapeezeo cro hypotheses [--status s] [--limit N]Las hipótesis de pruebas A/B del proyecto, de mayor a menor puntuación ICE, con página, métrica de éxito y estado.
gratisezeo cro brief <id>El brief listo para diseñar de una hipótesis A/B: evidencia de la página y pasos de entrega para Figma o Paper.
gratisezeo crawl statusEl último rastreo completo del sitio: fase, páginas, enlaces y hallazgos (superadmin).
gratisezeo crawl findings [--type t] [--limit N]Las páginas detrás de esos recuentos: enlaces rotos, 404, duplicados y noindex.
gratisezeo crawl start [--max-pages N] [--force]Inicia un rastreo completo del sitio (superadmin), con precio por página.
dfs
Palabras clave, posiciones, backlinks y competidores
ezeo keywords opportunities [--min-pos …]Consultas a distancia de ataque, puntuadas, indicando si existe contenido.
gratisezeo keywords suggest [--count] [--focus]Sugerencias de palabras clave con IA, cada una con su motivo.
llmezeo keywords research <mode> [--keywords|--domain]Investigación de DataForSEO Labs en varios modos, para palabras clave o un dominio.
dfsezeo keywords volume <kw…>Volumen de búsqueda de Google para las palabras clave indicadas.
dfsezeo keywords trends <kw…>Tendencia de búsqueda de Google para las palabras clave indicadas.
dfsezeo rankings check [--keywords|--due|--all]Comprobación de SERP en vivo, con precio por palabra clave.
dfsezeo backlinks <mode> [--competitor] [--refresh]Perfil de backlinks en varios modos; --refresh es lo que fuerza una consulta nueva.
dfsezeo competitors analyze <domain> [--keywords]Lee la página de un competidor y la compara con el proyecto.
llm
Gasto
ezeo spend [--month YYYY-MM]El gasto de IA de la organización en el mes en curso, el gasto de DataForSEO del mes en curso y el desglose de IA por proyecto del mes elegido cuando tu rol lo permite.
gratis
Agentes y herramientas
ezeo mcpSirve cada comando no meta a un cliente MCP por stdio.
gratisezeo setup claude|codex|grok|gemini|cursorRegistra "ezeo mcp" en un agente de código compatible; los agentes compatibles se muestran en el uso.
gratisezeo help [--agent]Lista cada comando con su coste; --agent imprime la referencia completa para agentes.
gratisezeo skill install [--dry-run]Escribe la referencia para agentes en ~/.claude/skills/ezeo/SKILL.md.
gratis
Clases de coste
gratisLee datos que Ezeo ya tiene. No se gasta nada.llmUna llamada a OpenRouter, cargada al proyecto.dfsGasto de DataForSEO contra los límites mensuales compartidos.scrapeUn rastreo de página con Firecrawl, cargado a Ezeo.pipelineInicia o reanuda ejecuciones de artículos, cada una con gasto de LLM e imágenes.
Comandos de pago: simulación y luego confirmación
Cada comando llm, dfs, scrape y pipeline imprime lo que costará antes de ejecutarse. En una terminal después se ejecuta, así que pulsa Ctrl-C si el coste no es el que quieres; cuando stdin no es una terminal, el comando necesita --yes. Si la política de costes rechaza un comando, termina con el código 5 antes de cualquier llamada de red, así que no se gastó nada.
Dentro de un cliente MCP no hay nadie a quien preguntar, así que una herramienta de pago primero devuelve una simulación y un código de confirmación, y solo se ejecuta cuando se vuelve a llamar con la misma entrada y ese código. El código está ligado a la herramienta y a su entrada exacta, y muere con el proceso del servidor. No es de un solo uso, por lo que cada llamada confirmada puede volver a gastar.
Los dos comandos approve requieren --hash, tomado de "ezeo articles show", que lo imprime junto al cuerpo del artículo. No hay valor por defecto ni búsqueda, así que un artículo no se puede aprobar sin haberlo leído. "ezeo articles cancel" no gasta nada pero no se puede deshacer.
Usarlo dentro de agentes
"ezeo mcp" sirve el registro por stdio. "ezeo setup" lo registra en un agente por ti e imprime exactamente lo que ejecuta; añade --dry-run para imprimir sin cambiar nada.
ezeo setup claude
ezeo setup codex
ezeo setup grok
ezeo setup gemini
ezeo setup cursor
ezeo setup claude --dry-runInstala la referencia para agentes como una skill de Claude para que el agente conozca las reglas antes de llamar a nada. "ezeo help --agent" imprime la referencia y "ezeo skill install" la escribe en ~/.claude/skills/ezeo/SKILL.md.
ezeo help --agent
ezeo skill install
ezeo skill install --dry-runPor MCP, una llamada que sigue en curso tras 45 segundos devuelve STILL RUNNING y un id de trabajo; la herramienta ezeo_job recoge el resultado.
Códigos de salida
- 0: correcto
- 1: uso, por ejemplo una opción incorrecta o un proyecto ambiguo
- 2: sin sesión iniciada, o el rol es rechazado
- 3: el servidor respondió que no
- 4: la petición nunca llegó al servidor
- 5: rechazado localmente por la política de costes; no se gastó nada
Fuente de verdad: ezeo-cli/README.md y ezeo-cli/docs/AGENT.md en el repositorio de Ezeo.