elmohq/elmo

Open-source Answer Engine Optimization (AEO) and Generative Engine Optimization (GEO) platform. Track how ChatGPT, Claude, Perplexity, Gemini, Copilot, Grok, and Google AI Overviews mention and cite your brand in AI search. MIT-licensed, self-hostable, every metric auditable in code.

TypeScript

382

1,045 commits

updated Sep 29, 2026

See the code

README

Elmo

Open source AI visibility tracking and optimization.

Learn more »


Docs  Demo  Issues  Roadmap  Discord


About

Elmo is an open-source, self-hosted platform for optimizing your AI visibility, which is also known as:

  • Answer Engine Optimization (AEO)
  • Generative Engine Optimization (GEO)
  • LLM Optimization (LLMO, which is where the name Elmo is from)

Elmo tracks how AI answer engines like ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews mention, cite, and describe your brand, so you can benchmark competitors and grow your visibility in AI answers.

It's a free alternative to tools like Profound, Peec, and Otterly. You can run it on your own infrastructure, own your data, and audit exactly how every metric is calculated.

Demo

Try the live demo at demo.elmohq.com to see how Elmo tracks prompts and analyzes citations.

Screenshots

Dashboard overviewVisibility tracking
Elmo dashboard showing visibility score, tracked prompts, and trend chartsPer-prompt AI visibility scores and trends across answer engines
Share of voiceCitation analysis
Competitor share of voice leaderboard and trend over timeDomains and URLs cited by AI answer engines, grouped by category
Query fan-outOpportunities
Web searches AI engines ran while grounding answers to tracked promptsGenerated recommendations for earning more AI citations

What Elmo Tracks

  • Visibility scoring — For every tracked prompt, Elmo measures how often each AI answer engine mentions your brand and trends the score over time, per prompt and per model.
  • Brand mention tracking — Each answer is checked for your brand name, aliases, and domains, so mentions are counted the same way every time, across every engine.
  • Citation analysis — Every URL an engine cites is stored with its domain and position, then categorized: your own domains, competitor domains, social media, Google properties, and institutional sources. You see which pages AI models actually trust for your industry.
  • Competitor benchmarking and share of voice — A leaderboard of competitor mention rates next to your own, with your overall share of voice and how it moves over time.
  • Query fan-out analysis — When an answer engine grounds a response, it often runs several web searches first. Elmo records those searches, shows how engines rewrite your wording (which words they add, drop, or keep), and which searches your content wins or misses.
  • Prompt management — An onboarding wizard analyzes your website, then suggests keywords, competitors, buyer personas, and tracking prompts. You can also add prompts manually, tag them, and enable or disable them individually.
  • Opportunities — Elmo turns your tracked visibility and citation data into a prioritized, regularly refreshed list of what to create, pitch, and seed to earn more AI citations.
  • Reports — Shareable AI visibility reports (visibility summary, per-prompt breakdown, citation analysis, competitor comparison) viewable by stakeholders without an Elmo account.
  • REST API — Manage brands, prompts, and competitors and pull analytics snapshots and reports programmatically. See the API reference.

How Elmo Measures AI Visibility

Elmo's methodology is simple and fully inspectable in this repository:

  1. Prompts are defined per brand — either generated by the onboarding wizard from your website or written by hand. Each prompt is a question a potential customer might ask an AI assistant.
  2. A background worker runs each prompt on a schedule (several times a day by default) against every engine you configure. Scraping providers capture the real consumer surfaces — ChatGPT, Google AI Mode, Google AI Overviews, Gemini, Perplexity, and Microsoft Copilot — while direct model APIs (OpenAI, Anthropic, Mistral, OpenRouter) add coverage for Claude, Grok, and other models with web search enabled. The providers guide compares both approaches and their costs.
  3. Every answer is normalized and parsed. Each run produces the answer text, the list of cited URLs, the web searches the engine ran while grounding (its query fan-out), and the model version. The text is scanned for your brand's name, aliases, and domains, and for each competitor's.
  4. Everything is stored in PostgreSQL, including the raw engine output, so any metric can be re-derived and audited later. Nothing is a black box: the mention detection, scoring, and aggregation code is all in this repo.
  5. Metrics are aggregated into trends. Visibility is the share of runs that mention your brand; share of voice compares your mention rate against competitors; citation counts roll up by URL, domain, and category — each filterable by prompt, tag, engine, and time range.

Because Elmo is open source, this loop is the part you never have to take on faith. Answer Engine Optimization (AEO) tooling lives or dies on measurement quality, and Elmo's measurements are ones you can read, run, and verify.

Elmo vs. Closed-Source Alternatives

Most AI visibility platforms are closed SaaS. Here is how Elmo compares to the widely used ones:

