@ainyc/canonry

中文文档
7.45.1发布于 2026/10/15MITTypeScriptES Module近 30 天下载 7479

自办的AI能见度(AEO)平台:追踪ChatGPT,克洛德,双子座,和Perplexity如何引用你的域名,与Search Console,GA4,服务器侧流量,以及付费媒体一起,通过代理工具(CLI,REST,MCP)修复所发现的东西. 本地 SQLite (英语).

中文使用文档
文档目录15 节
  1. 快开始
  2. 从您的代理开始
  3. 或使用官方 Claude 和 Codex 插件
  4. 或者自己在本地开始
  5. 探索证据
  6. AI 可见度
  7. 搜索、交通和场地健康
  8. 组合和竞争者
  9. 证据行动
  10. 一体化
  11. 自我接待和API
  12. 文档
  13. 支助
  14. 捐款
  15. 许可证

卡农里 Canonry canary icon

License: MIT npm version

卡农里是个 代理-一号(CLI,MCP,API),开源AEO操作平台,并设有综合网络UI. 跟踪AI的能见度 调查搜索和流量的变化 并测量您或您的代理行为后的进展.

自行托管,使用SQLite,并自有(BYOK)提供密钥. 网络UI和你的经纪人也看到了同样的证据.

现场UI Demo • 妇女 快开始 • 妇女 证据 • 妇女 行动 • 妇女 一体化 • 妇女 文档 • 妇女 支助

AI, search, analytics, and traffic sources feed Canonry on schedules or on demand. Historical evidence across multiple domains and portfolios runs from baseline through the latest checks. Your agent reads evidence and sends commands to Canonry tools, while using its own tools for code and content. Canonry publishes to WordPress, submits to Google and Bing, and supplies the dashboard, evidence exports, and webhooks. Site changes loop back into measurement.

快开始

从您的代理开始

复制第一次设置请求
Help me set up Canonry for my public site.

Use the official Canonry docs:
- Agent quickstart: https://github.com/Canonry/canonry#or-use-any-shell-capable-coding-agent
- CLI reference: https://github.com/Canonry/canonry/blob/main/skills/canonry/references/canonry-cli.md
- Plugin setup: https://github.com/Canonry/canonry/blob/main/docs/plugins.md
- MCP setup: https://github.com/Canonry/canonry/blob/main/docs/mcp.md

Pick one path and stay on it. Use connected Canonry tools (plugin or MCP) only if you have them and I have not pointed you at a specific install. A connected tool runs in its own process and never sees `CANONRY_CONFIG_DIR`, `CANONRY_PORT`, or anything else you export in a shell, so it always acts on my default install. If I named a config directory, a port, or a sandbox, that is the shell path: use `cnry` and tell me which path you chose. Never mix the two in one run, and never create a duplicate project. The `cnry` and `canonry` commands are interchangeable.

1. Ask for my public domain, country, and language. Do not create or scan anything yet. Country and language are only applied when a project is created, so if you reuse an existing project, report its country and language instead of changing them.
2. Shell path only: confirm `cnry` is on PATH, then run `cnry --version`. If Canonry is missing, propose `npm install -g @canonry/canonry` and wait for approval. Then run `cnry doctor --format json`, which is the command that says whether config, database, and server are in place. `cnry --version` does not read config and succeeds on a completely unconfigured install, so it cannot answer this. If config is missing, run `cnry bootstrap` yourself: it is not interactive, takes about a second, and is safe to rerun. Do not hand it to me and wait. The interactive command is `cnry init`, which is optional provider and OAuth setup that Page Health does not need. Bootstrap prints an API key, so do not repeat its output back to me, and never ask me to paste passwords, API keys, OAuth credentials, or command output.
3. Confirm the API is reachable. `cnry doctor --format json` reports it, and any project read exits non-zero with `CONNECTION_ERROR` when it is not. If it is unreachable, propose `cnry start` and wait for approval. Use `cnry start`, which is the background daemon, and not `cnry serve`, which runs in the foreground and will block you until I stop it, even though some error messages suggest it. Stop anything you started with `cnry stop`.
4. List projects with the connected project tool or `cnry project list --format json`, and reuse one whose domain matches. Confirm the proposed name is not already assigned to a different domain. To find out whether a project has already been scanned, run `cnry technical-aeo score <project> --format json` with no `--run-id`, which reports the latest run. Read the `hasData` field, not the score: this command exits 0 and reports `aggregateScore: 0` for a project that has never been scanned, so reading the score alone would have you tell me my site scored zero. If `hasData` is true and `runStatus` is `completed` or `partial`, read that scan instead of starting a new one. If no project matches, show the exact create operation and wait for approval.
5. Propose a bounded Site Health scan: `--max-pages 100` for a first look, plus whether dead-link checking is on (it is off unless you pass `--check-dead-links`). Show the connected operation or the exact `cnry technical-aeo run <project> --max-pages 100 --wait --format json` command with the project name filled in, and wait for separate approval before scanning. `--wait` polls for up to 15 minutes and returns only the run id and status. If the status it returns is still `queued` or `running`, the scan has not finished: do not rerun it or report results, poll `cnry technical-aeo progress <project> --run-id <run-id> --format json` until it is terminal. If `--wait` outruns your own tool timeout first, recover the run id with `cnry technical-aeo score <project> --format json` and poll the same way.
6. When the run is `completed` or `partial`, read `cnry technical-aeo crawl <project> --run-id <run-id> --format json` first. It is the only one of these commands that carries `termination` and `complete`; the score and pages commands do not. Then read `cnry technical-aeo score <project> --run-id <run-id> --format json` and `cnry technical-aeo pages <project> --run-id <run-id> --sort score-asc --limit 10 --format jsonl`. Tell me the termination reason in plain words and whether the scan covered the whole site or stopped at a page, link, depth, or time limit. A `partial` run scored the pages it reached and not my site, so never present it as a full-site result. If it stopped early, the fix depends on the reason, so say which: a page or depth limit needs a larger budget, a time limit needs a smaller scan (a lower `--max-pages` or `--max-depth`). If the run failed or was cancelled, inspect the run error and stop.
7. Summarize only completed evidence, then propose AI Visibility setup. Ask before you add queries, connect providers, start a provider-backed or quota-consuming run, edit files, or publish.

