内容
# 佳能 <img src="https://raw.githubusercontent.com/Canonry/canonry/main/apps/web/public/favicon-32.png" alt="佳能图标" width="24" />
[](https://www.npmjs.com/package/@canonry/canonry) [](https://nodejs.org)
**以 Agent 为中心的 AEO 操作平台。开源。自托管。**
- 跟踪 Gemini、ChatGPT、Claude、Perplexity 和本地 LLM 的引用
- 通过 [服务器日志摄入](skills/canonry/references/server-side-traffic.md) 监控 AI 引擎的爬取和引用流量 — 目前支持 Cloud Run、Vercel 和 WordPress Traffic Logger 插件
- 使用内置的 [GSC](docs/google-search-console-setup.md)、[GA4](docs/google-analytics-setup.md) 和 [Bing Webmaster](docs/bing-webmaster-setup.md) 进行真实流量诊断
- 通过 [Google Business Profile](skills/canonry/references/google-business-profile.md) 跟踪本地 AEO — 搜索词印象、性能指标和酒店住宿 + 预订 CTA 缺口
- 使用 [Common Crawl 反向链接](skills/canonry/references/canonry-cli.md#backlinks-common-crawl) 发现谁链接到您 — 跟随 Common Crawl 的滚动每月超链接图,每个新窗口按计划自动同步,在本地使用 DuckDB 查询
- 通过 [WordPress](docs/wordpress-setup.md)、JSON-LD 模式和索引提交执行修复
- 使用配置即代码的 YAML + `cnry apply` 管理多个客户端
- 安排定期可见性检查、流量同步和 Business Profile 同步,并在回归时使用 Webhook 警报
- 生成客户端-ready 的 HTML 报告 — `cnry report <project>`
- 通过 [67-tool MCP 适配器](docs/mcp.md) 或 Webhook 驱动您自己的代理
- 或使用 **Aero** — 佳能内置的代理,在每次运行后唤醒
每个仪表板视图都有一个匹配的 CLI 命令和 API 端点。CLI 是表面;UI 消耗与您的代理相同的 API。

## 在 5 分钟内运行您的第一个 AI 可见性检查
```bash
npm install -g @canonry/canonry
cnry init
cnry serve
```
CLI 安装为 `cnry`(简称)和 `canonry` — 两者可互换。
旧包名称 `@ainyc/canonry` 仍以相同版本发布以保持兼容性,但新安装应使用 `@canonry/canonry`。
打开 [http://localhost:4100/setup](http://localhost:4100/setup)。引导式向导带您完成提供商密钥、项目设置、查询和您的第一个可见性检查。
如果您在 `0.0.0.0` 或 LAN 地址上提供佳能,请从环回完成首次运行仪表板密码设置,或使用 `cnry_...` 承载密钥进行身份验证。未经身份验证的设置路径仅限环回设计。
更喜欢终端吗?
```bash
cnry project create my-site --domain example.com
cnry query add my-site "your first query" "second query"
cnry run my-site --wait
cnry evidence my-site
cnry insights my-site
```
## 或使用您的 AI 编码代理设置
将此内容放入 Claude Code、Codex 或任何具有 shell 能力的代理中。它安装佳能,运行您的第一个扫描,审计您的站点以检查 AEO 准备情况,并在代表您采取任何行动之前等待您的确认:
```text
为我设置佳能。佳能是一个开源平台,用于跟踪 AI 答案引擎(Gemini、ChatGPT、Claude、Perplexity)如何引用我的站点。
1. 询问我:我的域名、要跟踪的 3-5 个查询以及要启动的提供商(gemini / openai / claude / perplexity)。在继续之前等待我的答案。
2. 运行 `npm install -g @canonry/canonry`。
3. 在此目录中运行 `cnry init`。这会搭建配置并将佳能技能安装到 `.claude/skills/canonry/`、`.claude/skills/aero/`、`.codex/skills/canonry/` 和 `.codex/skills/aero/`。如果技能安装后不存在,请运行 `cnry skills install`。
4. 阅读操作员手册 `.claude/skills/canonry/SKILL.md` 并按照它从头到尾进行操作:使用我的域名和查询创建项目,连接我选择的提供商密钥,并触发第一次扫描。
5. 打开我的浏览器到仪表板,以便我可以查看运行结果。
6. 切换到分析师手册 `.claude/skills/aero/SKILL.md`,并代表我运行基线 AEO 审计。使用 `cnry evidence <project> --format json` 读取引用证据,然后运行 `cnry technical-aeo run <project> --wait`,接着运行 `cnry technical-aeo score <project> --format json` 以获取站点准备情况评分。这会爬取我的站点地图中的每个页面(不仅仅是首页),对整个站点进行 0-100 的评分,并保存结果,以便它出现在仪表板中,可以按计划重新审计。
7. 总结您的发现:我的提及和引用率按提供商划分、我尚未引用的前 3 个查询,以及审计中发现的最高影响站点问题。在采取任何进一步的行动(如起草内容、提交 URL 进行索引、编辑文件或更改我的站点)之前,请征求我的许可。
```
在 [canonry.ai](https://canonry.ai) 处提供一键复制。
## 如果您遇到问题
| 问题 | 解决方法 |
|---------|-----|
| 未配置提供商密钥 | 打开 `/setup`,或获取免费的 [Gemini 密钥](https://aistudio.google.com/apikey),设置 `GEMINI_API_KEY`,然后重启 `cnry serve`。 |
| 为什么我的第一次审计失败? | 运行 `cnry doctor`,然后重新打开 `/setup`;它会在第一次扫描前检查提供商密钥和设置阻止程序。 |
| 运行后无结果 | 可见性检查是异步的 — 检查“运行”选项卡或使用 `cnry run <project> --wait`。 |
| 不确定要测试哪些查询 | 设置向导自动生成它们;使用 `cnry discover run <project> --icp "..."` 在以后扩展篮子 — 请参阅[发现方法论](skills/aero/references/aeo-discovery.md)。 |
| `npm install` 在 `node-gyp` 上失败 | 为 `better-sqlite3` 安装构建工具([指南](https://github.com/WiseLibs/better-sqlite3/blob/master/docs/troubleshooting.md))。 |
## 提供商密钥
| 提供商 | 密钥来源 | 环境变量 |
|----------|-----------|---------|
| Gemini | [aistudio.google.com](https://aistudio.google.com/apikey) | `GEMINI_API_KEY` |
| OpenAI | [platform.openai.com](https://platform.openai.com/api-keys) | `OPENAI_API_KEY` |
| Claude | [console.anthropic.com](https://console.anthropic.com/settings/keys) | `ANTHROPIC_API_KEY` |
| Perplexity | [perplexity.ai/settings/api](https://www.perplexity.ai/settings/api) | `PERPLEXITY_API_KEY` |
| 本地 LLM | 任何 OpenAI 兼容的端点 | `LOCAL_LLM_URL` |
在 `cnry init` 期间、仪表板 `/settings` 或作为环境变量进行配置。
## 文档
| | |
|---|---|
| **架构和数据模型** | [docs/architecture.md](docs/architecture.md) · [docs/data-model.md](docs/data-model.md) |
| **Aero — 内置代理** | [skills/aero/SKILL.md](skills/aero/SKILL.md) |
| **MCP — Claude Desktop / Cursor / Codex** | [docs/mcp.md](docs/mcp.md) |
| **集成** | [GSC](docs/google-search-console-setup.md) · [GA4](docs/google-analytics-setup.md) · [Bing](docs/bing-webmaster-setup.md) · [Google Business Profile](skills/canonry/references/google-business-profile.md) · [WordPress](docs/wordpress-setup.md) · [服务器端流量(Cloud Run + Vercel + WordPress 日志)](skills/canonry/references/server-side-traffic.md) |
| **部署** — Docker、Railway、Render、systemd、Tailscale | [docs/deployment.md](docs/deployment.md) |
| **API** — 118+ 端点 | `GET /api/v1/openapi.json`(无身份验证) |
| **技能包** 用于 Claude Code / Codex | `cnry skills install`([详细信息](skills/canonry/SKILL.md)) |
| **路线图和 ADRs** | [docs/roadmap.md](docs/roadmap.md) · [docs/adr/](docs/adr/) |
| **所有文档** | [docs/README.md](docs/README.md) |
## 要求
Node.js ≥ 22.14.0。至少一个提供商 API 密钥。
## 贡献
```bash
git clone https://github.com/Canonry/canonry.git && cd canonry
pnpm install && pnpm run typecheck && pnpm run test && pnpm run lint
```
参见 [CONTRIBUTING.md](./CONTRIBUTING.md)。
## 许可证
[FSL-1.1-ALv2](./LICENSE)。免费使用、修改和自托管。每个版本在两年后转换为 Apache 2.0。