ToolOpen sourceSelf-hostableAuditable metricsData ownershipPricing modelEngine coverage
ElmoYes (MIT)Yes (Docker Compose)Yes — scoring code is publicYours — your own PostgreSQLFree self-hosted; cloud from $29/moChatGPT, Google AI Mode, Google AI Overviews, Gemini, Perplexity, Copilot, Claude, Grok, Mistral, and more
ProfoundNoNoNo — proprietary scoringVendor-hostedEnterprise, custom pricingMultiple engines, plus AI crawler analytics
Peec AINoNoNoVendor-hostedPaid subscription, custom pricingMultiple engines
Otterly AINoNoNoVendor-hostedPaid subscription, custom pricingMultiple engines, plus on-page GEO audits
ScrunchNoNoNoVendor-hostedEnterprise, custom pricingMultiple engines; content-optimization focus
Ahrefs Brand RadarNoNoNoVendor-hostedFrom $129/moMultiple engines, tied to Ahrefs' SEO dataset
Semrush AI ToolkitNoNoNoVendor-hostedFrom $139.95/moMultiple engines, tied to Semrush's SEO platform
HubSpot AEO GraderNoNoNoVendor-hostedFreeOne-time website audit, not continuous tracking

To be fair about where the closed tools are genuinely ahead: Profound, Peec AI, Ahrefs, and Semrush offer prompt volume estimates; Peec AI, Ahrefs, and Semrush include sentiment analysis; Profound, Otterly, and Scrunch analyze AI crawler behavior; Otterly, Scrunch, and HubSpot audit and optimize on-page content; and Ahrefs and Semrush integrate AI tracking with established SEO datasets. Elmo doesn't do those things today — see the roadmap for what's planned. What none of them offer is the ability to read the code behind every number, run it on your own infrastructure, and keep the data.

Elmo also maintains a directory of 100+ Answer Engine Optimization and Generative Engine Optimization tools with feature matrices and head-to-head comparisons: AI Visibility Tool Directory.

Who Elmo Is For

  • Self-hosting teams who want AI visibility data inside their own infrastructure — your prompts, your competitors, and every raw engine response stay in a PostgreSQL database you control.
  • Agencies offering Answer Engine Optimization to clients: the white-label deployment adds custom branding, a custom domain, and SSO on top of multi-brand tracking.
  • Developers and analysts who want auditable metrics — a REST API, a documented methodology, and a database you can query directly instead of a dashboard-only black box.
  • Anyone priced out of enterprise AEO platforms who still needs credible measurement of how ChatGPT, Perplexity, Gemini, and Google AI Overviews talk about their brand.

Quick Start

[!TIP] Would rather not self-host? Elmo Cloud runs the same open-source platform for you, with managed hosting and automatic updates, from $29/mo. Start with Cloud →

For local deployments, use Docker Compose as configured with the @elmohq/cli package:

# Install the CLI globally
npm install -g @elmohq/cli

# Initialize configuration (interactive wizard)
elmo init

# Start the stack
elmo compose up -d

Once the services report healthy, open http://localhost:1515 and create your account. The full walkthrough is in the getting started guide.

[!TIP] Watch this repo's releases to get notified of major updates.

Deployment Options

OptionWhat you getPrice
Self-hostedThe full platform on your own infrastructure via Docker Compose, unlimited prompts, every supported engine and providerFree (MIT)
Elmo CloudManaged hosting with automatic updates, unlimited seats, and API access on every planFrom $29/mo
White-labelEverything in Cloud plus custom branding, a custom domain, and SSO — built for agencies serving multiple clientsCustom

Details and plan limits are on the pricing page.

Architecture

Elmo system architecture

A web app serves the dashboard and REST API, a worker schedules and executes prompt runs against the AI engines, and PostgreSQL stores both the data and the job queue. The developer guide covers the monorepo layout and how to contribute.

Tech Stack

Documentation

Sponsors

Llumo

Become a sponsor →

Contact

Contributing

Interested in contributing? See CONTRIBUTING.md for the contribution workflow and CLA process, the developer guide for setup and architecture, and browse good first issues to get started.

License

Elmo is open source under the MIT License.

Repo Activity

Repository activity

aeo
ai-engine-optimization
aio
ai-seo
ai-visibility
ai-visibility-tracker
answer-engine-optimization
chatgpt
copilot
gemini
generative-engine-optimization
geo
geo-optimization
grok
llmo
marketing
open-source
perplexity
self-hosted
seo

Significant stargazers

Ayush Somani

67 followers · starred Aug 2026

terencecho

6 followers · starred Apr 2026

elmohq/elmo

