auto-geo

officiel

Moteur de publication de contenu optimisé GEO pour la visibilité IA

Que pouvez-vous faire avec Auto Geo MCP ?

  • Audit de préparation aux citations — Exécutez doctor sur n’importe quelle URL pour évaluer sa posture GEO selon 8 vérifications, comme les JSON-LD, la densité d’entités et les H2 au format question.
  • Générer des pages optimisées — Utilisez write avec des requêtes cibles pour produire des pages JSON validées et prêtes à publier, conformes à l’architecture GEO complète.
  • Réécrire du contenu existant — Appliquez fix à n’importe quelle page pour obtenir une réécriture optimisée GEO qui réussit les 8 vérifications d’audit.
  • Suivre la couverture des citations — Exécutez check sur de véritables moteurs IA (Perplexity, OpenAI, Gemini, etc.) pour voir si votre domaine est réellement cité pour les prompts suivis.
  • Surveiller les tendances dans le temps — Utilisez history pour afficher les changements de couverture exécution par exécution, y compris les prompts nouvellement cités ou perdus par moteur.
  • Gérer les prompts suivis — Ajoutez, listez ou supprimez des prompts avec prompts, ou utilisez prompts discover pour que le LLM propose des requêtes à forte intention afin de rivaliser.

Documentation

auto-geo

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

Le moteur GEO open source qui fait mentionner votre marque dans ChatGPT, Claude, Gemini, Perplexity et Grok.

Auditez, générez, corrigez et suivez les pages que les grands modèles de langage citent — un seul CLI, basé sur des fichiers, sous licence MIT.

Quand quelqu'un pose à ChatGPT, Perplexity, Claude, Gemini ou Google AI Overviews une question à laquelle votre entreprise devrait répondre, ces moteurs citent-ils votre domaine ? auto-geo est la boucle complète pour y parvenir et pour prouver que cela se produit :

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

Tout est basé sur des fichiers et commitable — invites suivies, historique des vérifications, configuration. Pas de serveur, pas de compte, pas de base de données. Une seule installation suffit :

npm i -g auto-geo

Conçu par Shadow — un laboratoire de recherche média qui construit la prochaine génération de technologies d'intelligence et de communication médiatiques propulsées par l'IA, en partenariat avec les équipes qui ont mis OpenAI, TikTok, Meta, Amazon et Lovable sur la carte. Shadow utilise auto-geo pour publier sur shadow.inc/resources.


Sommaire


Démarrage rapide

# 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

Node >=18.17 requis. La mise à niveau ultérieure est npm i -g auto-geo@latest. Autres moyens d'accès :

brew install shadowresearch/tap/auto-geo   # Homebrew (macOS / Linux)
mise use -g npm:auto-geo                   # mise

Des exécutables autonomes (sans Node requis) pour macOS, Linux et Windows sont fournis avec chaque version.


Qu'est-ce que le GEO ?

L'optimisation pour les moteurs génératifs est la discipline qui consiste à faire en sorte que vos pages soient celles que les moteurs de recherche IA citent lorsqu'ils répondent à une question. C'est le successeur du SEO : au lieu de vous classer dans une liste de liens, vous rivalisez pour être cité dans la réponse.

Les pages qui gagnent ne sont pas des articles de blog. La recherche empirique associe la probabilité de citation à une forme spécifique :

  1. Architecture, pas prose. Des blocs nommés et validés — TL;DR, introduction, sections H2 au format question, guides connexes, points clés à retenir, FAQ, divulgation. Les moteurs IA extraient des blocs structurés ; une structure rigide améliore l'extraction.
  2. La réponse d'abord. Chaque section s'ouvre sur une « capsule de réponse » de 40 à 60 mots qui répond pleinement à la question de la section avant tout paragraphe de soutien.
  3. Titres au format question. Les H2 sont rédigés comme les questions que les utilisateurs posent réellement aux moteurs IA.
  4. Dense en entités. Des entités nommées (entreprises, personnes, produits) à haute densité — liées à une probabilité de citation ~4,8 fois plus élevée.
  5. Dérivé du schéma. JSON-LD Article + FAQPage émis à partir de la structure, non rédigé à la main.

auto-geo encode cette forme dans un schéma strict (voir docs/sop.md — la procédure opératoire standard complète), audite n'importe quelle URL par rapport à celui-ci, génère de nouvelles pages qui s'y conforment, puis boucle la boucle en mesurant si les moteurs vous citent réellement.


Le flux de travail

