# Canonry: full manifest > Canonry is the open-source, agent-native operating system 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/AINYC/canonry npm: https://www.npmjs.com/package/@ainyc/canonry Docker: https://hub.docker.com/repository/docker/arberx/canonry Last updated: 2026-04-28 --- ## 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 system 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 - 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 ## Install - Homebrew (recommended on macOS): brew install ainyc/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. ## 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. ## Contact - GitHub issues: https://github.com/AINYC/canonry/issues - npm: https://www.npmjs.com/package/@ainyc/canonry - Publisher: AI NYC (https://ainyc.ai) - Founder: Arber Xhindoli