cd /news/generative-engine-optimization/show-hn-citeladder-open-source-ai-se… · home › topics › generative-engine-optimization › article
[ARTICLE · art-151835] src=github.com ↗ pub= topic=generative-engine-optimization verified=true sentiment=· neutral

Show HN: CiteLadder – open-source AI search visibility tracker

An open-source project called CiteLadder has launched to track how AI answer engines including ChatGPT, Claude, Gemini and Google AI Overviews name brands and cite pages in response to buyer prompts. CiteLadder records visibility, share of voice, owned citation rate and competitor rankings across scheduled audits, and ships an MCP server with 46 tools for Claude, ChatGPT and other MCP clients; a hosted version, CiteLadder Cloud, is offered with a free trial and managed engine access.

read7 min views2 publishedOct 17, 2026
Show HN: CiteLadder – open-source AI search visibility tracker
Image: Michielbdejong (auto-discovered)

Open-source AI search visibility (GEO / AEO) you can self-host.

See how ChatGPT, Gemini, Claude and Google AI Overviews answer your buyers' questions, which brands they name, and which pages they cite. Then find out why, fix it, and measure whether it worked.

Quick start · Features · Screenshots · MCP · Hosted version · Docs · Contributing

Don't want to run it yourself? CiteLadder Cloud is the hosted version with a free trial, team workspaces and managed engine access. Product guides live at docs.citeladder.com.

For a portfolio of real buyer questions (prompts), CiteLadder asks the answer engines on a schedule and records every answer:

  • Which answer engines : ChatGPT, Claude and Gemini through their APIs, plus ChatGPT Search, the Gemini app andGoogle AI Overviews through DataForSEO.
  • Which brands they name : your brand and your competitors, with visibility, share of voice, rank and how each one changes between comparable runs.
  • Which pages they cite : cited and retrieved domains and URLs, your owned citation rate, source types, and which publishers show up next to your competitors.
  • What they get wrong : perception and fact checks against your own site's claims.
  • Why : your site's crawlability and structure for AI (Site Health), the demand behind each question (Search Console, GA4, Bing), and which AI crawlers and referrals actually reach you.

The measured outcome is observed mention and citation share, compared under the same prompts and engines over time. Site and demand metrics are leading indicators, never presented as proof of cause. unavailable, not configured and observed zero stay three different things.

AI Visibility Overview
Site Health Issues
Area What you get
AI Visibility Scheduled audits of your prompt portfolio across engines and markets. Visibility, share of voice, owned citation rate, average position, competitor ranking, trends between comparable runs, cited sources and URLs, perception, accuracy (fact checks), AI ads and query fan-outs. CSV export.
Prompts Generate buyer prompts from your site, market and competitors; organise them by topic, intent and buyer stage; review candidates before they are tracked.
Site Health A polite, bounded crawler with page-type-aware checks: Web Fundamentals, AEO Readiness by pillar (answerability, structure, evidence, machine readability, provenance, freshness, crawlability), AI crawler access (robots.txt, llms.txt), architecture, internal links and crawl-to-crawl changes.
Issues and Actions Every finding with its evidence, affected pages and how to fix it, rolled into a ranked list of Actions you can work through and mark implemented.
Agent Ask questions about your project, or start from workflows (articles, landing, comparison and FAQ pages, page refreshes, social posts). Answers are grounded in your evidence with sources, and outputs are reviewable drafts.
Search Demand and Performance Google Search Console, GA4 and Bing Webmaster sync, query evidence and landing-page performance.
Search Intelligence Keyword suggestions, search volume and backlink research via DataForSEO, with a cost review before any paid call runs.
AI Traffic AI crawler logs from Cloudflare (Worker or Logpush), AWS Firehose, Google Cloud Pub/Sub or file uploads, and referral traffic from answer engines: which bots read which pages, and which answers send visitors.
Commerce Suite Product catalog, buyer prompts and an AI "shelf" view of how your products appear next to competitors.
MCP server 46 tools for Claude, ChatGPT and any MCP client: read visibility, sources, Site Health, actions, demand and traffic, and make changes : add or archive prompts, add competitors, launch and schedule audits, update actions. Every change is shown as a preview and applied only after you confirm. Includes an interactive MCP Apps view.
Public API Scoped API keys for /v1 endpoints, with an OpenAPI document at/v1/openapi.json .
Overview reports An editable project overview with layout control and PDF export.

CiteLadder never publishes anything to your site for you and never trains on your data. You bring your own model and data-provider keys, and every crawl and audit runs on your machine.

You need Docker with Compose v2.

git clone https://github.com/abhij1306/CiteLadder.git
cd CiteLadder
docker compose up -d --build

Open http://localhost:8100. The first start builds the image, which takes a few minutes, then applies the database schema and creates your workspace. There is no sign-up and no login.