或使用官方 Claude 和 Codex 插件

连接 代理插件 或者说 MCP 适配器 给自己的经纪人.

或者自己在本地开始

  1. 安装Canonry.

    npm install -g @canonry/canonry
    
  2. 初始化加农利.

    cnry bootstrap
    
  3. 开始加农利.

    cnry serve
    
  4. 打开 http://127.0.0.1:4100/设置 并跟踪设置扫描您的网站.

爬行节省了一个Page健康基线. AI能见度是可选的,并有单独的设置.

扫描和读取终端的结果

保留 cnry serve 活动。 在第二个终端中,创建一个工程并启动有界限的扫描:

cnry project create my-site --domain example.com --country US --language en
cnry technical-aeo run my-site --max-pages 100 --wait --format json

从输出读取运行的ID和状态 。 如果状态是 completed 或者说 partial,从中读取证据:

cnry technical-aeo score my-site --run-id <run-id> --format json
cnry technical-aeo pages my-site --run-id <run-id> --sort score-asc --limit 10 --format jsonl

--wait 民调最多15分钟. 如果扫描仍然有效,请使用 cnry technical-aeo progress <project> --run-id <id> --format json。 。 。 . 如果扫描失败或取消, 请读取错误 cnry run show <run-id> --format json。 。 。 .

探索证据

你的经纪人和仪表板使用相同的项目API. 仪表板提供了趋势、准确答案和地点调查结果,供人类审查.

AI 可见度

通过查询和回答引擎,跟踪品牌随着时间的推移提及和引用. 找到引用竞争对手的答案,但忽略了您的网站.

Canonry AI Visibility mention share trend across answer engines

追踪你那份的答覆引擎品牌 提到一段时间.

Canonry AI Visibility citation map across queries and answer engines

引用地图显示所有查询和引擎的引用和引用范围. 引用域和页名,然后检查每个结果背后的准确答案和URL.

配置一个提供者并运行可见度检查

对于已存在的工程,请使用自己的密钥配置一个提供者 .

提供者密钥来源环境变量
双子座谷歌AI工作室GEMINI_API_KEY
开放AIOpenAI 平台OPENAI_API_KEY
梅塔 (缪斯)Meta 模型 APIMUSE_API_KEY
克劳德自动控制台ANTHROPIC_API_KEY
复杂复杂度设置PERPLEXITY_API_KEY
本地模式任意 OpenAI 兼容的终点LOCAL_BASE_URL

在您的项目中添加重要的查询 :

cnry query add my-site "your first query" "your second query"
cnry run my-site --wait
cnry visibility-stats my-site --by-provider

Canonry 为什么使用直接提供者 API

Canonry 使用直接提供者 API 获取答案、引用和可用 搜索模式路由器可以省略的细节。 这个更丰富的数据帮助我们测量 品牌引用和网站引用准确 并解释您的更改 可见度. 更多信息:准确性以及我们为什么单独选择模型和直接提供者API适配器。 。 。 .

发现问题或一次性研究

扩展你的跟踪问题. 运行 cnry discover run <project> --icp "..."。这不会改变跟踪的问题. 预览已完成的会话 cnry discover promote preview <project> <session-id>. 只有在批准后才能晋升.

研究不改变跟踪. 运行 cnry research run <project> "query one" "query two" --wait。 。 。 . 对于配置的组合目标,请选择一个 --market <key> 或者说 --property <key>; Canonry 在不更改查询的情况下用答案保存目的地. 添加对齐 --template-id <id> --template-version <version> 只为保存已扩展模板出处. 研究从不给跟踪的问题添加询问.

搜索、交通和场地健康

