AI visibility tracker for humans and agents. See how ChatGPT, Claude, Gemini and Perplexity talk about your brand versus your competitors, with honest statistics, on your own machine, with your own API keys.
Your customers now ask ChatGPT and Perplexity which product to buy, and you have no idea what those answers say about you. The tools that can tell you charge $99 to $1,000 a month and give you back a single score with no margin of error.
Hearsay asks your buying questions to ChatGPT, Claude, Gemini and Perplexity on a schedule, several times each, and counts how often you get mentioned and recommended. Every rate comes with a margin of error and the number of answers behind it, and it keeps every answer so you can read the exact text any figure came from. It runs on your computer.
Hearsay itself is free, but the AI engines are not. You bring your own API key for each engine you want to measure. An API key is a long password-like string you get by making a developer account at OpenAI, Anthropic, Google or Perplexity and adding a payment method. They bill you per question asked, usually cents rather than dollars, and one key is enough to start.
If you use Claude Code, a free Anthropic assistant that runs in a terminal on your own computer and is allowed to run commands, paste this and it will do the whole setup:
Install and set up https://github.com/melonwer/hearsay for my brand, [your brand], and track it against [competitor] and [competitor]. Skip the demo data. Show me the questions before you save them.
It clones the repo, starts Hearsay, connects itself to it, drafts the buying questions worth tracking, shows you that list before saving anything, tells you what a run will cost before spending a cent, and then reports back.
This works because Hearsay speaks MCP (Model Context Protocol), the standard way an AI assistant plugs into an outside tool. A chat window on a website cannot do this, since it needs to run commands on your machine.
The exact steps, if your assistant gets stuck
git clone https://github.com/melonwer/hearsay && cd hearsay
node --version # must be 22.13 or newer
# Skip this line when tracking a real brand. It loads a fictional demo universe,
# and its demo brand then blocks setup for a real one.
node scripts/seed.js
cp .env.example .env # then put one API key in .env
node server.js > hearsay.log 2>&1 & # redirect, or a backgrounded server hangs the shell
curl -s http://127.0.0.1:3000/api/status # repeat until this returns JSON
# -s user registers Hearsay for every session, not just this folder
claude mcp add -s user hearsay -- node "$PWD/mcp/server.mjs"Hearsay's tools appear only after the assistant reconnects. Quit Claude Code and start
it again, then say "carry on setting up Hearsay". If they still do not show up, work
over the JSON API instead, which needs no setup: GET /api/status,
POST /api/setup, GET /api/cost/estimate, POST /api/run, GET /api/runs/latest,
GET /api/summary?days=30, GET /api/alerts. There is no index page at /api.
Already loaded the demo data and now want to track your own brand? Stop Hearsay, delete
data/hearsay.db, and start it again. That clears the fictional brand that would
otherwise block setup.
First, install Node.js 22.13 or newer from nodejs.org. Pick the installer for Mac or Windows and click through it. Hearsay needs that version because it includes the small built-in database it stores your data in, which is why there is nothing else to install: no extra packages, no build step, no separate database server.
The lines below go in a terminal, which is the Terminal app on Mac or PowerShell on Windows. You also need Git (git-scm.com); if you would rather not install it, use the green Code → Download ZIP button at the top of this page, unzip it, and skip the first line.
git clone https://github.com/melonwer/hearsay && cd hearsay
node scripts/seed.js && node server.jsThe window will look like it has frozen. That is Hearsay running. Leave it open and visit http://127.0.0.1:3000 in your browser, which is an address on your own computer, published nowhere. To stop it, click the terminal window and press Ctrl+C.
You are now looking at a fictional demo brand called Notewell, so you can click through every screen before spending anything.
If something goes wrong
command not found: node means Node.js is not installed; get the LTS build from
nodejs.org. command not found: git means Git is missing; on Mac
run xcode-select --install, on Windows use git-scm.com.
ERR_UNKNOWN_BUILTIN_MODULE means your Node is older than 22.13. EADDRINUSE means
something else is already using port 3000; run PORT=3100 node server.js and use
http://127.0.0.1:3100 instead.
- Stop Hearsay (Ctrl+C) and delete the file
data/hearsay.db. That removes the demo brand, which would otherwise block your own. - In the
hearsayfolder, copy.env.exampleto a new file called.env(cp .env.example .envin the terminal). - Open
.envin any text editor and paste your key after the matching name, for exampleOPENAI_API_KEY=sk-.... One key is enough. - Run
node server.jsagain and open http://127.0.0.1:3000/setup in your browser. Type that address in; there is no link to it in the menu.
Run this from inside the hearsay folder. The $PWD part fills in the full path for
you, so there is nothing to edit:
claude mcp add -s user hearsay -- node "$PWD/mcp/server.mjs"For Claude Desktop, open Settings → Developer → Edit Config, which opens
claude_desktop_config.json for you. Run pwd inside the hearsay folder to print its
full path, then paste the block below, replacing YOUR_PATH. If the file already has an
mcpServers section, add the "hearsay" entry inside it rather than replacing
everything. Quit Claude Desktop completely and reopen it afterwards.
{ "mcpServers": { "hearsay": { "command": "node", "args": ["YOUR_PATH/mcp/server.mjs"] } } }Now ask it "how's our AI visibility this week?" and it answers from your own measurements. Thirteen tools cover the whole job: setup, drafting questions, cost quotes, runs, results and alerts. Your assistant uses its own model to talk to you, so reading your results does not spend the API keys you gave Hearsay.
There is an optional skill that teaches an assistant the full playbook, including how to
read the numbers honestly. Install it with
mkdir -p ~/.claude/skills && cp -r skill ~/.claude/skills/hearsay-ai-visibility, where
~ means your home folder, or just ask your assistant to install skill/SKILL.md.
Light and dark themes. Clicking any figure opens the answers it was calculated from.
68% of US Google searches end without a click (SparkToro, June 2026, on January to April 2026 US clickstream data, study), and where an AI Overview appears, on more than 20% of searches, the share of those searches that produce a click falls by nearly 60%. Buying research is moving into AI answers, and the tools that measure it charge by the piece. Profound's $99/mo entry tier covers ChatGPT only, with Claude, API access and single sign-on locked behind an Enterprise plan (pricing). Otterly charges $29 to $439/mo extra just to add Claude (pricing). Semrush meters $99/mo per domain for 25 prompts (pricing). Agencies have started building their own trackers to escape $99 to $1,000/mo pricing.
Hearsay is a measurement method you can run anywhere. It asks each question repeatedly, publishes the margin of error, keeps the answers behind every figure, and hands the whole job to your AI assistant if you would rather not click through a dashboard.
Every rate is measured by asking the same question many times and counting, and each one is published with a margin of error (a Wilson 95% confidence interval) and the number of answers it came from. A figure resting on fewer than five answers is labelled low sample.
Questions are grouped into intents, meaning one buying question written several ways. Hearsay shows you how much the answers move when you ask again, and separately how much they move when you reword the question. Rewording moves them more, which is why single-prompt tracking is unstable.
Every answer is stored and searchable, and every metric links to the answers behind it. The citation gap report shows which websites get cited instead of you, domain by domain, in the answers where your brand never comes up. Alerts fire when your mentions drop, when a competitor passes you, and when you win or lose a recommendation, each one carrying the answers that triggered it.
The cost calculator estimates what a run will cost before it starts and records what it actually spent afterwards. You pay your model providers directly at their prices.
It will not give you a single blended "AI visibility score", because one number hides the uncertainty the tool exists to show you. It will not claim rank positions, because AI answers change between identical runs, so there is no stable "position 3" to report. It will not estimate how many people ask a given question, because nobody has that data, and a made-up figure would corrupt every number sitting next to it. And it will not write your content, because a measuring instrument that also produces the thing it measures cannot be trusted about either.
Hearsay never quotes a flat price. What you spend depends on how many questions you track, how many engines you ask, and how many times you ask them, so the built-in calculator works it out from your own setup before each run and records the real spend afterwards.
Checked against each vendor's public pricing page on 2026-07-26, except the Peec figures, which come from a third-party pricing review of the same date rather than from peec.ai.
| Hearsay | Profound | Peec AI | elmo | |
|---|---|---|---|---|
| Price | Free; you pay your model providers directly | $99/mo entry (ChatGPT only) → $399/mo → Enterprise | $95 to $495/mo, Enterprise custom | Free |
| License | MIT | Proprietary SaaS | Proprietary SaaS | MIT |
| Engines | ChatGPT, Claude, Gemini, Perplexity, all included | Entry tier: ChatGPT only; Claude Enterprise-gated | 3 of 6 engines on self-serve tiers | ChatGPT, Claude, Perplexity, Gemini, AI Overviews |
| Margin of error | Wilson 95% intervals, plus rerun and rewording spread reported separately | None published | None published | None |
| Stored answers | Every answer kept, searchable, linked from every metric | Answer-engine responses on paid tiers | Prompt-level views on paid tiers | Stores responses |
| Assistant access | MCP and JSON API built in, free; can read and change your setup | API on Enterprise only | API and MCP as higher-tier add-ons | None |
| What you install | Two commands, nothing else, all data in one file (git clone plus node server.js) |
Nothing, it is hosted | Nothing, it is hosted | Container and database software first (Docker Compose, Postgres, pg-boss) |
Three things worth knowing before you read any number, from
METHODOLOGY.md (also served at /methodology):
Reword a question and the two answers overlap in only 14% to 29% of the brands they recommend. Ask the identical question twice and the overlap is 50% to 61% (arXiv:2605.27440). So Hearsay asks each question several ways and shows you both numbers.
Answers from the APIs are not the same as what a logged-in person sees in the ChatGPT app. They have no memory of the user, no personalisation and none of the hidden instructions the consumer apps add. Treat them as a directional baseline. No amount of extra sampling fixes this.
The channel is still small. Under 0.2% of e-commerce visits come from AI tools (organicllm.org), though complex, considered purchases run several times higher. Hearsay's costs are built for a channel that size.
MIT licensed, one license, with no separate paid edition and no gated features. Everything in this repo is everything there is, and no hosted version is planned. Hearsay collects nothing about you and sends nothing anywhere: the only things it ever contacts are the AI engines you gave it keys for. Your data is a single file at
data/hearsay.dbthat you can back up by copying it, and opening http://127.0.0.1:3000/api/export downloads all of it, questions, runs, answers and metrics, as one JSON file.
v1.1 brings pushed alerts first, using webhooks, so a drop in mentions can fire straight into Slack or email. Then multi-client workspaces with white-label HTML and PDF reports, opt-in sentiment scoring that uses your existing keys, CSV export, and a Docker image for people who want one.
v1.2 adds Google AI Overviews per question through an optional search API, more engines (Grok, DeepSeek, Copilot), and shared prompt packs from the community. v2 adds trend annotations, so you can mark the day you shipped the comparison page.
CONTRIBUTING.md covers the no-dependencies rule, how to run the tests, and where the good first issues are. SECURITY.md covers the localhost default, how API keys are handled, and how to report a vulnerability.
Not affiliated with OpenAI, Anthropic, Google or Perplexity; trademarks belong to their owners.
MIT.



