Getting found · Edition No. 15 · 9 Sep 2026

elmohq/elmo

Asks AI chat tools the questions buyers ask, and records whether they name a given brand.

← Getting foundRead the whole edition →
07

elmohq/elmo

💎 hidden gem
Elmo: who the AI tools name. Records whether AI chat tools name a given brand.

305 stars · MIT · v0.3.0 (2026-08-31) · Track this in Rising ↗

Self-hosted AEO/GEO tracker — records whether ChatGPT, Perplexity, Gemini and AI Overviews mention and cite your brand.

Verified26 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 25 Oct 2026, 2 days before this check.

Releases100

Latest release v0.7.5 on 25 Oct 2026.

Maturity40

Public since August 2025, a little over 1 year.

Adoption54

492 stars and 118 forks.

Activity100

350 commits and 58 new issues in the last 90 days.

Community60

19 contributors. 327 pull requests merged in 90 days.

Security80

A security policy says how to report a problem. No published security advisories.

Licence MIT | v0.7.2, 17 Oct 2026 | [elmohq.com]: permissive: use it for anything, keep the notice
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 26 Oct 2026 from the repository on GitHub. Covered in Edition 15.

▶Repo detailsthe review · specs · pros & cons · install

What it does

Elmo tracks how AI answer tools mention and cite a brand. You give it prompts — questions a possible customer might ask — written by hand or generated by a setup wizard that reads a website. A background worker runs each prompt against each configured engine several times a day. It scans the replies for the brand name, its other names, its domains and its competitors, and it stores the cited web addresses and the searches the engine ran while answering. From that it produces a visibility score per prompt and per model over time, a share-of-voice comparison, a breakdown of cited domains, and shareable reports that need no account. All raw output is kept in PostgreSQL, so the numbers can be recalculated and checked. It reaches ChatGPT, Google AI Mode, AI Overviews, Gemini, Perplexity and Copilot through scraping providers, and Claude, Grok and others through their own interfaces with web search on. The project lists what it leaves out: no prompt volume estimates, no sentiment analysis, no AI crawler statistics, no page audits and no connection to search datasets.

Why it matters

Who it suits. Products whose buyers already ask a chat tool before they search, and anyone who has written llms.txt files or structured data and has no way to tell whether it worked. It suits a team that wants the prompt list kept private, since that list is competitive information. Skip it if the audience arrives from one channel nobody is worried about, because each run costs model money.

Verdict. Worth an afternoon, with a spending limit in front of it. Ten prompts across four models every day adds up quietly, so put something like LiteLLM (Edition 5 #9) in the middle and cap it. Model replies vary from run to run, so read weeks, never one day. The project is moving quickly — v0.7.2 on 17 October 2026, up from v0.3.0 in late August — and at 465 stars it is still small, so treat it as a useful tool rather than a foundation.

Stars305
LicenceMIT
Latestv0.3.0 (2026-08-31)checked 7 Sep 2026
Written inTypeScript
Summary (Key Points)from the README
Key features
  • Scheduled prompt runs: A background worker runs each prompt several times a day by default against every engine you configure.
  • Visibility scoring: Measures how often each engine mentions your brand, per prompt and per model, and trends the score over time.
  • Sentiment score: Rolls up to 0–100 per prompt, per model, and per competitor, with the passages behind it. Positive answers score 100, neutral and mixed 50, negative 0.
  • Citation analysis: Stores every cited URL with its domain and position, then sorts it into your domains, competitors, social media, Google properties, and institutional sources.
  • Query fan-out analysis: Records the web searches an engine runs while grounding an answer and shows how it rewrites your wording.
  • Prompt onboarding wizard: Analyzes your website and suggests keywords, competitors, buyer personas, and tracking prompts.
  • Shareable reports: Visibility summaries, per-prompt breakdowns, citation analysis, and competitor comparisons that stakeholders can view without an Elmo account.
  • API and MCP server: A REST API with TypeScript and Python SDKs, plus an MCP server for Claude Code, Cursor, Codex, and VS Code. The repository also includes an aeo skill for coding agents.
Ways to install
Platform or methodWhat it needsEffort
Self-hosted via Docker Compose (@elmohq/cli)Docker, PostgreSQL, and API keys for at least one AI provider or scraper, plus a TypeSafe or OpenRouter key for JevThe getting started guide says under five minutes
Elmo CloudA subscription from $29/moManaged hosting with automatic updates; no self-hosting
White-labelA custom plan (custom pricing)Not described in the README
Important
  • Jev costs: Judging runs about $0.15–0.35 per 1,000 answers, roughly $2–4 a month for 25 prompts on 3 platforms, or $11–26 for 100 prompts on 5.
  • Keys required: Self-hosting needs at least one AI provider or scraper key and a TypeSafe or OpenRouter key before the stack is useful.
  • Judgments come from Jev: Jev decides whether an answer really means a given company and what its sentiment is, so mention and sentiment results depend on its judgments.
  • Coverage differs by method: Scraping providers capture consumer surfaces such as ChatGPT and Perplexity. Direct model APIs cover Claude, Grok, and others with web search enabled.
  • Not offered yet: Prompt volume estimates, AI crawler analytics, on-page GEO audits, and SEO dataset integration are missing. The README points to the roadmap for planned work.
  • You run the infrastructure: In self-hosted mode you operate the Docker Compose services and the PostgreSQL database yourself.
  • Plan limits are elsewhere: Cloud and white-label details and plan limits are on the pricing page, not in the README.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Good
  • MIT and self-hosted, so the prompt list and the results stay in your hands.
  • It records the other products named in the same answer, which is a competitor list nobody had to build.
  • Raw replies are stored, so a number can be traced back to the text it came from.
Watch for
  • Every check is a paid call to a model or a scraping provider. The bill grows with prompts times models times days.
  • 465 stars and a small team. If work stops, you are left with a working copy and nobody to fix it.
  • Answers vary between runs, so a single day's figure means very little.
Install
npm install -g @elmohq/cli
elmo init
elmo compose up -d
# Then open http://localhost:1515 and create the first account.
Screenshots
elmohq/elmo: GitHub preview cardelmohq/elmo: Screenshot 1elmohq/elmo: Screenshot 2elmohq/elmo: Screenshot 3elmohq/elmo: Screenshot 4

On Stack Radar: Marketing & Growth › SEO & Organic Search › Rank Tracking.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.