┌──────────────────────────────────────────────────────┐
       │                    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 mesure la disposition (cette page est-elle façonnée pour la citation ?). check mesure le résultat (est-elle réellement citée ?). history transforme les résultats en courbe de tendance.


auto-geo init — configurer le système

auto-geo init        # interactive (a handful of questions)
auto-geo init --yes  # non-interactive template

Une seule commande génère tout :

FichierCe que c'est
auto-geo.config.jsonVos valeurs par défaut — domaine, fournisseur, modèle, auteur. Commitable ; ne contient jamais de secrets.
.env.localEmplacements des clés API. Chargés automatiquement par chaque commande. À mettre dans le gitignore.
.auto-geo/prompts.txtVos invites suivies — une par ligne, commentaires # autorisés.
.auto-geo/checks/Chaque exécution de check, enregistrée en JSON. Les données derrière history.

Le flux interactif se termine en demandant les invites que vous souhaitez suivre, de sorte qu'un nouveau projet passe de zéro à une base de référence de citations mesurable en une seule session. init n'écrase jamais un .env.local existant et refuse d'écraser une configuration existante sans --force.


auto-geo doctor — auditer n'importe quelle page pour sa disposition à la citation

Exécutez-le sur n'importe quelle URL — la vôtre, celle d'un concurrent, chaque page de votre sitemap — et obtenez un rapport structuré sur les signaux de citation que les moteurs IA recherchent.

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

Code de sortie 0 si le score ≥ 75 %, 1 sinon — utilisez-le pour verrouiller vos déploiements. Voir docs/doctor.md pour la référence complète des vérifications.


auto-geo write — générer des pages à partir de requêtes

Donnez-lui votre domaine et les requêtes pour lesquelles vous souhaitez être cité ; récupérez des fichiers JSON validés et prêts à publier — une page structurée par requête, conforme à l'architecture GEO complète.

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

L'invite système encode la procédure GEO — longueur du TL;DR, fenêtres des capsules de réponse, superlatifs interdits, structure de la FAQ — et la sortie est contrainte au schéma au niveau du système de types via le generateObject du SDK Vercel AI, avec une boucle d'auto-correction bornée en cas d'échec de validation. Valeurs par défaut : gpt-5.4 (OpenAI) ou claude-sonnet-4-6 (Anthropic), détectées automatiquement selon la clé API que vous avez définie.

# 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

Avec un fichier de configuration (auto-geo init), --domain, les champs d'auteur et le fournisseur proviennent de la configuration — un simple --query suffit. Voir docs/write.md.


auto-geo fix — réécrire une page pour sa disposition à la citation

Là où doctor vous dit ce qui ne va pas, fix produit une réécriture optimisée pour le GEO qui réussit les 8 vérifications — récupérée, auditée, régénérée et validée par rapport au même schéma que celui utilisé par 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

Voir docs/fix.md.


auto-geo prompts — gérer vos invites suivies

Vos invites suivies sont les questions auxquelles vous voulez que les moteurs IA répondent en citant votre domaine. Elles vivent dans .auto-geo/prompts.txt (texte brut, commitable) et c'est ce que check exécute par défaut.

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

Vous ne savez pas quoi suivre ? Laissez le moteur proposer votre ensemble d'invitesdiscover récupère votre page d'accueil, examine ce que vous suivez déjà, et demande au LLM de générer les requêtes à forte intention pour lesquelles vous devriez rivaliser :

auto-geo prompts discover --dry-run    # preview the proposals
auto-geo prompts discover --count 15   # append 15 (never overwrites, never duplicates)

prompts add (et discover) amorcent l'espace de travail lors de la première utilisation, de sorte que vous n'avez même pas besoin de init pour commencer à suivre.


auto-geo check — mesurer la couverture réelle des citations

Pour chaque invite, interrogez un véritable moteur de recherche IA et signalez si votre domaine figure parmi les citations. C'est la vérité terrain que doctor prédit.

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)

Moteurs : perplexity (par défaut), openai, anthropic, gemini, xai (alias grok), ou --engine all — qui exécute chaque moteur dont la clé API est définie et rapporte la couverture par moteur plus un cumul consolidé.

# 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

Chaque exécution est enregistrée dans .auto-geo/checks/ automatiquement (désactivation avec --no-save). Code de sortie 0 si la couverture > 0 %, 1 si 0 %. Voir docs/check.md pour les formes de sortie, la capture des requêtes dérivées, les règles de correspondance de domaine et le mode d'interopérabilité --format geo-audit.


