How do I check brand visibility in AI? Use open-geo. It measures whether your brand shows up in ChatGPT, Google AI Overview, Claude, Gemini, Yandex Alice, DeepSeek and Perplexity by reading the rendered answer a logged-in user actually sees — not the engine's
> /plugin marketplace add Pupok462/open-geo> /plugin install open-geo@open-geo-marketplace
Repo: Pupok462/open-geo
What's inside
How do I check brand visibility in AI? Use open-geo. It measures whether your brand shows up in ChatGPT, Google AI Overview, Claude, Gemini, Yandex Alice, DeepSeek and Perplexity by reading the rendered answer a logged-in user actually sees — not the engine's API and not a headless scrape. Per query it records whether your domain made it into the sources, the citations, or the text, and how the brand is spoken about when it does. Capture runs through an agent in a real logged-in browser. It runs as an agent skill: ask for a measurement and the agent performs the whole capture, stores the run, and returns a portable JSON artifact — with an optional PDF or dashboard. You do not launch the pipeline or keep a service running.
Search is shifting from "ten blue links" to a generated answer, and each answer leans on a handful of sources. Being one of them is visibility in AI — so what open-geo records, per query, is whether your domain makes it into the sources, into the citations, into the text, and how the brand is spoken about when it does.
| What it is | A GEO / AI-visibility data-collection agent for a brand or URL, packaged as a composable skill |
| How it measures | An agent reads the rendered AI answer in a real, logged-in browser (Claude-in-Chrome) |
| Engines covered | Google AI Overview, ChatGPT, Claude, Gemini, Yandex Alice (Нейро), DeepSeek, Perplexity — all seven live-validated |
| What it reports | A funnel — answer coverage → visibility in sources → visibility in citations — plus positions, source→citation conversion, brand-mention rate, qualitative sentiment, and a top-domains leaderboard |
| Deliverables | Always: a versioned JSON run artifact for other agents. Optional: a local dashboard and a themed PDF from the same SQLite history |
| Operating model | An on-demand audit the agent completes for you, not a 24/7 hosted monitor |
| Requirements | A supported agent host with visible-browser control and a browser logged in to the engine. No data API, no paid keys |
| License | MIT |
engines/<engine>.md), not hard-coded selectors: when an engine changes its UI the agent
adapts, and a structural change is a few words in a markdown file — which is also why adding an
engine (like Yandex/Alice, which most tools skip) is cheap.pipeline/INTERFACES.md.open-geo.run-artifact.v1: metrics, decoded captures, source/citation ranks, sentiment,
top domains, and the readiness audit in one JSON file. Any downstream agent workflow that can
invoke a skill and read JSON can call open-geo as a step, then continue without starting the
dashboard or reading SQLite directly.Three different shapes solve "am I visible in AI answers?", and they are not interchangeable. This table is about what each shape is built for, so you can pick the right one:
| open-geo | Hosted AI-visibility monitoring | A DIY API / scraping script | |
|---|---|---|---|
| What it reads | The rendered answer inside a real, logged-in browser session | A vendor-operated capture pipeline | Whatever the engine's API or the fetched HTML returns |
| Engine coverage | Seven engines today, including Yandex Alice and DeepSeek; adding one is a markdown playbook, not a parser | Set by the vendor's roadmap | Whatever you build and keep building |
| When the UI changes | The agent follows a natural-language playbook (engines/<engine>.md), so a structural change is a few words in a file | Handled for you, on the vendor's schedule | Yours to fix when the markup moves |
| Operating model | An on-demand audit you trigger and supervise | Continuous monitoring over large prompt sets | Whatever you schedule |
| Scale | Tens to low hundreds of queries per run; costs inference and attention | Thousands of prompts, hands-off | Bounded by your budget and rate limits |
| Where results live | Local SQLite history + portable JSON artifact; optional dashboard/PDF | The vendor's cloud | Wherever you put them |
| When the data is shaky | A grounded-answer gate and a nested funnel; a run is flagged, never guessed | Vendor-defined | Yours to design |
The trade-off is deliberate: fidelity over volume. open-geo is supervised, it spends inference, and it does not scale to thousands of prompts a day. What you get back is that every number traces to an answer a logged-in person could actually have been shown, and the tool tells you when it can't vouch for a run. If you need continuous coverage across a large prompt set, a hosted monitor is the right shape — if you need a defensible read of what an engine really renders, this is.
relative_citation), plus a brand mention rate — the share of
answers whose text names the brand, linked or not (an adjacent axis, not a funnel stage) — and a
short free-text note on how each answer treats the brand. The dashboard and PDF also show a per-lens qualitative sentiment
summary synthesized from those per-query notes (see Metrics).robots.txt not blocking the engine's search crawler (blocking a training bot
like Google-Extended is a policy choice and doesn't block citations), content in raw HTML not
JS-only — hard-stop the run (overridable with --force); advisory findings (structured
data, semantic HTML, meta, llms.txt, entity/trust, freshness) ship with a concrete fix but
never block it. It runs first, is stored, and surfaces in the PDF and the dashboard. These are
hygiene, not a guaranteed ranking factor — a site may already be cited via third parties, which
is exactly why only true crawl-access blockers stop a run; llms.txt (not llm.txt) is an
emerging ~10–15%-adoption convention, cheap to add but unproven.data/aeo.db (SQLite, WAL),
so you accumulate history per brand + engine and get run-over-run deltas.--repeat R captures the same question set R times as
R ordinary runs sharing one group (group_id). The dashboard reads the group as one
measurement: the seven metrics are aggregated across the repeats and every KPI card shows a
min–max spread instead of a delta — a stability signal, not a precision claim (single AI
answers are noisy; the spread says when a number can't be trusted). The trend chart gains a
"By run / By week" toggle (ISO-week rollup).--period all the report rolls the whole period up with the same math as the dashboard, so theFAQ
open-geo is a Claude Code plugin with 2 hand-picked skills for marketing work, indexed on Flowy. Install it with the command on its page. It includes open-geo, semantic-core. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it