# @chamvi/cli 中文文档

规范地址：https://npmcn.com/package/%40chamvi/cli/

版本：0\.8\.0
npm 元数据更新时间：2026-11-08T20:16:47.517Z
中文译文更新时间：2026-11-09T10:18:29.780Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40chamvi/cli
原文对照：https://npmcn.com/package/%40chamvi/cli/?lang=original
项目主页：https://chamvi.dev/
源码仓库：https://github.com/chamvi/chamvi

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

- 包体积（解压后）：107 kB，11 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=26\.0\.0
- 运行依赖：1 个
- peer 依赖：tsdown ^0\.23\.4，@chamvi/app ^0\.8\.0
- 首次发布：2026-10-25T08:41:58.677Z
- 最新版本发布：2026-11-08T20:16:47.192Z
- 近 30 天下载量：3248（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 15 个）

## 中文简介

Chamvi命令行: dev, 构建, 启动, 运行工作并迁移到一个使用 @ chamvi/ app构建的应用程序 .

## 安装

```sh
npm install @chamvi/cli
```

也可以使用：`pnpm add @chamvi/cli`、`yarn add @chamvi/cli`、`bun add @chamvi/cli`

## README

![@chamvi/cli](https://raw.githubusercontent.com/chamvi/chamvi/master/.github/assets/logo.svg)

# 校对:soup

**Chamvi 命令行: dev, 构建, 启动( 并启动 -- check), 运行和迁移, 用于构建一个应用 [@ chamvi/ app (中文(简体) )](https://www.npmjs.com/package/@chamvi/app)。 。 。 .**

[![npm version](https://img.shields.io/npm/v/@chamvi/cli)](https://www.npmjs.com/package/@chamvi/cli) [![CI](https://github.com/chamvi/chamvi/actions/workflows/ci.yml/badge.svg)](https://github.com/chamvi/chamvi/actions/workflows/ci.yml) [![License](https://img.shields.io/npm/l/@chamvi/cli)](https://github.com/chamvi/chamvi/blob/master/packages/cli/LICENSE)

* * *

## 安装

```bash
npm install @chamvi/app @chamvi/cli ai
npm install --save-dev tsdown   # only for chamvi build
```

## 使用量

应用程序是一个条目, `src/index.ts`,其默认导出为 `createApp()` 从 [@ chamvi/ app (中文(简体) )](https://www.npmjs.com/package/@chamvi/app)数字 :

```ts
import { createApp } from '@chamvi/app';
import { echo } from './agents.ts';

export default createApp({ agents: [echo] });
```

`package.json` 脚本 :

```json
{
    "type": "module",
    "scripts": {
        "dev": "chamvi dev",
        "build": "chamvi build",
        "start": "chamvi start"
    }
}
```

相对进口 `.ts` 没有 `enum`这样 `chamvi dev` (节点类型去除)和 `chamvi build` (tsdown) 接受相同的代码. 模板 `tsconfig.json`数字 :

```json
{
    "compilerOptions": {
        "target": "ES2023",
        "module": "NodeNext",
        "moduleResolution": "NodeNext",
        "strict": true,
        "skipLibCheck": true,
        "verbatimModuleSyntax": true,
        "allowImportingTsExtensions": true,
        "erasableSyntaxOnly": true,
        "noEmit": true
    },
    "include": ["src", "test"]
}
```

## 图标

`chamvi <command> [args] [flags]`附加时 `--help` 财务报告和审定财务报表 `--version`。每个命令需要 `--entry <path>`。 。 。 .

| 命令 | 参数和旗帜 | 对 |
| --- | --- | --- |
| `dev` | `--entry` | 运行 `node --watch [--env-file-if-exists=.env] <cli> start --dev --entry <source entry>`:在条目、其进口或 `.env` (节点监视掩体文件本身,所以没有) `--watch-path` a. 导言 洞口旗只在 `.env` 初始时存在( 在 Linux 上, `node --watch` 丢失的内存文件失败, 所以 `.env` 创建后需要重新启动 `chamvi dev` |
| `build` | `--entry`, (中文(简体) ), `--out-dir <dir>` (默认) `dist`(中文(简体) ) | 将条目套入 tsdown 中 `<out-dir>/index.mjs` 加上其来源图:无害环境管理, `node26`,每个 `dependencies` 财务报告和审定财务报表 `peerDependencies` 外部软件包,该应用程序自己的模块内含. 输出的目录是先被清空的, 所以其中一个是工程文件夹或上面的, 持有条目, 或持有任何东西, 但是 `.mjs` 财务报告和审定财务报表 `.mjs.map` 文件出口 2 |
| `start` | `--entry`, (中文(简体) ), `--check` | 启动应用程序:存储(并迁移),引擎及其频道(其中有克龙),再由HTTP. `--check` 运行相同的启动路径直到启动( s)`app.check()`: 配置、 存储连接、 模型设置、 每个模块、 代理文件夹的负载和检查) 和退出, 写不给存储( 没有迁移、 修订标记或取消) , 服务不给, 运行不给: `chamvi: start check passed` 在stdout和出站0上,每个代理文件夹在自己的stderr行和出站2上发布,一个配置错误出站2,一个存储失败(无法访问,待迁移到 `CHAMVI_MIGRATE=false`出口 1; 默认 `CHAMVI_MIGRATE=true` 因此,在移民通过之前, 它需要的是一个开始`CHAMVI_TOKENS`因此,在CI中运行它与生产或中装入的管道。 见 [选择一个模型](https://chamvi.dev/guide/models) |
| `run-job` | `<agent>`, (中文(简体) ), `[subscriptionId]`, (中文(简体) ), `--entry` | 一次性开出一个 cron 订阅并等待运行( Kubernetes CronJob; 没有频道启动); `subscriptionId` 代理机唯一订阅的默认值 |
| `migrate` | `--entry` | 米格拉特斯邮局商店(`DATABASE_URL` (所需) |

条目是 `--entry`,其他用于源命令(`dev`, (中文(简体) ), `build`, (中文(简体) ), `start --dev`(b) 与《京都议定书》 `package.json` 字段 `"chamvi": { "entry": "<path>" }`,则 `src/index.ts`. 已建命令(`start`, (中文(简体) ), `run-job`, (中文(简体) ), `migrate`)从不读取字段并默认为 `dist/index.mjs`,所以从一个设置它仍然开始的寄存器中构建的图像; a `.ts` 条目也通过类型剥离。 没有 `--entry`,没有 `chamvi.entry`,没有默认文件, `dev`, (中文(简体) ), `start`, (中文(简体) ), `run-job` 财务报告和审定财务报表 `migrate` 运行默认的应用程序, `createApp({})` 由 env 单独配置,其代理来自 `./agents` (或 `CHAMVI_AGENTS_DIR`),并在stderr上这样说; `build` 2号出入口(无可建设). 一个不见了 `dist/index.mjs` 旁边 `src/index.ts` 仍然退出 2 带有构建提示.

`chamvi dev` 运行 `start --dev`:来源条目, `.env` 从工作目录(绝不凌驾于设定变量之上)中取自 `createMemoryStore()` 除非 `DATABASE_URL` 被设定,没有另一个验证器,一个随机 `*` 以警告和较短的时日为标志`CHAMVI_DRAIN_TIMEOUT_MS` 5000块, `CHAMVI_FORCE_EXIT_MS` 1550) (英语).

## 退出代码

| 代码 | 何时 |
| --- | --- |
| `0` | 成功:一个干净的站站,一个已建成的捆绑,一个迁移的商店,一个 `start --check` 有问题; `run-job` 用于完成、等待、跳过、排队的后方核准或信号中断运行 |
| `1` | 运行时失败: 启动、 检查、 构建或迁移出错( 无法访问或待转移的存储) , 失败或取消的工作, 强制退出 |
| `2` | 用法或配置:未知的命令或旗帜,缺少或没有 chamvi app的条目,缺少或无效的env(名称,其值从未重复),有问题的模型设置,没有模型和默认的代理或没有配置提供者或其软件包缺失的模型字符串,a `start --check` 找到代理文件夹问题 |

CLI 设定 `process.exitCode` 并让节点退出; 它调用 `process.exit()` 仅限强制退出.

## 信号

`start` 财务报告和审定财务报表 `run-job`数字 :

-   第一个SIGTERM或SIGINT停止应用(`/readyz` 503,HTTP关闭,发动机排出(先停)至 `CHAMVI_DRAIN_TIMEOUT_MS`,存储关闭),然后退出 0,或者当停止报告出错时退出 1.
-   第二信号即刻出站一站. 在第一个数的一秒之内发出信号 `npm run dev` 财务报告和审定财务报表 `npm start` 两次发送一个Ctrl-C(npm将SIGINT转发到脚本,而终端则信号整个组).
-   `CHAMVI_FORCE_EXIT_MS` (默认9000)第一个信号后,一站仍然运行出站1.

`migrate` 安装不处理器:节点默认结束它.

在库伯内特保存 `preStop + CHAMVI_FORCE_EXIT_MS < terminationGracePeriodSeconds`5 s 时 `preStop` 睡眠和120 s的宽限期最坏的情况是:5+30 (排水量)+5 (接近)+30 (工作空间)=70 s,强制出站时间为95 s,SIGKILLL为120 s.

`chamvi dev` 将孩子运行在自己的流程组中,所以一个终端Ctrl-C只达到CLI,它转发一个信号(应用程序然后停止一次,而不是得到终端的SIGINT+一个) `node --watch` 页:1 SIGHUP(终端关闭)和CLI自己的出站用SIGTERM阻止了孩子,而孩子的stdin只是CLI所写的管子:当CLI在没有出站钩(SIGKILL,OOM杀手)的情况下死亡时,管子关闭并被应用结束整个组,所以它永远不会活过CLI. 退出代码是孩子的,0当它以转发信号结束.

## 许可证

原载 [Apache 许可证 2.0](https://npmcn.com/package/%40chamvi/cli/LICENSE)。 。 。 .

## 常见问题

### @chamvi/cli 是什么？

Chamvi命令行: dev, 构建, 启动, 运行工作并迁移到一个使用 @ chamvi/ app构建的应用程序 \.

### 如何安装 @chamvi/cli？

在项目目录运行 npm install @chamvi/cli，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@chamvi/app（^0\.8\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。它还提供命令行工具 chamvi，可以用 npx chamvi 直接运行。

### @chamvi/cli 支持 TypeScript 吗？

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

### @chamvi/cli 支持 ESM 还是 CommonJS？

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

### @chamvi/cli 需要什么版本的 Node\.js？

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

### @chamvi/cli 可以商用吗？

@chamvi/cli 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @chamvi/cli 的下载量有多少？

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

### @chamvi/cli 还在维护吗？

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

