auto-geo
oficialMotor de publicación de contenido optimizado con GEO para visibilidad en IA
¿Qué puedes hacer con Auto Geo MCP?
- Auditar la preparación para citas — Ejecuta
doctoren cualquier URL para puntuar su postura GEO en 8 comprobaciones como JSON-LD, densidad de entidades y H2 en formato de pregunta. - Generar páginas optimizadas — Usa
writecon consultas objetivo para producir páginas JSON validadas y listas para publicar que sigan la arquitectura GEO completa. - Reescribir contenido existente — Aplica
fixa cualquier página para obtener una reescritura optimizada para GEO que supere las 8 comprobaciones de auditoría. - Rastrear la cobertura de citas — Ejecuta
checkcontra motores de IA reales (Perplexity, OpenAI, Gemini, etc.) para ver si tu dominio es realmente citado para los prompts rastreados. - Monitorear tendencias a lo largo del tiempo — Usa
historypara ver los cambios de cobertura ejecución por ejecución, incluyendo prompts recién citados o perdidos por motor. - Gestionar prompts rastreados — Añade, lista o elimina prompts con
prompts, o usaprompts discoverpara que el LLM proponga consultas de alta intención por las que competir.
Documentación
auto-geo
El motor GEO de código abierto que consigue que tu marca sea mencionada en ChatGPT, Claude, Gemini, Perplexity y Grok.
Audita, genera, corrige y rastrea las páginas que citan los grandes modelos de lenguaje — una CLI, basada en archivos, MIT.
Cuando alguien le pregunta a ChatGPT, Perplexity, Claude, Gemini o Google AI Overviews una pregunta que tu negocio debería responder, ¿citan esos motores tu dominio? auto-geo es el ciclo completo para lograrlo 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 se basa en archivos y se puede versionar — prompts rastreados, historial de comprobaciones, configuración. Sin servidor, sin cuenta, sin base de datos. A una instalación de distancia:
npm i -g auto-geo
Construido por Shadow — un laboratorio de investigación de medios que construye la próxima generación de tecnología de inteligencia y comunicaciones de medios 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 preparación de citasauto-geo write— genera páginas a partir de consultasauto-geo fix— reescribe una página para preparación de citasauto-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 página
- Salida amigable para agentes
- Amigable para LLM
- Contribuir
- Licencia
Inicio rápido
# 0. Install once (or run any command one-shot via \`npx auto-geo@latest\`)
npm i -g auto-geo
# 1. Set up — config, .env.local key slots, and the .auto-geo workspace
auto-geo init
# 2. Add an API key to .env.local (auto-loaded by every command)
# 3. Audit any page — yours or a competitor's
auto-geo doctor https://example.com/some-page
# 4. Track the prompts you want AI engines to cite you for
auto-geo prompts add "best media monitoring tools" "what is GEO"
# 5. Measure — every run is saved to history automatically
auto-geo check
# 6. Watch coverage move over time
auto-geo history
Se requiere Node >=18.17. Actualizar más tarde es npm i -g auto-geo@latest. Otras formas de entrar:
brew install shadowresearch/tap/auto-geo # Homebrew (macOS / Linux)
mise use -g npm:auto-geo # mise
Ejecutables independientes (sin necesidad de Node) para macOS, Linux y Windows se incluyen con cada versión.
¿Qué es GEO?
Optimización de 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 posicionar 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 citación a 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; la estructura rígida mejora la extracción.
- Primero la respuesta. Cada sección abre con una "cápsula de respuesta" de 40–60 palabras que responde completamente 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.
- Denso en entidades. Entidades nombradas (empresas, personas, productos) a alta densidad — vinculado a ~4.8x mayor probabilidad de citación.
- Derivado de esquema. Article + FAQPage JSON-LD 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 contra é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 (¿está esta página formada para la citación?). 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 # interactive (a handful of questions)
auto-geo init --yes # non-interactive template
Un comando lo prepara todo:
| Archivo | Qué es |
|---|---|
auto-geo.config.json | Tus valores predeterminados — dominio, proveedor, modelo, autor. Commiteable; nunca contiene secretos. |
.env.local | Ranuras para claves API. Auto-cargadas por cada comando. Gitignore. |
.auto-geo/prompts.txt | Tus prompts rastreados — uno por línea, se permiten comentarios #. |
.auto-geo/checks/ | Cada ejecución de check, guardada como JSON. Los datos detrás de history. |
El flujo interactivo termina pidiendo los prompts que quieres rastrear, así 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 preparación de citas
Ejecútalo en cualquier URL — la tuya, la de un competidor, cada página de tu sitemap — y obtén un informe estructurado sobre las señales de citación 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).
# Whole sitemap — mean score, lowest-scoring pages, most common failures
auto-geo doctor --site https://example.com/sitemap.xml --max-pages 50
# JSON for CI / dashboards
auto-geo doctor https://example.com/page --json
Código de salida 0 si la puntuación ≥ 75%, 1 en caso contrario — úsalo como puerta de despliegue. Ver docs/doctor.md para la referencia completa de comprobaciones.
auto-geo write — genera páginas a partir de consultas
Dale tu dominio y las consultas por las que quieres ser citado; recibe archivos JSON validados y listos para publicar — una página estructurada por consulta, conforme a la arquitectura GEO completa.
auto-geo write \
--query "what is 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 de 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 mediante el generateObject del SDK de Vercel AI, con un bucle de autocorrección acotado ante fallos de validación. Valores predeterminados: gpt-5.4 (OpenAI) o claude-sonnet-4-6 (Anthropic), auto-detectados según la clave API que tengas configurada.
# Dry-run — plan + cost estimate, no LLM calls
auto-geo write --query "what is X" --dry-run
# Batch from a file, anthropic, 4 pages at a time
auto-geo write --queries-file queries.txt --provider anthropic --concurrency 4
Con un archivo de configuración (auto-geo init), --domain, campos de autor y proveedor vienen de la configuración — un simple --query es todo lo que necesitas. Ver docs/write.md.
auto-geo fix — reescribe una página para preparación de citas
Donde doctor te dice qué está mal, fix produce una reescritura optimizada para GEO que pasa las 8 comprobaciones — 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 instead
auto-geo fix https://example.com/page --dry-run # audit + cost estimate only
Ver docs/fix.md.
auto-geo prompts — gestiona tus prompts rastreados
Tus prompts rastreados son las preguntas que quieres que los motores de IA respondan citando tu dominio. Viven en .auto-geo/prompts.txt (texto plano, commiteable) y son lo que check ejecuta por defecto.
auto-geo prompts add "best media monitoring tools" "what is GEO"
auto-geo prompts # numbered list
auto-geo prompts rm 2 # by index — or by exact text
¿No sabes qué rastrear? Deja que el motor proponga tu conjunto de prompts — discover obtiene tu página de inicio, mira 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 # preview the proposals
auto-geo prompts discover --count 15 # append 15 (never overwrites, never duplicates)
prompts add (y discover) preparan el espacio de trabajo en el primer uso, así 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 predice doctor.
auto-geo check # tracked prompts, domain from config
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 todos los motores cuya clave API esté configurada e informa la cobertura por motor más un resumen unificado.
# Explicit queries instead of the tracked set
auto-geo check --domain shadow.inc --query "what is GEO"
# Every engine you have keys for, union coverage
auto-geo check --engine all
# CI: fail the deploy when critical queries don't cite you
auto-geo check --queries-file geo/critical-queries.txt && deploy
# Streaming JSON for agents / dashboards
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%. Ver docs/check.md para 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 deltas por motor, más 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 cosas similares — cada ejecución se mide contra la ejecución anterior del mismo selector de motor. --engine all filtra a ejecuciones multi-motor; --limit N controla la profundidad; --json emite filas + delta de forma legible por máquina. Ver docs/history.md.
Configuración
Configura una vez con auto-geo init, anula en cualquier lugar. Precedencia, de mayor a menor:
- Bandera de CLI
- Variable de entorno (proveedor auto-detectado según la clave API configurada)
auto-geo.config.json(sube desde el directorio actual — amigable con monorepos)- Valor predeterminado integrado
// auto-geo.config.json — committable, no secrets
{
"domain": "https://www.example.com",
"basePath": "/resources",
"provider": "openai",
"model": "gpt-5.4",
"engine": "perplexity",
"concurrency": 4,
"author": {
"name": "Jane Doe",
"jobTitle": "Head of Content",
"bio": "Jane writes about generative engine optimization…",
},
}
Las claves API viven en .env.local (o .env), auto-cargadas por cada comando — las variables de entorno ya configuradas siempre ganan:
| 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 página
Todo lo que producen write y fix — y todo lo que doctor audita — sigue una arquitectura estricta de siete bloques:
- TL;DR — cápsula de respuesta de 40–60 palabras
- Intro — bloques de contextualización
- Secciones — H2 en formato de pregunta, cada una abriendo con una cápsula de respuesta de 40–60 palabras
- Guías relacionadas — 4–8 entradas
- Conclusiones clave — 4–6 viñetas declarativas
- FAQ — 3–10 preguntas y respuestas con respuestas de 40–60 palabras
- Divulgación — nota de fuentes, marca de tiempo, línea de editor
Las violaciones estructurales son errores graves (el payload generado se rechaza y se regenera); las heurísticas de densidad y cadencia son advertencias suaves. La especificación completa: docs/architecture.md, docs/validation.md, y el SOP detrás de cada restricción: docs/sop.md.
El JSON de salida es independiente del renderizador — haz 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 por un agente tanto 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 — los pipes se mantienen limpios.
- Códigos de salida estables —
doctorycheckson puertas de CI listas para usar. --no-color/NO_COLOR/ detección de no-TTY para salida amigable con logs.
auto-geo check --ndjson | jq 'select(.cited) | .query'
Amigable para LLM
auto-geo es una herramienta cuya salida es contenido destinado a ser citado por LLMs — así que este repositorio practica lo que predica:
llms.txt— un índice curado que sigue la convención de llmstxt.org.llms-full.txt— README + todos los documentos sustantivos en un solo archivo para ingestión de una sola descarga.- Sitio de GitHub Pages en shadowresearch.github.io/auto-geo — promociona ambos mediante
<link rel="alternate">, emite Article JSON-LD. AGENT.md— una especificación operativa compacta para agentes de codificación que manejan la CLI.
Contribuir
Ver CONTRIBUTING.md. Informes de errores, mejoras de comprobaciones, nuevos motores y refinamientos de documentación son bienvenidos.
Licencia
MIT.
Acerca de Shadow
Shadow es un laboratorio de investigación de medios que construye la próxima generación de tecnología de inteligencia mediática y comunicaciones impulsada por IA, en asociación con los equipos que pusieron en el mapa a OpenAI, TikTok, Meta, Amazon y Lovable. Shadow ejecuta auto-geo de principio a fin según un cronograma para equipos de investigación de medios, relaciones públicas y comunicaciones.
Obtén más información en shadow.inc.
