# contentrain 中文文档

规范地址：https://npmcn.com/package/contentrain/

版本：0\.18\.26
npm 元数据更新时间：2026-11-03T08:27:55.214Z
中文译文更新时间：2026-11-03T09:19:40.976Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/contentrain
原文对照：https://npmcn.com/package/contentrain/?lang=original
项目主页：https://ai.contentrain.io/packages/cli
源码仓库：https://github.com/Contentrain/ai

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.3 MB，115 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：17 个
- 首次发布：2026-03-16T19:37:55.129Z
- 最新版本发布：2026-11-03T08:27:54.921Z
- 已发布版本数：147（近 12 个月 147 个）

## 中文简介

CLI for contenttrain——团队和AI代理的内容治理生态系统

## 安装

```sh
npm install contentrain
```

也可以使用：`pnpm add contentrain`、`yarn add contentrain`、`bun add contentrain`

## README

# `contentrain`

[![npm version](https://img.shields.io/npm/v/contentrain?label=contentrain)](https://www.npmjs.com/package/contentrain) [![GitHub source](https://img.shields.io/badge/source-Contentrain%2Fai-181717?logo=github)](https://github.com/Contentrain/ai/tree/main/packages/cli) [![Docs](https://img.shields.io/badge/docs-ai.contentrain.io-0f172a)](https://ai.contentrain.io/packages/cli)

用于contenttrain的CLI。

从这里开始:

-   [2分钟产品演示](https://ai.contentrain.io/demo)
-   [CLI文档](https://ai.contentrain.io/packages/cli)
-   [开始](https://ai.contentrain.io/getting-started)

`contentrain` 是contenttrain项目的本地操作面：

-   初始化 `.contentrain/` 在现有的回购中
-   检查项目运行状况和验证状态
-   生成类型化 `#contentrain` SDK客户机
-   回顾等待 `cr/*` 分支机构
-   运行本地审核UI
-   通过Studio （IDE代理）或HTTP （Studio、CI、远程驱动程序）公开MCP服务器

这个包是人性化的伴侣：

-   [`@contentrain/mcp`](https://github.com/Contentrain/ai/tree/main/packages/mcp) 用于确定性内容操作
-   [`@contentrain/query`](https://github.com/Contentrain/ai/tree/main/packages/sdk/js) 对于生成的运行时查询
-   [`@contentrain/rules`](https://github.com/Contentrain/ai/tree/main/packages/rules) 和 [`@contentrain/skills`](https://github.com/Contentrain/ai/tree/main/packages/skills) 用于代理指导

## 安装

使用 `npx`：

```bash
npx contentrain init
```

或全局安装：

```bash
pnpm add -g contentrain
contentrain status
```

要求:

-   node . js 22 +
-   在 `PATH`

## 全球旗帜

| 国旗 | Env var | 描述 |
| --- | --- | --- |
| `--debug` | `CONTENTRAIN_DEBUG=1` | 详细调试日志记录到stderr（适用于每个子命令） |

例子: `contentrain --debug status` 或 `CONTENTRAIN_DEBUG=1 contentrain validate`。

## 命令

| 命令 | 目的 |
| --- | --- |
| `contentrain init` | 初始化 `.contentrain/`， git工作流，模板和IDE规则 |
| `contentrain import <source>` | 导入WordPress站点（WXR导出文件或REST URL）到 `.contentrain` 商店 |
| `contentrain status` | 显示项目概述、模型、分支压力和验证摘要 |
| `contentrain doctor` | 检查设置运行状况、SDK新鲜度、孤立内容和分支限制 |
| `contentrain validate` | 根据模式验证内容，可以选择创建审查分支修复 |
| `contentrain generate` | 生成 `.contentrain/client/` 和 `#contentrain` 包进口 |
| `contentrain diff` | 检查和合并或拒绝挂起 `cr/*` 分支交互 |
| `contentrain merge <branch>` | 合并一个待处理的 `cr/*` 非交互式分支（CI/agents）；删除其远程副本 |
| `contentrain reconcile` | 发散内容的有内容意识的三向合并↔基对（干式计划，交互式决策） |
| `contentrain prune` | 删除合并 `cr/*` 本地和远程分支（排空积压） |
| `contentrain describe <model>` | 检查模型的模式、状态和导入片段 |
| `contentrain delta <delta.json> --dry-run` | 针对存储计划一个WordPress源增量：位置，字段更改，冲突，墓碑，重定向（仅计划） |
| `contentrain describe-format` | 打印contenttrain内容格式规范 |
| `contentrain scaffold --template` | 应用模板(`blog`， `landing`， `docs`， `ecommerce`， `saas`， `i18n`， `mobile`） |
| `contentrain setup <agent|--all>` | 为IDE配置MCP服务器+ AI规则（Claude Code, Cursor, Windsurf, VSCode, Copilot, Codex） |
| `contentrain skills` | 安装、更新或列出contenttrain AI技能和IDE规则 |
| `contentrain serve` | 启动本地评审UI (REST + WS)， MCP工作室服务器(`--stdio`)，或MCP HTTP服务器(`--mcpHttp`） |
| `contentrain studio connect` | 将存储库连接到Studio项目 |
| `contentrain studio login` | 使用contenttrain Studio进行认证 |
| `contentrain studio logout` | 退出Studio |
| `contentrain studio whoami` | 显示当前认证状态 |
| `contentrain studio status` | 从Studio显示项目概述 |
| `contentrain studio activity` | 显示最近的活动提要 |
| `contentrain studio usage` | 显示工作区使用指标 |
| `contentrain studio branches` | 管理远程内容分支 |
| `contentrain studio cdn-init` | 为内容分发设置CDN |
| `contentrain studio cdn-build` | 触发CDN重建 |
| `contentrain studio webhooks` | 管理的人 |
| `contentrain studio submissions` | 管理表单提交 |

## 国旗矩阵

每个读命令都支持 `--json` 供CI使用；写命令界面 `--watch` 或 `--yes` 它们适用于：

| 命令 | 显著的标志 |
| --- | --- |
| `init` | `--yes`， `--locales <csv>` (默认 `en`)， `--domains <csv>` (默认 `marketing,blog,system`） |
| `import` | `--out <dir>`， `--auth <user>`， `--force`， `--include-emails`， `--json` |
| `status` | `--json` |
| `doctor` | `--json`， `--usage` -失败时非零退出；包括一个遥控器 `cr/*` 部门检查 |
| `validate` | `--json`， `--fix`， `--interactive`， `--watch`， `--model <id>` |
| `generate` | `--json`， `--watch`， `--published`， `--at <ISO timestamp>`， `--require-status`， `--mediaBaseUrl <url>` |
| `diff` | `--json` |
| `merge` | `--yes` (不确定) |
| `reconcile` | `--yes` （在没有提示的情况下执行一个清晰的计划） `--json` (管制计划) |
| `prune` | `--dry-run`， `--yes`， `--json` (只与 `--yes`） |
| `delta` | `--dry-run` （必需的；没有应用模式）， `--incoming <dir>`， `--store <dir>`， `--taxonomy <csv>`， `--json` |
| `describe` | `--sample`， `--locale`， `--json` |
| `describe-format` | `--json` |
| `scaffold` | `--template <id>`， `--locales <csv>`， `--no-sample`， `--json` |
| `serve` | `--port` 3333年(默认), `--host` (默认主机), `--no-open`， `--demo`， `--stdio`， `--mcpHttp`， `--authToken` |

## 典型的流

初始化项目：

```bash
contentrain init
```

检查项目状态（CI使用可选JSON）：

```bash
contentrain status
contentrain status --json

contentrain doctor
contentrain doctor --json
contentrain doctor --usage  # Analyze content key usage
```

生成类型SDK客户端：

```bash
contentrain generate
contentrain generate --watch    # Watch for changes
contentrain generate --json     # CI-friendly JSON output
```

验证内容并创建评审分支修复：

```bash
contentrain validate
contentrain validate --fix
contentrain validate --watch    # Live validation in dev mode
contentrain validate --json     # CI output
```

审查未完成的更改：

```bash
contentrain diff
contentrain diff --json  # CI integration
```

打开本地UI：

```bash
contentrain serve
contentrain serve --demo  # Start with a temporary demo project
```

启用详细日志记录：

```bash
contentrain --debug status
CONTENTRAIN_DEBUG=1 contentrain validate  # Via environment variable
```

## `serve` 模式

`contentrain serve` 有三个角色。

### 本地评审UI（默认）

```bash
contentrain serve
contentrain serve --port 3333 --host localhost
contentrain serve --demo  # Temporary project (no setup needed)
```

为状态/内容/验证/分支/ normalize /医生/ description -format / preview-merge提供REST端点，为实时更新提供WebSocket流，以及嵌入式Vue `serve-ui` 应用程序与CLI捆绑在一起。

WebSocket事件类型： `connected`， `config:changed`， `context:changed`， `meta:changed`， `model:changed`， `content:changed`， `branch:created`， `branch:merged`， `branch:rejected`， `branch:merge-conflict`， `sync:warning`， `validation:updated`， `normalize:plan-updated`， `file-watch:error`。

### MCP工作室（IDE代理）

```bash
contentrain serve --stdio
```

当连接Claude Code， Cursor， Windsurf或其他MCP客户端到本地项目时，使用stdio模式。

### MCP HTTP （Studio、CI、远程驱动程序）

```bash
contentrain serve --mcpHttp --authToken $(openssl rand -hex 32)
contentrain serve --mcpHttp --port 3333 --host 0.0.0.0 --authToken $TOKEN
```

向上旋转 [可流式HTTP MCP](https://modelcontextprotocol.io/) 服务器在 `POST /mcp`． 持票人认证 **要求** 在非环回绑定上：像审查UI一样，CLI拒绝在任何主机上启动 `localhost` / `127.0.0.1` / `::1` 没有 `--authToken` (或 `CONTENTRAIN_AUTH_TOKEN`）. 在以下情况下使用HTTP模式：

-   工作室的代理远程驱动MCP
-   CI运行器需要确定性的内容操作
-   另一台机器上的代理协调内容更改

HTTP会话使用相同的方法 `LocalProvider` 后台是演播室——传输不同，行为不变。远程git-host提供程序(`GitHubProvider`， `GitLabProvider`)由嵌入式程序构建，嵌入式程序以编程方式实例化MCP服务器；请参阅MCP包文档了解该流程。

要让外部代理操作连接的Studio项目而无需自己运行服务器，请使用托管端点， [Studio MCP Cloud](https://docs.contentrain.io/developer/mcp-cloud)。

## `generate` 和 `#contentrain`

`contentrain generate` 将类型化客户端写入 `.contentrain/client/` 和注入 `#contentrain` 导入到 `package.json`。

又一代:

```ts
import { query, singleton, dictionary, document } from '#contentrain'
```

在本地模型/内容工作期间以手表模式运行：

```bash
contentrain generate --watch
```

## IDE设置和AI技能

配置你的IDE使用contenttrain的MCP服务器和AI代理规则：

```bash
contentrain setup claude-code
contentrain setup cursor
contentrain setup vscode
contentrain setup --all  # Configure all detected IDEs
```

安装或更新AI代理技能和IDE规则：

```bash
contentrain skills
contentrain skills --update  # Force update
contentrain skills --list    # List installed skills
```

这个安装:

-   内容训练代理技能（Claude， Cursor等的任务指导）
-   IDE规则文件： `.claude/rules/`， `.cursor/rules/`， `.windsurf/rules/`， `.github/copilot-instructions.md`, `AGENTS.md` 为食品

## 评审工作流程

大多数写操作都是从专用对象创建特性分支的 `contentrain` 分支。在评审模式下，这些分支被推送到远程进行团队评审。在自动合并模式下，它们被合并到 `contentrain` branch和baseBranch是通过update-ref升级的。

当baseBranch分叉时（提交） `contentrain` 缺乏（双域迁移PR留下的状态），写是一个 **部分成功**：它落在 `contentrain` 和报告 `base_advance: "blocked_diverged"` 而不是失败。 `contentrain status` 表示两个方向的关系； `contentrain reconcile` 合并分支内容感知（双亲合并提交），以便快速前进再次工作。

合并一个审查分支（通过） `contentrain merge`， `contentrain diff`（service UI，或MCP工具）也会删除它的远程副本，因此合并的分支永远不会堆积成等待审查的幻影。这同样适用于被拒绝/删除的草案。这是尽最大努力—脱机或权限失败只会产生警告—并且可以使用 `remoteBranchCleanup: false` 在 `config.json`． 在本地模式下(`"git": { "push": false }` 在 `config.json`,或 `CONTENTRAIN_NO_PUSH=1`)在远程上没有推送或删除任何内容，并且 `merge`/`prune` 打印他们跳过了。注意，删除推送的分支会关闭其上所有打开的PR/MR。

使用:

```bash
contentrain status
contentrain diff
contentrain prune --dry-run   # preview merged local/remote leftovers, then run with --yes
```

理解:

-   有多少活动 `cr/*` 审查分支存在于 `contentrain` 分支（和远程） `contentrain doctor`）
-   分支运行状况是否阻止新的写操作（警告为50，阻塞为80）
-   在合并或删除分支之前更改了什么

## Studio集成

这个 `studio` 命令组用于连接CLI [Contentrain工作室](https://studio.contentrain.io/)，受治理内容的团队操作界面。

验证和连接：

```bash
contentrain studio login
contentrain studio whoami
contentrain studio connect
```

这个 `connect` 命令将本地存储库链接到Studio项目。它检测git远程，验证GitHub应用程序安装，扫描 `.contentrain/` 配置，并创建项目-所有这些都在一个交互流程中。

```bash
contentrain studio connect --workspace ws-123
```

设置CDN内容分发：

```bash
contentrain studio cdn-init
contentrain studio cdn-build --wait
```

监控项目活动和使用情况；

```bash
contentrain studio status
contentrain studio activity --limit 10
contentrain studio usage
```

管理分支、webhook和表单提交：

```bash
contentrain studio branches
contentrain studio webhooks
contentrain studio submissions --form contact-form
```

中安全地存储凭据 `~/.contentrain/credentials.json` 与 `0o600` 权限。使用 `CONTENTRAIN_STUDIO_TOKEN` 用于CI/CD的环境变量。

## `contentrain import`

导入WordPress站点到 `.contentrain` 内容库:

```bash
contentrain import export.xml            # WXR export file (highest offline fidelity)
contentrain import https://site.example  # public REST
contentrain import https://site.example --auth editor  # authenticated REST: prompts for the Application Password
CONTENTRAIN_WP_APP_PASSWORD=… contentrain import https://site.example --auth editor
CONTENTRAIN_WP_AUTH=editor:… contentrain import https://site.example
contentrain import export.xml --include-emails  # also write author/commenter e-mails
```

写入规范存储加号 `import-report.json`， `entry-source-map.json` （WP id→条目地址）和-当源有注释时- `comments-export.json` （`contentrain-comments@1`，准备接受评论服务)。现有的 `.contentrain` 只是被 `--force`． 由 `@contentrain/wp-import`。

**个人数据。** 该商店保存作者姓名和登录名、评论者姓名、网站url和评论文本。WXR导出还携带作者和评论者的电子邮件地址；他们被排除在商店之外 `comments-export.json` 除非你通过 `--include-emails`． 评论ip，用户代理和头像url（包括Akismet的评论元）从来没有写。默认情况下，电子邮件不会出现，因为存储通常以git（有时是公开的repo）结束。REST路径永远不会看到它们。

**凭证。** 读取应用程序密码 `CONTENTRAIN_WP_APP_PASSWORD` (与 `--auth <user>`),从 `CONTENTRAIN_WP_AUTH=user:password`，或从隐藏的提示符。 `--auth user:password` 仍然可以工作，但已弃用并警告：argv进入shell历史和进程列表。

### `contentrain delta`

计划一下WordPress更新对已经交付的商店意味着什么：

```bash
contentrain delta bridge-delta.json --incoming ./next-export --dry-run         # report
contentrain delta bridge-delta.json --incoming ./next-export --dry-run --json  # the planned SourceDeltaPlan
```

该命令读取存储(`--store`（默认：当前目录）及其 `entry-source-map.json`，从存储根或从 `bridge/`． 它以同样的方式读取新导出。对于每条记录，它报告它在存储中的位置，哪些字段不同，哪些地址移动（每条记录都变成301）。垃圾和清除的删除是分开保存的。在存储库中也编辑过的记录是冲突的，并且它不会被覆盖。没有应用模式：without `--dry-run` 指挥部拒绝了，因为实施计划要经过审查。分类法来自于桥 `inventory.json` 当它在出口旁边时；给其他人命名 `--taxonomy`。

### 公共静态构建

`contentrain generate --published` 排除其之外的草稿和内容 `publish_at`/`expire_at` 窗口。 `--at 2026-10-01T12:00:00Z` 修复了公共建筑 时钟可重复的测试和暗示 `--published`。 `--require-status` 也 排除在meta中没有状态的条目，对于每个条目都有状态的项目 （WordPress导入）；这意味着 `--published`． 没有这些旗帜， 编辑生成保持其现有行为。观察模式观察元数据 编辑;计划的静态发布仍然需要构建/部署触发器。

## 文档

完整文件载于 **[ai.contentrain.io /包/ cli](https://ai.contentrain.io/packages/cli)**。

## 发展

源自monorepo词根：

```bash
pnpm --filter contentrain test -- --run
pnpm --filter contentrain exec tsc --noEmit
pnpm --filter contentrain build
```

## 内容列车生态系统的一部分

contenttrain是团队和人工智能代理的内容治理生态系统；代理通过 [MCP服务器](https://ai.contentrain.io/packages/mcp)． 这个命令行是 [开源工具](https://github.com/Contentrain/ai) （[文档](https://ai.contentrain.io/)）. [工作室](https://github.com/Contentrain/studio) 在同一存储库上添加团队审阅和角色； [迁移](https://migrate.contentrain.io/) 将WordPress网站移动到Astro，并且 [桥](https://github.com/Contentrain/wordpress-bridge) 是一个免费的WordPress插件，可以将网站导出为内容仓库。

## 许可证

麻省理工学院

## 常见问题

### contentrain 是什么？

CLI for contenttrain——团队和AI代理的内容治理生态系统

### 如何安装 contentrain？

在项目目录运行 npm install contentrain，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 contentrain，可以用 npx contentrain 直接运行。

### contentrain 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/contentrain 是否存在。

### contentrain 支持 ESM 还是 CommonJS？

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

### contentrain 可以商用吗？

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

### contentrain 还在维护吗？

最新版本 0\.18\.26 发布于 2026/11/03（今天）；至今共发布 147 个版本，其中过去 12 个月发布了 147 个；首次发布于 2026/03/17。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

