Skip to content
Apothem
CLI 参考

diff

apothem diff 命令的 CLI 参考。

预览单个工具待应用的配置更改。

概要

apothem diff --harness NAME [--profile PATH] [--project PATH]
             [--quiet|-q] [--verbose|-v]
             [--format plain|json] [--json] [--no-color]

diff 是一个只读的检查命令。它运行与 install 命令相同的物化过程,但处于试运行模式——不会向磁盘写入任何内容。对于每个待应用的目标,它会渲染一条通俗易懂的操作说明(例如 Write file、Merge directory、Install skills 或 Prune stale files)、目标路径、一个预览状态(would create、would update、would remove 或 no change),以及——对于将被合并的操作者自有锚点——该更改的统一差异。该状态通过将源内容与磁盘上当前的目标进行比较计算得出,因此已经一致的目标显示为 no change,并在默认视图中隐藏。它回答的是“apothem install 此刻会对这个工具做什么?”,而不实际做出更改。

该计划覆盖安装所写入的每一条路径:清单条目、工具自身的配置文件(例如 opencode.json 或 config.yaml)、共享配置档案所投射到的指令锚点或配置档案文档(例如 CLAUDE.md),以及 .apothem/ 下的共享数据存储。安装刚完成后,diff 不会报告任何待应用的更改;此时重新安装不会写入任何内容,也不会创建新的备份。install --dry-run 显示相同的计划。

对于将技能写入你主目录的适配器,计划会在项目文件之前列出这些文件夹及其主目录路径,而并非由 Apothem 写入的技能文件夹会显示为一条 skill_conflict 警告。

对于操作者自有的目标——同时携带你自己的内容和一个由 Apothem 管理的块的文件——差异会显示将要更改的确切行。对于其他目标,则汇总计划的操作和预览状态。

默认视图只列出待应用的更改。传入 --verbose 可查看完整计划,包括未更改的目标,并标注原始的内部操作类型和结果。--json 信封不受显示层影响:它始终为机器使用者携带原始的 operation 和 outcome 字段。

diff 作用于单个工具。与 install 或 verify 不同,它不接受 all;请传入一个工具名称。

选项

选项描述
--harness NAME要预览的工具适配器(必需;单个工具,而非 all)。
--profile PATH共享配置档案 YAML 的路径。默认为 ~/.config/apothem/profile.yaml。
--project PATH项目范围工具的项目根目录。当所选工具为项目范围时必需。
--quiet, -q抑制信息性输出;只输出错误。
--verbose, -v显示完整计划,包括未更改的目标,并标注原始的操作类型和结果。
--format plain|json输出格式(默认:plain)。
--json--format json 的简写。
--no-color在输出中禁用 ANSI 颜色代码。
-h, --help显示帮助并退出。

JSON 输出

--json 信封镜像试运行安装的信封。status 为 dry_run,files_written 始终为空,materialization 块和 results 列表携带完整的计划目标详情。每个操作者自有结果行的 detail.diff 字段携带统一差异字符串。

{
  "schema_version": 1,
  "status": "dry_run",
  "command": "diff",
  "action": "dry_run",
  "harness": "claude-code",
  "files_written": [],
  "results": [
    {
      "harness": "claude-code",
      "outcome": "updated",
      "operation": "sentinel_merge",
      "path": "C:\\Users\\Example\\.claude\\CLAUDE.md",
      "message": "dry run: no filesystem changes made",
      "detail": {
        "ownership_class": "operator-owned",
        "diff": "--- a/CLAUDE.md\n+++ b/CLAUDE.md\n@@ ..."
      }
    }
  ],
  "warnings": [],
  "error": null,
  "materialization": { "...": "..." }
}

示例

apothem diff --harness claude-code
apothem diff --harness cursor --project .
apothem diff --harness claude-code --json

退出码

代码含义
0已报告差异(待应用的更改会被报告,而不是错误)
1预期内的校验、配置档案、工具或项目错误
64用法错误:未知的选项或命令,或者缺失或无效的选项值。在 --json 下,该错误是一个代码为 cli.usage 的 JSON 信封。

另请参阅

On this page