auto-geo

oficial

Motor 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 doctor en 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 write con consultas objetivo para producir páginas JSON validadas y listas para publicar que sigan la arquitectura GEO completa.
  • Reescribir contenido existente — Aplica fix a cualquier página para obtener una reescritura optimizada para GEO que supere las 8 comprobaciones de auditoría.
  • Rastrear la cobertura de citas — Ejecuta check contra 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 history para 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 usa prompts discover para que el LLM proponga consultas de alta intención por las que competir.

Documentación

auto-geo

CI npm version License: MIT Built by Shadow Downloads TypeScript Node Docs llms.txt

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

auto-geo demo — tracked prompts, live citation check across AI engines, and coverage history

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-geo para publicar en shadow.inc/resources.


Contenido


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:

  1. 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.
  2. 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.
  3. Encabezados en formato de pregunta. Los H2 se escriben como las preguntas que los usuarios realmente hacen a los motores de IA.
  4. Denso en entidades. Entidades nombradas (empresas, personas, productos) a alta densidad — vinculado a ~4.8x mayor probabilidad de citación.
  5. 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:

ArchivoQué es
auto-geo.config.jsonTus valores predeterminados — dominio, proveedor, modelo, autor. Commiteable; nunca contiene secretos.
.env.localRanuras para claves API. Auto-cargadas por cada comando. Gitignore.
.auto-geo/prompts.txtTus 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 promptsdiscover 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:

  1. Bandera de CLI
  2. Variable de entorno (proveedor auto-detectado según la clave API configurada)
  3. auto-geo.config.json (sube desde el directorio actual — amigable con monorepos)
  4. 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 / proveedorVariable 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:

  1. TL;DR — cápsula de respuesta de 40–60 palabras
  2. Intro — bloques de contextualización
  3. Secciones — H2 en formato de pregunta, cada una abriendo con una cápsula de respuesta de 40–60 palabras
  4. Guías relacionadas — 4–8 entradas
  5. Conclusiones clave — 4–6 viñetas declarativas
  6. FAQ — 3–10 preguntas y respuestas con respuestas de 40–60 palabras
  7. 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 — doctor y check son 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.