Then:

  1. Create a project. Enter your website; CiteLadder researches the brand and proposes competitors and an ideal customer profile for you to confirm.
  2. Add model keys inSettings → Providers (OpenAI, Anthropic, Google, DataForSEO) to run AI Visibility audits.
  3. Run Site Health to crawl and analyse your site; it needs no keys.
  4. Optionally connect Search Console, GA4 or Bing in Settings → Integrations (seeGoogle and Microsoft sign-in ).

To use the Agent, brand research and prompt generation, set an LLM in .env (see below) and run docker compose up -d again.

docker compose logs -f app      # follow the logs
docker compose down             # stop (data is kept in Docker volumes)
docker compose down -v          # stop and delete all data

You need Node.js 26+, pnpm 12 (corepack enable) and a PostgreSQL 16 database.

git clone https://github.com/abhij1306/CiteLadder.git
cd CiteLadder
pnpm bootstrap && pnpm build
DATABASE_URL=postgresql://user:password@localhost:5432/citeladder pnpm start

pnpm start applies migrations, creates the workspace, serves the app on http://localhost:8100 and runs background jobs. Settings come from the environment or a .env file in the repository root. Generated instance secrets are stored in .data/.

Everything is optional. Copy the template and fill in what you need:

cp .env.example .env
Setting Purpose
DEFAULT_AGENT_API_KEY ,DEFAULT_AGENT_BASE_URL ,DEFAULT_AGENT_MODEL The LLM behind the Agent, brand research and prompt generation. Anthropic and OpenAI are fully supported; any OpenAI-compatible endpoint (Gemini, Mistral, or a local server such as Ollama at http://host.docker.internal:11434/v1 ) works for research and generation.
MCP_TOKEN Enables the MCP endpoint at /mcp ; clients send it as a bearer token.
INTEGRATION_GOOGLE_CLIENT_ID /_SECRET Search Console and GA4 sync (your own Google OAuth client).
INTEGRATION_MICROSOFT_CLIENT_ID /_SECRET Bing Webmaster sync.
TAVILY_API_KEY ,KEENABLE_API_KEY Optional web research for competitor and brand discovery.
JEV_API_KEY Optional quality judge for generated prompt candidates.
CITELADDER_PORT Host port for Docker (default 8100 ).
PUBLIC_APP_ORIGIN The URL you open CiteLadder at, if it is not http://localhost:8100 . Used in OAuth redirects and MCP setup text.
SITE_HEALTH_* Crawler politeness and size limits.

Answer-engine and DataForSEO keys are entered in the app (Settings → Providers) and stored encrypted in the database. The encryption key and other instance secrets are generated on first start and kept in the citeladder_data volume (or .data/ without Docker): back them up together with the database.

Create an OAuth client in your own Google Cloud (or Azure) project, add the redirect URI shown in Settings → Integrations, and put the client ID and secret in .env. Without them the integrations show as not configured, and everything else keeps working.

Set MCP_TOKEN in .env to a long random string and restart. Then, for example in Claude Code:

claude mcp add --transport http citeladder http://localhost:8100/mcp \
  --header "Authorization: Bearer <MCP_TOKEN>"

Settings → MCP in the app shows the URL and a JSON snippet for other clients. The bundled agent plugin adds review skills (AI visibility review, change review, technical SEO triage).

CiteLadder is a single-workspace, self-hosted tool with no login. The Compose file binds the app to 127.0.0.1 only. Before you expose it to a network, put an authenticating reverse proxy in front of it. The API also answers only to localhost and the host in PUBLIC_APP_ORIGIN; list any other host name you use in ALLOWED_HOSTS. See SECURITY.md for more, and for how to report vulnerabilities.

browser app (React + Vite SPA) ─┐
MCP clients ────────────────────┼─▶ API (Node 26, Hono) ─▶ PostgreSQL 16 (data + job queue)
public API (/v1) ───────────────┘          ▲
                                           │
                              runner (crawls, audits, syncs, schedules)
Path What lives there
frontend/apps/app/ Browser app entry, routes and Vite config
frontend/components/ ,frontend/lib/ App UI and client logic
frontend/services/api/ API, MCP server, background workers, CLIs
frontend/services/api/src/config/ Tunable product policy
frontend/services/api/migrations/ SQL schema
frontend/packages/contracts/ API contracts shared by app and API
frontend/packages/mcp-app/ MCP Apps view
plugins/citeladder/ Agent plugin with review skills

Contributions are welcome. See CONTRIBUTING.md for local development, checks and the PR process, and the Code of Conduct.

GNU Affero General Public License v3.0. If you run a modified version as a network service, you must offer its source to your users.

── more in #generative-engine-optimization 4 stories · sorted by recency
── more on @citeladder 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/show-hn-citeladder-o…] indexed:0 read:7min 2026-10-17 · —