auto-geo history — couverture des citations dans le temps

La récompense de l'enregistrement de chaque exécution : une courbe de tendance. Couverture exécution par exécution avec les écarts par moteur, plus exactement quelles invites ont commencé ou cessé d'être citées pour vous.

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

Les tendances comparent ce qui est comparable — chaque exécution est mesurée par rapport à l'exécution précédente du même sélecteur de moteur. --engine all filtre sur les exécutions multi-moteurs ; --limit N contrôle la profondeur ; --json émet les lignes + l'écart en format lisible par machine. Voir docs/history.md.


Configuration

Définissez une fois avec auto-geo init, remplacez n'importe où. Priorité, de la plus haute à la plus basse :

  1. Drapeau CLI
  2. Variable d'environnement (fournisseur détecté automatiquement selon la clé API définie)
  3. auto-geo.config.json (remonte depuis le répertoire courant — compatible monorepo)
  4. Valeur par défaut intégrée
// 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…",
  },
}

Les clés API vivent dans .env.local (ou .env), chargées automatiquement par chaque commande — les variables d'environnement déjà définies gagnent toujours :

Moteur / fournisseurVariable d'environnement
OpenAI (write, fix, check)OPENAI_API_KEY
Anthropic (write, fix, check)ANTHROPIC_API_KEY
Perplexity (check)PERPLEXITY_API_KEY
Gemini (check)GOOGLE_API_KEY ou GEMINI_API_KEY
xAI / Grok (check)XAI_API_KEY

L'architecture des pages

Tout ce que write et fix produisent — et tout ce que doctor audite — suit une architecture stricte en sept blocs :

  1. TL;DR — capsule de réponse de 40 à 60 mots
  2. Introduction — blocs de contextualisation
  3. Sections — H2 au format question, chacune s'ouvrant sur une capsule de réponse de 40 à 60 mots
  4. Guides connexes — 4 à 8 entrées
  5. Points clés à retenir — 4 à 6 puces déclaratives
  6. FAQ — 3 à 10 questions-réponses avec des réponses de 40 à 60 mots
  7. Divulgation — note de source, horodatage, ligne d'éditeur

Les violations structurelles sont des erreurs bloquantes (la charge utile générée est rejetée et régénérée) ; les heuristiques de densité et de cadence sont des avertissements non bloquants. La spécification complète : docs/architecture.md, docs/validation.md, et la procédure derrière chaque contrainte : docs/sop.md.

Le JSON de sortie est indépendant du moteur de rendu — POSTez-le vers votre CMS, hydratez un modèle, ou rendez-le avec vos propres composants. La structure est le contrat.


Sortie adaptée aux agents

Chaque commande est conçue pour être pilotée par un agent autant que par un humain :

  • --json — un objet stable et lisible par machine sur stdout.
  • --ndjson (check) — une ligne JSON par requête au fur et à mesure que les résultats arrivent, plus une ligne _summary.
  • La progression va sur stderr, les résultats sur stdout — les pipes restent propres.
  • Codes de sortie stables — doctor et check sont des portes CI prêtes à l'emploi.
  • --no-color / NO_COLOR / détection non-TTY pour une sortie adaptée aux journaux.
auto-geo check --ndjson | jq 'select(.cited) | .query'

Adapté aux LLM

auto-geo est un outil dont la sortie est un contenu destiné à être cité par les LLM — ce dépôt pratique donc ce qu'il prêche :

  • llms.txt — un index organisé suivant la convention llmstxt.org.
  • llms-full.txt — README + chaque document substantiel intégré dans un seul fichier pour une ingestion en un seul chargement.
  • Site GitHub Pages sur shadowresearch.github.io/auto-geo — fait la publicité des deux via <link rel="alternate">, émet du JSON-LD Article.
  • AGENT.md — une spécification opératoire compacte pour les agents de codage qui pilotent le CLI.

Contribuer

Voir CONTRIBUTING.md. Les rapports de bugs, les améliorations de vérifications, les nouveaux moteurs et les raffinements de documentation sont tous les bienvenus.


Licence

MIT.


À propos de Shadow

Shadow est un laboratoire de recherche média qui développe la prochaine génération de technologies d’intelligence médiatique et de communication propulsées par l’IA, en partenariat avec les équipes qui ont mis OpenAI, TikTok, Meta, Amazon et Lovable sur la carte. Shadow exécute auto-geo de bout en bout selon un calendrier pour les équipes de recherche média, de relations publiques et de communication.

En savoir plus sur shadow.inc.