Open-source Answer Engine Optimization (AEO) and Generative Engine Optimization (GEO) platform. Track how ChatGPT, Claude, Perplexity, Gemini, Copilot, Grok, and Google AI Overviews mention and cite your brand in AI search. MIT-licensed, self-hostable, every metric auditable in code.

TypeScript

382

1,045 commits

updated Sep 29, 2026

See the code

README

Elmo

Open source AI visibility tracking and optimization.

Learn more »


Docs  Demo  Issues  Roadmap  Discord


About

Elmo is an open-source, self-hosted platform for optimizing your AI visibility, which is also known as:

  • Answer Engine Optimization (AEO)
  • Generative Engine Optimization (GEO)
  • LLM Optimization (LLMO, which is where the name Elmo is from)

Elmo tracks how AI answer engines like ChatGPT, Claude, Perplexity, Gemini, and Google AI Overviews mention, cite, and describe your brand, so you can benchmark competitors and grow your visibility in AI answers.

It's a free alternative to tools like Profound, Peec, and Otterly. You can run it on your own infrastructure, own your data, and audit exactly how every metric is calculated.

Demo

Try the live demo at demo.elmohq.com to see how Elmo tracks prompts and analyzes citations.

Screenshots

Dashboard overviewVisibility tracking
Elmo dashboard showing visibility score, tracked prompts, and trend chartsPer-prompt AI visibility scores and trends across answer engines
Share of voiceCitation analysis
Competitor share of voice leaderboard and trend over timeDomains and URLs cited by AI answer engines, grouped by category
Query fan-outOpportunities
Web searches AI engines ran while grounding answers to tracked promptsGenerated recommendations for earning more AI citations

What Elmo Tracks

  • Visibility scoring — For every tracked prompt, Elmo measures how often each AI answer engine mentions your brand and trends the score over time, per prompt and per model.
  • Brand mention tracking — Each answer is checked for your brand name, aliases, and domains, so mentions are counted the same way every time, across every engine.
  • Citation analysis — Every URL an engine cites is stored with its domain and position, then categorized: your own domains, competitor domains, social media, Google properties, and institutional sources. You see which pages AI models actually trust for your industry.
  • Competitor benchmarking and share of voice — A leaderboard of competitor mention rates next to your own, with your overall share of voice and how it moves over time.
  • Query fan-out analysis — When an answer engine grounds a response, it often runs several web searches first. Elmo records those searches, shows how engines rewrite your wording (which words they add, drop, or keep), and which searches your content wins or misses.
  • Prompt management — An onboarding wizard analyzes your website, then suggests keywords, competitors, buyer personas, and tracking prompts. You can also add prompts manually, tag them, and enable or disable them individually.
  • Opportunities — Elmo turns your tracked visibility and citation data into a prioritized, regularly refreshed list of what to create, pitch, and seed to earn more AI citations.
  • Reports — Shareable AI visibility reports (visibility summary, per-prompt breakdown, citation analysis, competitor comparison) viewable by stakeholders without an Elmo account.
  • REST API — Manage brands, prompts, and competitors and pull analytics snapshots and reports programmatically. See the API reference.

How Elmo Measures AI Visibility

Elmo's methodology is simple and fully inspectable in this repository:

  1. Prompts are defined per brand — either generated by the onboarding wizard from your website or written by hand. Each prompt is a question a potential customer might ask an AI assistant.
  2. A background worker runs each prompt on a schedule (several times a day by default) against every engine you configure. Scraping providers capture the real consumer surfaces — ChatGPT, Google AI Mode, Google AI Overviews, Gemini, Perplexity, and Microsoft Copilot — while direct model APIs (OpenAI, Anthropic, Mistral, OpenRouter) add coverage for Claude, Grok, and other models with web search enabled. The providers guide compares both approaches and their costs.
  3. Every answer is normalized and parsed. Each run produces the answer text, the list of cited URLs, the web searches the engine ran while grounding (its query fan-out), and the model version. The text is scanned for your brand's name, aliases, and domains, and for each competitor's.
  4. Everything is stored in PostgreSQL, including the raw engine output, so any metric can be re-derived and audited later. Nothing is a black box: the mention detection, scoring, and aggregation code is all in this repo.
  5. Metrics are aggregated into trends. Visibility is the share of runs that mention your brand; share of voice compares your mention rate against competitors; citation counts roll up by URL, domain, and category — each filterable by prompt, tag, engine, and time range.

Because Elmo is open source, this loop is the part you never have to take on faith. Answer Engine Optimization (AEO) tooling lives or dies on measurement quality, and Elmo's measurements are ones you can read, run, and verify.

Elmo vs. Closed-Source Alternatives

Most AI visibility platforms are closed SaaS. Here is how Elmo compares to the widely used ones:

