# Canonry: full manifest > Canonry is the open-source, agent-native operating platform for Answer Engine > Optimization (AEO). It tracks how ChatGPT, Gemini, Claude, and Perplexity > cite your site, sweeps standard SEO surfaces (Google Search Console, Bing, > GA4), and hands a typed tool surface to any local coding agent (Claude Code, > OpenAI Codex, Cursor, OpenClaw, GitHub Copilot), or runs the bundled "Aero" > agent with no setup. Self-hosted: yes, SQLite at ~/.canonry/data.db Repository: https://github.com/Canonry/canonry npm: https://www.npmjs.com/package/@ainyc/canonry Docker: https://hub.docker.com/repository/docker/arberx/canonry Last updated: 2026-05-09 --- ## What is AEO? Answer Engine Optimization is the discipline of making sure your content shows up accurately and prominently in the synthesized answers produced by generative engines (ChatGPT, Gemini, Claude, Perplexity). It is the successor discipline to SEO: instead of optimizing for ten blue links, you optimize for the model's citation graph, its retrieval surface, and the structured signals (JSON-LD, llms.txt, schema completeness) that decide whether a model trusts your page enough to cite it. ## What is Canonry? Canonry is the operating platform for AEO. Most AEO tools are dashboards that show you a citation dropped on Tuesday. Canonry sweeps providers, diffs site snapshots, traces regressions to the deploy that caused them, drafts the schema patch, pings GSC for re-indexing, and schedules a verify sweep. All of it runs through a typed tool surface designed to be called by an agent. ## How does Canonry differ from a SaaS dashboard? - Agent-native, not retrofitted. Every CLI command supports --format json, every dashboard view has a matching REST endpoint, and an MCP adapter exposes 48 tools. The CLI is the recommended entry point. - Self-hosted. SQLite by default, your disk, your backup, your data. - Source-available. No per-prompt pricing, no vendor lock-in. - Bundled agent. "Aero" ships with every install for users who don't want to configure their own coding agent. Same surface, zero setup. ## Surfaces - CLI: 30+ commands. canonry init / serve / run / agent ask / mcp install. - REST API: 118 endpoints. Bearer-token auth. /api/v1/openapi.json self-served. - MCP: 48 typed tools, 5 toolkits loaded on demand. read-only mode supported. - Webhooks: 6 events. run.completed, run.failed, citation.gained, citation.lost, insight.critical, insight.high. ## Supported agents - Claude Code (via CLI or MCP) - OpenAI Codex (via CLI or MCP or webhook) - Cursor (via CLI or MCP) - OpenClaw: open source ยท local. Compatible with Claude Code, OpenAI Codex, Cursor, and the bundled Aero agent. - GitHub Copilot: GitHub's coding agent. Drive scoped jobs from assigned issues and PRs (via CLI or MCP). - Aero: bundled, no setup, backed by pi-agent-core, 15+ LLM providers. - Custom: stdio, REST API, or webhook-driven shells. ## Monitored AI engines - Gemini (including AI Overviews) - OpenAI (ChatGPT) - Anthropic Claude - Perplexity - Local LLMs (Ollama, LM Studio, vLLM, any OpenAI-compatible endpoint) ## SEO + AEO integrations - Google Search Console: coverage, URL inspection, request-indexing (OAuth) - Google Analytics 4: traffic, AI referrals, attribution - Google Business Profile (local AEO): daily performance metrics (impressions across Search and Maps, calls, direction requests, website clicks, bookings), monthly search-keyword impressions, and booking/reservation/order CTAs (place actions); snapshots hotel lodging attributes and cross-references your public Google listing (Places API) against the owner-configured profile to flag discrepancies. Same Google OAuth as Search Console; synced on the gbp-sync schedule to local SQLite; exposed over CLI (canonry gbp ...), REST (/gbp/*), and the gbp MCP toolkit. Reviews and Q&A are out of scope: Google access-gates the v4 Reviews API and retired the My Business Q&A API. - Bing Webmaster: coverage, URL inspection (API key) - WordPress: REST API + Application Passwords for content publish - Common Crawl: workspace-level release sync via DuckDB - ChatGPT (CDP): Chrome DevTools Protocol adapter scrapes the live web UI - Server-log ingestion (WordPress, Vercel, and Cloud Run): pulls server-log entries on a schedule and rolls them up into two hourly tables: crawler_events_hourly (AI bot UA + path + count) and ai_referral_events_hourly (referrer host + landing path + count). Recognises GPTBot, ClaudeBot, OAI-SearchBot, PerplexityBot, Google-Extended, and referrals from chatgpt.com, claude.ai, perplexity.ai, gemini.google.com, copilot.microsoft.com, and others. Same scheduler as visibility sweeps; same evidence/insight/report pipeline. ## Install - Homebrew (recommended on macOS): brew install canonry/canonry/canonry canonry init && canonry serve - npm (Node 22+): npm install -g @ainyc/canonry canonry init && canonry serve - Docker: docker run --rm -p 4100:4100 -v canonry-data:/data arberx/canonry - Railway: one-click deploy, attach a volume at /data. - Agent-driven setup (Claude Code, OpenAI Codex, any shell-capable AI coding agent): paste the prompt below into your agent. It installs canonry, runs the first citation sweep, runs a baseline AEO audit with `cnry technical-aeo`, and stops for the user's permission before taking any action on the site. Set up canonry for me. Canonry is an open-source platform that tracks how AI answer engines (Gemini, ChatGPT, Claude, Perplexity) cite my site. 1. Ask me for: my domain, 3-5 queries I want to track, and which provider I want to start with (gemini / openai / claude / perplexity). Wait for my answers before proceeding. 2. Run `npm install -g @ainyc/canonry`. 3. Run `cnry init` in this directory. This scaffolds config and installs the canonry skills into `.claude/skills/canonry/`, `.claude/skills/aero/`, `.codex/skills/canonry/`, and `.codex/skills/aero/`. If the skills aren't there afterwards, run `cnry skills install`. 4. Read the operator playbook at `.claude/skills/canonry/SKILL.md` and follow it end-to-end: create the project with my domain and queries, wire up the provider key I chose, and trigger the first sweep. 5. Open my browser to the dashboard so I can see the run results. 6. Switch to the analyst playbook at `.claude/skills/aero/SKILL.md` and run a baseline AEO audit on my behalf. Read citation evidence with `cnry evidence --format json`, then run `cnry technical-aeo run --wait` followed by `cnry technical-aeo score --format json` for a site-readiness score. This crawls every page in my sitemap (not just the homepage), scores the whole site 0-100, and saves the result so it appears in the dashboard and can be re-audited on a schedule. 7. Summarize what you found: my mention and citation rates per provider, the top 3 queries I'm not yet cited on, and the highest-impact site issues from the audit. Ask me for permission before taking any further action, such as drafting content, submitting URLs for indexing, editing files, or anything else that changes my site. ## What Canonry's bundled agent does autonomously 1. Subscribes to run.completed webhooks for every project. 2. Reads the new sweep, identifies which phrases lost or gained citations. 3. Calls get_evidence() to inspect the lost-citation provider responses. 4. Calls diff_snapshot() to compare the current site to a recent snapshot. 5. Identifies the regression cause (e.g. a noindex header, schema removal). 6. Drafts a schema patch or content fix. 7. Calls request_indexing() against Google Search Console. 8. Calls update_schedule() to re-sweep in 6 hours and verify the fix. ## FAQ - What is AEO? See above. - Does Canonry replace my coding agent? No. It hands a typed tool surface to whatever agent you bring (Claude Code, Codex, Cursor, OpenClaw, GitHub Copilot), or runs the bundled Aero agent for users who haven't wired up their own. - Which engines does Canonry monitor? Gemini, OpenAI, Anthropic Claude, Perplexity, and any OpenAI-compatible local LLM. - Is Canonry self-hosted? Yes. SQLite by default. No cloud account required. - Is the source public? Yes. Source on GitHub. npm package public. Licensing details are being finalized. - How does Canonry differ from other AEO tools? Canonry is source-available, self-hosted, and agent-native: it ships a CLI, REST API, MCP adapter, and webhook surface that all wrap the same public client. Other AEO tools are dashboards first; Canonry was built for agents from day one. ## Walkthrough video - /walkthrough : dedicated landing page for the two-minute Canonry walkthrough video. Shows install, project creation, query and competitor configuration, the first multi-provider citation sweep (Gemini, OpenAI ChatGPT, Anthropic Claude, Perplexity), and inspection of citation evidence in the local dashboard at localhost:4100. VideoObject + BreadcrumbList + WebPage JSON-LD on the page. Video also exposed in the sitemap as a video sitemap entry. - Video duration: 1:45 (PT1M45S) - Recorded: 2026-05-19 - YouTube canonical: https://www.youtube.com/watch?v=CXqS8EV6C4s ## Contact - GitHub issues: https://github.com/Canonry/canonry/issues - npm: https://www.npmjs.com/package/@ainyc/canonry - Publisher: Canonry (https://canonry.ai) - Founder: Arber Xhindoli