auto-geo
oficialMotor de publicación de contenido optimizado con GEO para visibilidad en IA
¿Qué puedes hacer con Auto Geo MCP?
- Auditar cualquier página para preparación de citas de IA — ejecute
auto-geo doctoren una URL para obtener un informe puntuado que verifica presencia de TL;DR, encabezados en formato de pregunta, densidad de entidades, JSON-LD y más. - Generar páginas optimizadas para GEO a partir de consultas objetivo — use
auto-geo writepara producir páginas JSON validadas y listas para publicar que cumplen con la arquitectura completa de citas de siete bloques. - Reescribir una página existente para superar todas las verificaciones GEO — proporcione una URL a
auto-geo fixy reciba una versión regenerada que se proyecta para obtener una puntuación de 8/8 en la auditoría de preparación de citas. - Medir si los motores de IA realmente citan su dominio — ejecute
auto-geo checkcontra Perplexity, ChatGPT, Gemini, Claude o Grok para ver qué consultas rastreadas devuelven su dominio como fuente. - Rastrear tendencias de cobertura de citas a lo largo del tiempo — use
auto-geo historypara ver porcentajes de cobertura por ejecución, deltas por motor y qué consultas fueron citadas recientemente o perdidas. - Descubrir consultas de alta intención para rastrear — deje que
auto-geo prompts discoveranalice su dominio y proponga las preguntas por las que debería competir en los resultados de búsqueda de IA.
Documentación
auto-geo
El motor GEO de código abierto que hace que tu marca sea mencionada en ChatGPT, Claude, Gemini, Perplexity y Grok.
Audita, genera, corrige y rastrea las páginas que los modelos de lenguaje extenso citan — una CLI, basada en archivos, licencia MIT.
Cuando alguien le hace a ChatGPT, Perplexity, Claude, Gemini o a las AI Overviews de Google una pregunta que tu negocio debería responder, ¿esos motores citan tu dominio? auto-geo es el ciclo completo para hacer que eso suceda y demostrar que está sucediendo:
auto-geo init # set up the system once
auto-geo doctor # audit any page for citation readiness
auto-geo write # generate publish-ready pages from target queries
auto-geo fix # rewrite an existing page so it passes the audit
auto-geo check # measure: do AI engines actually cite you?
auto-geo history # track citation coverage over time
Todo está basado en archivos y es versionable — prompts rastreados, historial de verificaciones, configuración. Sin servidor, sin cuenta, sin base de datos. A una instalación de distancia:
npm i -g auto-geo
Creado por Shadow — un laboratorio de investigación de medios que construye la próxima generación de inteligencia de medios y tecnología de comunicaciones impulsada por IA, en asociación con los equipos que pusieron a OpenAI, TikTok, Meta, Amazon y Lovable en el mapa. Shadow usa
auto-geopara publicar en shadow.inc/resources.
Contenido
- Inicio rápido
- ¿Qué es GEO?
- El flujo de trabajo
auto-geo init— configura el sistemaauto-geo doctor— audita cualquier página para verificar su preparación para citasauto-geo write— genera páginas a partir de consultasauto-geo fix— reescribe una página para que esté lista para ser citadaauto-geo prompts— gestiona tus prompts rastreadosauto-geo check— mide la cobertura real de citasauto-geo history— cobertura de citas a lo largo del tiempo- Configuración
- La arquitectura de la página
- Salida amigable para agentes
- Amigable con LLM
- Contribuir
- Licencia
Inicio rápido
0. Instala una vez (o ejecuta cualquier comando de una sola vez mediante npx auto-geo@latest)
npm i -g auto-geo
1. Configura — archivo de configuración, espacios para claves en .env.local y el espacio de trabajo .auto-geo
auto-geo init
2. Añade una clave API a .env.local (cargada automáticamente por cada comando)
3. Audita cualquier página — tuya o de un competidor
auto-geo doctor https://example.com/some-page
4. Rastrea los prompts para los que quieres que los motores de IA te citen
auto-geo prompts add "mejores herramientas de monitoreo de medios" "qué es GEO"
5. Mide — cada ejecución se guarda en el historial automáticamente
auto-geo check
6. Observa cómo evoluciona la cobertura a lo largo del tiempo
auto-geo history
Se requiere Node >=18.17. Para actualizar más tarde es npm i -g auto-geo@latest. Otras formas de instalación:
brew install shadowresearch/tap/auto-geo # Homebrew (macOS / Linux) mise use -g npm:auto-geo # mise
Cada versión incluye ejecutables independientes (no se requiere Node) para macOS, Linux y Windows.
¿Qué es GEO?
Optimización para Motores Generativos es la disciplina de hacer que tus páginas sean las que los motores de búsqueda de IA citan cuando responden una pregunta. Es el sucesor del SEO: en lugar de posicionarte en una lista de enlaces, compites por ser citado dentro de la respuesta.
Las páginas que ganan no son publicaciones de blog. La investigación empírica vincula la probabilidad de cita con una forma específica:
- Arquitectura, no prosa. Bloques nombrados y validados — TL;DR, introducción, secciones H2 en formato de pregunta, guías relacionadas, conclusiones clave, FAQ, divulgación. Los motores de IA extraen fragmentos estructurados; una estructura rígida mejora la extracción.
- Respuesta primero. Cada sección comienza con una "cápsula de respuesta" de 40 a 60 palabras que responde completamente a la pregunta de la sección antes de cualquier párrafo de apoyo.
- Encabezados en formato de pregunta. Los H2 se escriben como las preguntas que los usuarios realmente hacen a los motores de IA.
- Densidad de entidades. Entidades nombradas (empresas, personas, productos) en alta densidad — vinculado a una probabilidad de cita ~4.8 veces mayor.
- Derivado del esquema. JSON-LD de Article + FAQPage emitido desde la estructura, no escrito a mano.
auto-geo codifica esta forma en un esquema estricto (ver docs/sop.md — el procedimiento operativo estándar completo), audita cualquier URL en función de él, genera nuevas páginas que se ajustan a él y luego cierra el ciclo midiendo si los motores realmente te citan.
El flujo de trabajo
┌──────────────────────────────────────────────────────┐
│ auto-geo init │
│ config · .env.local · .auto-geo/ workspace │
└──────────────────────────────────────────────────────┘
│
┌──────────┼──────────────┬─────────────────┐
▼ ▼ ▼ ▼
doctor write fix prompts
audit a generate rewrite an track the queries
page new pages existing page that matter to you
│ │ │ │
└──────────┴──────────────┴────────┬────────┘
▼
check ──── saves every run ────┐
measure actual ▼
citations history
coverage over time,
newly cited / lost
doctor mide la preparación (¿esta página tiene la forma adecuada para ser citada?). check mide el resultado (¿está siendo citada realmente?). history convierte los resultados en una línea de tendencia.
auto-geo init — configura el sistema
auto-geo init # interactivo (un puñado de preguntas) auto-geo init --yes # plantilla no interactiva
Un comando prepara todo:
| Archivo | Qué es |
|---|---|
| auto-geo.config.json | Tus valores predeterminados — dominio, proveedor, modelo, autor. Versionable; nunca guarda secretos. |
| .env.local | Espacios para claves API. Cargado automáticamente por cada comando. Añádelo a .gitignore. |
| .auto-geo/prompts.txt | Tus prompts rastreados — uno por línea, se permiten comentarios con #. |
| .auto-geo/checks/ | Cada ejecución de verificación, guardada como JSON. Los datos detrás del historial. |
El flujo interactivo termina preguntando por los prompts que deseas rastrear, por lo que un proyecto nuevo pasa de cero a una línea base de citas medible en una sola sesión. init nunca sobrescribe un .env.local existente y se niega a sobrescribir una configuración existente sin --force.
auto-geo doctor — audita cualquier página para verificar su preparación para citas
Ejecútalo en cualquier URL — tuya, de un competidor, cada página en tu sitemap — y obtén un informe estructurado sobre las señales de cita que buscan los motores de IA.
auto-geo doctor https://example.com/some-page
✓ TL;DR present (52 words, in range)
✗ Question-format H2 headings (2 of 6 are question-format; SOP §3 targets all)
✓ Article JSON-LD present
✗ FAQPage JSON-LD present (No FAQPage JSON-LD block detected)
✓ Entity density (12.3/1k words)
✗ Image cadence (0 images for 1247 words)
✓ Answer-first first paragraph
✓ No self-link in related guides
Score: 5 / 8 checks pass — moderate GEO posture
Top 3 fixes (ranked by citation lift):
1. Add a FAQPage JSON-LD block. Each Q is a citable extraction target.
2. Convert 4 statement-form H2 headings to question form.
3. Add 2 images with descriptive alt text (entity + context).
Sitemap completo — puntuación media, páginas con puntuación más baja, fallos más comunes
auto-geo doctor --site https://example.com/sitemap.xml --max-pages 50
JSON para CI / paneles
auto-geo doctor https://example.com/page --json
Código de salida 0 si la puntuación ≥ 75%, 1 en caso contrario — úsalo como control para despliegues. Consulta docs/doctor.md para la referencia completa de verificación.
auto-geo write — genera páginas a partir de consultas
Dale tu dominio y las consultas para las que quieres ser citado; obtén archivos JSON validados y listos para publicar — una página estructurada por consulta, que se ajusta a la arquitectura GEO completa.
auto-geo write
--query "qué es GEO"
--query "GEO vs SEO"
--out ./resources
✓ "what is GEO" → ./resources/geo.json (validated, ~$0.06)
✓ "GEO vs SEO" → ./resources/geo-vs-seo.json (validated, ~$0.06)
Total: 2 pages · 2 ok · ~$0.12 spent · 31s elapsed
El prompt del sistema codifica el SOP de GEO — longitud del TL;DR, ventanas de cápsula de respuesta, superlativos prohibidos, estructura de FAQ — y la salida está restringida al esquema a nivel del sistema de tipos a través del generateObject del Vercel AI SDK, con un bucle de autocorrección acotado en caso de fallo de validación. Valores predeterminados: gpt-5.4 (OpenAI) o claude-sonnet-4-6 (Anthropic), autodetectado según la clave API que tengas configurada.
Simulación — plan + estimación de coste, sin llamadas al LLM
auto-geo write --query "qué es X" --dry-run
Lote desde un archivo, anthropic, 4 páginas a la vez
auto-geo write --queries-file queries.txt --provider anthropic --concurrency 4
Con un archivo de configuración (auto-geo init), --domain, los campos de autor y el proveedor provienen de la configuración — un simple --query es todo lo que necesitas. Consulta docs/write.md.
auto-geo fix — reescribe una página para que esté lista para ser citada
Donde doctor te dice qué está mal, fix produce una reescritura optimizada para GEO que pasa las 8 verificaciones — obtenida, auditada, regenerada y validada contra el mismo esquema que usa write.
auto-geo fix https://www.example.com/some-blog-post --out ./fixed.json
Score (before): 3 / 8
Generating rewrite via openai gpt-5.4...
Score (projected): 8 / 8 — strong GEO posture
→ ./fixed.json (validated)
auto-geo fix https://example.com/page --provider anthropic # Claude en su lugar auto-geo fix https://example.com/page --dry-run # solo auditoría + estimación de coste
Consulta docs/fix.md.
auto-geo prompts — gestiona tus prompts rastreados
Tus prompts rastreados son las preguntas para las que quieres que los motores de IA respondan citando tu dominio. Residen en .auto-geo/prompts.txt (texto plano, versionable) y son con lo que check se ejecuta por defecto.
auto-geo prompts add "mejores herramientas de monitoreo de medios" "qué es GEO" auto-geo prompts # lista numerada auto-geo prompts rm 2 # por índice — o por texto exacto
¿No sabes qué rastrear? Deja que el motor proponga tu conjunto de prompts — discover obtiene tu página de inicio, observa lo que ya rastreas y hace que el LLM genere las consultas de alta intención por las que deberías competir:
auto-geo prompts discover --dry-run # previsualiza las propuestas auto-geo prompts discover --count 15 # añade 15 (nunca sobrescribe, nunca duplica)
prompts add (y discover) inicializan el espacio de trabajo en el primer uso, por lo que ni siquiera necesitas init para empezar a rastrear.
auto-geo check — mide la cobertura real de citas
Para cada prompt, pregunta a un motor de búsqueda de IA real e informa si tu dominio está entre las citas. Esta es la verdad fundamental que doctor predice.
auto-geo check # prompts rastreados, dominio de la configuración
using 3 tracked prompts from .auto-geo/prompts.txt
[1/3] ✗ "what is GEO" — not cited (5 sources)
[2/3] ✓ "how do I get cited by ChatGPT" — cited (2 sources)
[3/3] ✓ "open source GEO tools" — cited (1 source)
Coverage: 2/3 queries (67%) · 3 page citations total · ~$0.012 spent
saved → .auto-geo/checks/2026-06-10T13-22-05--perplexity.json (auto-geo history)
Motores: perplexity (predeterminado), openai, anthropic, gemini, xai (alias grok), o --engine all — que ejecuta cada motor cuya clave API esté configurada e informa la cobertura por motor más un resumen de unión.
Consultas explícitas en lugar del conjunto rastreado
auto-geo check --domain shadow.inc --query "qué es GEO"
Todos los motores para los que tienes claves, cobertura de unión
auto-geo check --engine all
CI: falla el despliegue cuando consultas críticas no te citan
auto-geo check --queries-file geo/critical-queries.txt && deploy
JSON en streaming para agentes / paneles
auto-geo check --ndjson
Cada ejecución se guarda en .auto-geo/checks/ automáticamente (opta por no hacerlo con --no-save). Código de salida 0 si la cobertura > 0%, 1 si es 0%. Consulta docs/check.md para las formas de salida, captura de consultas en abanico, reglas de coincidencia de dominio y el modo de interoperabilidad --format geo-audit.
auto-geo history — cobertura de citas a lo largo del tiempo
La recompensa por guardar cada ejecución: una línea de tendencia. Cobertura ejecución por ejecución con diferencias por motor, además de exactamente qué prompts empezaste o dejaste de ser citado.
auto-geo history
2026-06-01 08:30 perplexity 33% · 1/3 cited $0.01
2026-06-08 09:15 perplexity 67% ↑34 2/3 cited $0.01
Since last run (perplexity · 2026-06-01 08:30 ▸ 2026-06-08 09:15)
✓ newly cited open source GEO tools
✗ lost (none)
2 runs · .auto-geo/checks
Las tendencias comparan elementos similares — cada ejecución se mide contra la ejecución anterior del mismo selector de motor. --engine all filtra para ejecuciones multi-motor; --limit N controla la profundidad; --json emite filas + diferencias en formato legible por máquina. Consulta docs/history.md.
Configuración
Configúrala una vez con auto-geo init, sobrescríbela en cualquier lugar. Precedencia, de mayor a menor:
- Bandera CLI
- Variable de entorno (proveedor autodetectado según la clave API configurada)
auto-geo.config.json(busca hacia arriba desde el directorio actual — compatible con monorepos)- Valor predeterminado incorporado
// auto-geo.config.json — versionable, sin secretos { "domain": "https://www.example.com", "basePath": "/resources", "provider": "openai", "model": "gpt-5.4", "engine": "perplexity", "concurrency": 4, "author": { "name": "Jane Doe", "jobTitle": "Jefa de Contenido", "bio": "Jane escribe sobre optimización para motores generativos…", }, }
Las claves API residen en .env.local (o .env), cargadas automáticamente por cada comando — las variables de entorno ya configuradas siempre tienen prioridad:
| Motor / proveedor | Variable de entorno |
|---|---|
| OpenAI (write, fix, check) | OPENAI_API_KEY |
| Anthropic (write, fix, check) | ANTHROPIC_API_KEY |
| Perplexity (check) | PERPLEXITY_API_KEY |
| Gemini (check) | GOOGLE_API_KEY o GEMINI_API_KEY |
| xAI / Grok (check) | XAI_API_KEY |
La arquitectura de la página
Todo lo que write y fix producen — y todo lo que doctor audita — sigue una arquitectura estricta de siete bloques:
- TL;DR — cápsula de respuesta de 40 a 60 palabras
- Introducción — bloques de establecimiento de contexto
- Secciones — H2 en formato de pregunta, cada uno comenzando con una cápsula de respuesta de 40 a 60 palabras
- Guías relacionadas — 4 a 8 entradas
- Conclusiones clave — 4 a 6 viñetas declarativas
- FAQ — 3 a 10 preguntas y respuestas con respuestas de 40 a 60 palabras
- Divulgación — nota de fuente, marca de tiempo, línea del editor
Las violaciones estructurales son errores graves (la carga útil generada se rechaza y se regenera); las heurísticas de densidad y cadencia son advertencias leves. La especificación completa:
docs/architecture.md,docs/validation.mdy el procedimiento operativo estándar detrás de cada restricción:docs/sop.md.
El JSON de salida es independiente del renderizador: envíalo por POST a tu CMS, hidrata una plantilla o renderízalo con tus propios componentes. La estructura es el contrato.
Salida amigable para agentes
Cada comando está diseñado para ser manejado tanto por un agente como por un humano:
--json— un objeto estable y legible por máquina en stdout.--ndjson(check) — una línea JSON por consulta a medida que llegan los resultados, más una línea_summary.- El progreso va a stderr, los resultados a stdout — las tuberías se mantienen limpias.
- Códigos de salida estables —
doctorycheckson puertas de CI listas para usar. --no-color/NO_COLOR/ detección de no-TTY para una salida amigable con los registros.
auto-geo check --ndjson | jq 'select(.cited) | .query'
Amigable con LLMs
auto-geo es una herramienta cuya salida es contenido destinado a ser citado por LLMs — por lo que este repositorio predica con el ejemplo:
llms.txt— un índice curado que sigue la convención llmstxt.org.llms-full.txt— README + cada documento sustantivo integrado en un solo archivo para su ingestión en una sola solicitud.- Sitio de GitHub Pages en shadowresearch.github.io/auto-geo — anuncia ambos a través de
<link rel="alternate">, emite Article JSON-LD. AGENT.md— una especificación operativa compacta para agentes de codificación que manejan la CLI.
Contribuciones
Consulta CONTRIBUTING.md. Se aceptan informes de errores, mejoras de verificación, nuevos motores y mejoras en la documentación.
- Código de Conducta
- Política de Seguridad
- Registro de Cambios
Licencia
MIT.
Acerca de Shadow
Shadow es un laboratorio de investigación de medios que construye la próxima generación de inteligencia de medios y tecnología de comunicaciones impulsada por IA, en asociación con los equipos que pusieron a OpenAI, TikTok, Meta, Amazon y Lovable en el mapa. Shadow ejecuta auto-geo de extremo a extremo de forma programada para equipos de investigación de medios, relaciones públicas y comunicaciones.
Más información en shadow.inc.