以搜索和本地性能、爬行者访问、AI页面取取取、转介和转换等证据调查能见度的变化. 现场审计显示,技术调查结果与这些证据相配合.

Canonry Site Map graph

地图可爬行的页面和连接它们的内部链接.

组合和竞争者

使用 版本计量计划 用于地点、产品或站点部分的组合.

  • 属性 : 为每个地产指定查询、引擎、模型和位置。 将品牌和非品牌覆盖分开.
  • 市场集团: 组织重叠的一组属性,每个属性都有自己的竞争对手.
  • 比较: 比较属性、组、引擎和位置。 打开准确的答案并引用每个结果背后的 URL .

证据行动

你的经纪人通过卡农里和它自己的工具协调工作.

您连接代理的示例任务 :

找出竞争者被引用的地方 而我们没有 使用搜索数据和站点审计来编写拉出请求或WordPress草稿以供审查. 船开后,重新检查,报告变化.

一体化

连接您使用的源 。 每项整合都为同一项目工作流程增加了证据或工具.

区域支持的一体化
大赦国际的答复ChatGPT · Claude · 双子座 · Meta( Muse) · 复杂度 · OpenAI 兼容本地模型
搜索和本地谷歌搜索控制台 • 妇女 Bing 网络主工具 • 妇女 谷歌商业简介
分析谷歌分析 4
换算计量Google Ads + Google 标签管理器:只读快照和申报转换合同
服务器流量Cloudflare – Vercel – 云跑 – 文字新闻
后链接常见爬行 超链接发布, 用 DuckDB 本地查询
出版和索引文字压力 · JSON-LD 网站映射和 URL 提交
聊天游戏 广告运动量度、暂停运动编辑、经核准启动和操作调节

自我接待和API

卡农里是单租户. 运行一个操作员或团队的例子。 保持不相关的团队在单独的情况.

CLI和REST API是主要接口. 它们暴露了测量、诊断、行动、证据出口和时间表. OpenAPI 可用时间 GET /api/v1/openapi.json。 。 。 .

见 部署指南 用于反向代理,守护进程模式, Docker, systemd, 和 Tailscale .

文档

故障处理安装、扫描和能见度结果
问题下一步
站点扫描仍在进行中读取准确的计数器 cnry technical-aeo progress <project> --run-id <id> --format json。 。 。 .
站点扫描失败读取错误为 cnry run show <run-id> --format json。读取最后一个阶段,然后与进度命令对等.
无能见度结果检查当前与 cnry runs <project> --format json,则 cnry run show <run-id> --format json。这不会开始另一次付费运行.
npm install 失败 node-gyp安装构建工具 better-sqlite3 (单位:千美元)指南) (中文(简体) ).

支助

请加入 卡农里迪斯科德 支持和质疑关于卡农里.

捐款

git clone https://github.com/Canonry/canonry.git && cd canonry
pnpm install

就当地代理工作而言,只有在修改完成并可以推后或审查后才能进行测试. pnpm verify 本地选项。 见 捐款额 编辑 测试指南。 。 。 .

许可证

麻省理工学院从Canonry 5.0.0开始 使用,修改,自主,再分配,并和Canonry一起打造商业产品. 将版权和许可通知复制件或软件的大部分.

早先的释放保留了他们的原许可证,包括任何未来许可证赠款。 依赖和捆绑的资产保留自己的许可证;见 第三方通知。 。 。 .

版本与发布记录

@ainyc/canonry 共发布 505 个版本,首次发布于 2026/03/11;过去 12 个月发布了 505 个版本。

版本发布日期距今
7.45.1latest2026/10/1524 天前
7.45.02026/10/1425 天前
7.44.12026/10/1325 天前
7.44.02026/10/1326 天前
7.43.22026/10/1226 天前
7.32.02026/10/1226 天前

关于 @ainyc/canonry 的常见问题

@ainyc/canonry 是什么?

自办的AI能见度(AEO)平台:追踪ChatGPT,克洛德,双子座,和Perplexity如何引用你的域名,与Search Console,GA4,服务器侧流量,以及付费媒体一起,通过代理工具(CLI,REST,MCP)修复所发现的东西. 本地 SQLite (英语).

如何安装 @ainyc/canonry?

在项目目录运行 npm install @ainyc/canonry,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 cnry、canonry、canonry-mcp,可以用 npx cnry 直接运行。

@ainyc/canonry 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ainyc/canonry 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@ainyc/canonry 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.19.0 <27。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@ainyc/canonry 可以商用吗?

@ainyc/canonry 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ainyc/canonry 的下载量有多少?

根据 npm 官方下载统计,@ainyc/canonry 在 2026/10/05 – 2026/11/03 这 30 天内被下载 7,479 次,日均约 249 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ainyc/canonry 还在维护吗?

最新版本 7.45.1 发布于 2026/10/15(24 天前);至今共发布 505 个版本,其中过去 12 个月发布了 505 个;首次发布于 2026/03/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。