ToolOpen sourceSelf-hostableAuditable metricsData ownershipPricing modelEngine coverage
ElmoYes (MIT)Yes (Docker Compose)Yes — scoring code is publicYours — your own PostgreSQLFree self-hosted; cloud from $29/moChatGPT, Google AI Mode, Google AI Overviews, Gemini, Perplexity, Copilot, Claude, Grok, Mistral, and more
ProfoundNoNoNo — proprietary scoringVendor-hostedEnterprise, custom pricingMultiple engines, plus AI crawler analytics
Peec AINoNoNoVendor-hostedPaid subscription, custom pricingMultiple engines
Otterly AINoNoNoVendor-hostedPaid subscription, custom pricingMultiple engines, plus on-page GEO audits
ScrunchNoNoNoVendor-hostedEnterprise, custom pricingMultiple engines; content-optimization focus
Ahrefs Brand RadarNoNoNoVendor-hostedFrom $129/moMultiple engines, tied to Ahrefs' SEO dataset
Semrush AI ToolkitNoNoNoVendor-hostedFrom $139.95/moMultiple engines, tied to Semrush's SEO platform
HubSpot AEO GraderNoNoNoVendor-hostedFreeOne-time website audit, not continuous tracking

To be fair about where the closed tools are genuinely ahead: Profound, Peec AI, Ahrefs, and Semrush offer prompt volume estimates; Peec AI, Ahrefs, and Semrush include sentiment analysis; Profound, Otterly, and Scrunch analyze AI crawler behavior; Otterly, Scrunch, and HubSpot audit and optimize on-page content; and Ahrefs and Semrush integrate AI tracking with established SEO datasets. Elmo doesn't do those things today — see the roadmap for what's planned. What none of them offer is the ability to read the code behind every number, run it on your own infrastructure, and keep the data.

Elmo also maintains a directory of 100+ Answer Engine Optimization and Generative Engine Optimization tools with feature matrices and head-to-head comparisons: AI Visibility Tool Directory.

Who Elmo Is For

  • Self-hosting teams who want AI visibility data inside their own infrastructure — your prompts, your competitors, and every raw engine response stay in a PostgreSQL database you control.
  • Agencies offering Answer Engine Optimization to clients: the white-label deployment adds custom branding, a custom domain, and SSO on top of multi-brand tracking.
  • Developers and analysts who want auditable metrics — a REST API, a documented methodology, and a database you can query directly instead of a dashboard-only black box.
  • Anyone priced out of enterprise AEO platforms who still needs credible measurement of how ChatGPT, Perplexity, Gemini, and Google AI Overviews talk about their brand.

Quick Start

[!TIP] Would rather not self-host? Elmo Cloud runs the same open-source platform for you, with managed hosting and automatic updates, from $29/mo. Start with Cloud →

For local deployments, use Docker Compose as configured with the @elmohq/cli package:

# Install the CLI globally
npm install -g @elmohq/cli

# Initialize configuration (interactive wizard)
elmo init

# Start the stack
elmo compose up -d

Once the services report healthy, open http://localhost:1515 and create your account. The full walkthrough is in the getting started guide.

[!TIP] Watch this repo's releases to get notified of major updates.

Deployment Options

OptionWhat you getPrice
Self-hostedThe full platform on your own infrastructure via Docker Compose, unlimited prompts, every supported engine and providerFree (MIT)
Elmo CloudManaged hosting with automatic updates, unlimited seats, and API access on every planFrom $29/mo
White-labelEverything in Cloud plus custom branding, a custom domain, and SSO — built for agencies serving multiple clientsCustom

Details and plan limits are on the pricing page.

Architecture

Elmo system architecture

A web app serves the dashboard and REST API, a worker schedules and executes prompt runs against the AI engines, and PostgreSQL stores both the data and the job queue. The developer guide covers the monorepo layout and how to contribute.

Tech Stack

Documentation

Sponsors

Llumo

Become a sponsor →

Contact

Contributing

Interested in contributing? See CONTRIBUTING.md for the contribution workflow and CLA process, the developer guide for setup and architecture, and browse good first issues to get started.

License

Elmo is open source under the MIT License.

Repo Activity

Repository activity

aeo
ai-engine-optimization
aio
ai-seo
ai-visibility
ai-visibility-tracker
answer-engine-optimization
chatgpt
copilot
gemini
generative-engine-optimization
geo
geo-optimization
grok
llmo
marketing
open-source
perplexity
self-hosted
seo

Significant stargazers

Ayush Somani

67 followers · starred Aug 2026

terencecho

6 followers · starred Apr 2026

Languages

TypeScript

78.1%

MDX

18.5%

Bru

2.0%