# @cosmoner/cli 中文文档

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

版本：0\.19\.1
npm 元数据更新时间：2026-11-09T11:21:22.776Z
中文译文更新时间：2026-11-11T01:31:01.138Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：1.1 MB，4 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=20
- 运行依赖：1 个
- 首次发布：2026-09-16T19:52:12.982Z
- 最新版本发布：2026-11-09T11:21:22.016Z
- 近 30 天下载量：2241（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：32（近 12 个月 32 个）

## 中文简介

Cosmoner 部署文件的命令行工具

## 安装

```sh
npm install @cosmoner/cli
```

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

## README

# @cosmoner/ cli (英语)

用于命令行工具 `.cosmoner/deployment.yaml`,您承诺的文件 描述存储器如何在 [宇宙纳](https://cosmoner.com/),用于 部署图像应用程序,并用于上传到网站托管站.

文件命令 - `validate`, (中文(简体) ), `fmt`, (中文(简体) ), `init`, (中文(简体) ), `schema` 财务报告和审定财务报表 `agents` ——工作情况 离线 没有账户 没有API密钥 也没有网络呼叫: 到达网络是当网络运行时失败的检查,而不是 你想保护什么. `deploy`, (中文(简体) ), `upload`, (中文(简体) ), `secrets` 财务报告和审定财务报表 `variables` 和API谈谈 并且只有他们读到证书——从 `cosmoner login` 独自一人 机器,或 `COSMONER_API_KEY` 在中央情报局.

完整文档于 [https://cosmoner.com/docs/sdk/cli (中文(简体) )](https://cosmoner.com/docs/sdk/cli)。 。 。 .

```bash
npx @cosmoner/cli validate
```

不需要安装, 也没有JavaScript 专用设备: 文件 描述一个部署,而不是节点工程,所以在 Go 或 Rust 寄存器如同 JavaScript 的一款.

## 图标

### `cosmoner validate [file...]`

对照平台读取的格式检查部署文件。 没有 参数 它找到文件的方式 平台做的 - 第一个 `.cosmoner/deployment.yaml`, (中文(简体) ), `.cosmoner/deployment.yml`, (中文(简体) ), `deployment.yaml`, (中文(简体) ), `deployment.yml` 这是存在的.

```
$ cosmoner validate
.cosmoner/deployment.yaml
  2:11  error    Service names must be lowercase letters, numbers, or hyphens, and start with a letter or number  services.0.name
  4:18  error    Static sites cannot define a run_command  services.0.run_command
  5:11  warning  Unknown field "prot" — it will be ignored  services.0.prot

2 errors, 1 warning
```

| 选项 |  |
| --- | --- |
| `--strict` | 警告也失败了. |
| `--format text|json|github` | `github` 发布工作流程命令,所以发现降落在diff上. |
| `--quiet` | 单独通过退出代码报告. |
| `--no-color` | 永远不要彩色。 当输出不是终端时颜色已经关闭,并且 `NO_COLOR` 很荣幸. |

退出代码 : `0` 一切都过去了, `1` 文件没有, `2` 命令本身 错误 —— 一个未知的选项, 一个无法读取的路径 。 一个处理任何 非零码作为失败的部署文件,否则将报告其类型 自己的指挥线作为破解的部署.

#### 错误和警告

警告是平台所容忍的 而你可能不是故意的. 未知的密钥是主键: 平台放弃而不是拒绝 ,这样为更新字段所撰写的文件仍然应用已知的设置 对抗旧部署 那种宽大是故意的 并视之为致命 这里拒绝平台接受的文件——所以未知的密钥是警告 上面写着会发生什么.

使用 `--strict` 当你不愿让一个打字。 它改变了 判决,而不是结论: 球场仍然只是警告 平台对此感到关切.

#### 在 GitHub 动作

```yaml
- name: Validate deployment file
  run: npx @cosmoner/cli validate --strict --format github
```

### `cosmoner fmt [file...]`

以条形格式重写文件:按格式文档顺序排列字段 他们将依次缩进 `$schema` 抬头, 您的编辑器验证 并按键完成文件.

这些评论被保留下来,与他们所反对的实地一起旅行。 未知 字段也保留着——平台忽略了它们而不是拒绝它们,以及 删除CLI不承认的事物不是事前的决定—— 移动到地图的尽头.

| 选项 |  |
| --- | --- |
| `--check` | 不写入; 如果有任何文件会更改, 请退出 1 . |
| `--stdout` | 打印结果而不是回写. |

### `cosmoner init [file]`

写入启动文件于 `.cosmoner/deployment.yaml`,带有图案头和 包含您最有可能设置的字段的注释 .

| 选项 |  |
| --- | --- |
| `--name <name>` | 服务名. 默认为 `web`。 。 。 . |
| `--type service|static` | 默认为 `service`。 。 。 . |
| `--agents` | 同时将宇宙纳部分写入 `AGENTS.md`,作为 `cosmoner agents` 已经. |
| `--force` | 覆盖已有的部署文件 . `AGENTS.md` 从来没有被覆盖, 只有其中的部分. |

`init` 写它被要求的每件事物, 或全无: 已有的部署 没有文件 `--force` 之前被拒绝 `AGENTS.md` 被触动。 在一个项目上 已经有一个部署文件, 运行 `cosmoner agents` 换句话说.

### `cosmoner agents [file]`

写一个简短的“调用宇宙器”部分 `AGENTS.md`,文档 编码代理如 Codex 和 Cursor 读取寄存器指令, 所以 在寄存器库工作的代理验证部署文件、部署和 处理 CLI 所期望的秘密而不是猜测 。 它命名为 平台将读取的部署文件 `validate`, (中文(简体) ), `fmt`, (中文(简体) ), `deploy` 财务报告和审定财务报表 `upload` 援引 `--format json`,退出代码,其中证书 从,秘密是只写, 在哪里的docs, `llms.txt` 编辑 docs MCP 服务器是 .

片段坐中间 `<!-- cosmoner:start -->` 财务报告和审定财务报表 `<!-- cosmoner:end -->`。 。 。 . 再次运行命令只替换标记之间的内容,所以 升级 CLI 后可安全重运行;其余文件从未被触及. 没有标记的文件会被附加,缺少的文件是 创建。 未对齐的标记被拒绝使用退出代码 `1` 编辑 文件是原样的.

克劳德代码读取 `CLAUDE.md` 而不是说 `AGENTS.md`: 添加一行 `@AGENTS.md` 改为 `CLAUDE.md` 以导入或通过 `CLAUDE.md` 作为文件.

### `cosmoner schema`

打印JSON Schema的文件, 与CLI一起运出,所以它工作离线. `--url` 打印已公布的 URL —— 通常是编辑器 想要,又怎样 `cosmoner fmt` 写入文件.

```bash
cosmoner schema > .cosmoner/app.schema.json
```

### `cosmoner login`

通过浏览器在 CLI 中签名 。 终端显示代码并打开 `cosmoner.com/cli/<code>`,检查代码匹配和批准。 这个 然后CLI被签入您的账户, 你的浏览器的方式, 并到达 你所参加的每一个项目 登录保存到 `~/.config/cosmoner/credentials.json`只有你才能读.

```
$ cosmoner login
Your code is BCDF-GHJK

Opened https://cosmoner.com/cli/BCDF-GHJK in your browser.
Or go to https://cosmoner.com/cli and enter the code.

Waiting for approval…

Logged in as dana@example.com, until 2026-11-06 at the latest.
Pick a default project with cosmoner use <project>, or pass --project to each command.
```

登入会发挥你的作用:它可以做你每个项目中允许的角色. 会员,API密钥和计费都留在控制面板中. 用它来更新自己 并在未使用7天或批准30天后结束。 每台机器都列出来 下级 **账户-安保**在那里你可以签出来. `--no-browser` 指纹 连接,而不是打开它, 对于一个机器到达了SSH.

由更古老的 CLI 保存的登录是一个项目的 API 密钥 。 它继续工作 至过期; 运行 `cosmoner login` 改为会议.

`COSMONER_API_KEY` 总是优先于保存的登录, 因此 CI 继续使用 它的钥匙。 故意没有旗帜来传递钥匙或钥匙 符號:一面旗帜会最终出现在外壳历史和CI日志中.

### `cosmoner use <project>`

设定工程 `deploy`, (中文(简体) ), `upload`, (中文(简体) ), `secrets` 财务报告和审定财务报表 `variables` 继续. `<project>` 是一发子弹或一发身份证,并对照API进行核对。 一个命令需要 第一个 `--project`, (中文(简体) ), `COSMONER_PROJECT_ID`此默认值.

```
$ cosmoner use acme-web
Using Acme Web (acme-web) by default.
```

`cosmoner use` 单显示默认值; `--clear` 将取去.

### `cosmoner whoami` 财务报告和审定财务报表 `cosmoner logout`

`cosmoner whoami` 显示CLI的签名时间为登录结束时 默认项目,在检查登录后仍然有效. `cosmoner logout` 签名此机器并删除已保存的登录 .

与 `COSMONER_API_KEY` 设定, `cosmoner whoami` 显示它是什么键和它是谁 作为。 项目关键部分作为其项目服务账户之一,以及 `whoami` 账户名称及其作用——一个秘密或可变写入的角色 检查。 一个个人进入的标志 和你一样。 API 拒绝的密钥 1出入口,所以CI任务可以在部署前检查其密钥.

### `cosmoner <product> get [<name>]`

阅读项目内容。 没有名字,它列出一切,有一个它显示 那个东西. `list` 与 `get` 没有名字.

```
$ cosmoner apps get
NAME  STATUS  URL                       SOURCE                              CREATED
web   ACTIVE  https://web.cosmoner.app  registry.cosmoner.com/acme/web:v2   2026-09-01
api   ACTIVE  -                         acme/api                            2026-08-14

$ cosmoner databases get main --format json
```

产品: `projects`, (中文(简体) ), `apps`, (中文(简体) ), `servers`, (中文(简体) ), `ssh-keys`, (中文(简体) ), `databases`, (中文(简体) ), `redis`, (中文(简体) ), `domains`, (中文(简体) ), `buckets`, (中文(简体) ), `registries`, (中文(简体) ), `email`, (中文(简体) ), `iam`, (中文(简体) ), `members`, (中文(简体) ), `hosting`, (中文(简体) ), `webhooks`, (中文(简体) ), `secrets` 财务报告和审定财务报表 `variables`。 。 。 . `cosmoner projects get` 列表中 工程可以到达,不需要工程;其余从 `--project`, (中文(简体) ), `COSMONER_PROJECT_ID` 或者说 `cosmoner use`。 。 。 .

`--format json` 打印 API 自己的对象——用于列表的数组, 1 单项对象——所以脚本和AI代理可以依赖: API 文档而非表格布局.

全权证书从不以任何形式印制。 一个数据库的连接 URI, 任何 URL 显示中的 redis 密码或密码为 `[hidden]`; 获取一个 控制面板或SDK在您需要时的用途.

`cosmoner apps logs <app> [--type run|build]` 打印应用程序最近的日志行, 带着同样的面具.

### `cosmoner get --all`

所有的项目都在一个命令中: 每一个产品上市,读入 平行。 在文字中,每个产品打印一节; `--format json` 打印一个 对象,与 `project`,每个产品上市的钥匙 `errors`。 。 。 .

```json
{
  "project": { "id": "…", "name": "Acme", "slug": "acme" },
  "apps": [ … ],
  "servers": [],
  "iam": null,
  "errors": { "iam": "Missing scope iam:read (FORBIDDEN)" }
}
```

证书可能无法读取的产品——没有该产品读取的API密钥 范围——是 `null`,理由如下 `errors`,命令不变 成功 。 只有在什么也读不出来时,它才退出1。 一个 CLI 登录读取每个 产品.

### 订购

`cosmoner <product> create <name>` 命令支付的资源。 它会定价的 并询问:

```
$ cosmoner redis create cache --plan valkey-1gb
This orders Redis "cache": plan valkey-1gb in se-sto.
It costs $12.00 a month before tax, billed to the project's saved card. About $4.50 is charged now, prorated until 25 Oct 2026.
Order Redis "cache"? [y/N]
```

每月的价格是准确的。 现在收取的费用是一旦 项目已经支付一些费用,因为费用按比例计入 现有订阅。 如同删除, `--yes` 提前回答,没有 终端和无 `--yes` 没有命令,命令2出口.

| 命令 | 列出选择 |
| --- | --- |
| `cosmoner servers create <name> --size <size> --region <region> [--image <image>] [--ssh-keys <key,…>]` | `servers sizes`, (中文(简体) ), `servers regions`, (中文(简体) ), `servers images` |
| `cosmoner redis create <name> --plan <plan> [--region] [--persistence <mode>]` | `redis plans`, (中文(简体) ), `redis regions` |
| `cosmoner databases create <name> --size <size> [--version] [--region]` | `databases sizes` |
| `cosmoner buckets create <name> --region <aws-region> [--tier] [--public] [--versioning] [--cdn]` |  |
| `cosmoner registries create <name> --region <region> [--provider]` | `registries providers` |
| `cosmoner hosting create <site> [--tier] [--php] [--database <name>] [--extra-storage <gb>]` | `hosting plans` |
| `cosmoner apps create <name> --size <size> (--image <image> | --repo <owner/repo>) [options]` | `apps sizes`, (中文(简体) ), `apps regions` |
| `cosmoner apps resize <app> --size <size>` | `apps sizes` |

只要只有一个区域开放,就可选。 已经使用的名称是 在定价前被拒绝. `--format json` 指纹 `{ created, price }`。 。 。 .

### 更改和删除

`cosmoner <product> delete <name>` (或 `rm`)永远删除一个项目, 解析名称为 `get` 已经 上面写着要问什么 第一条:

```
$ cosmoner redis delete cache
This deletes redis "cache". Its data goes with it, and its billing stops. It cannot be undone.
Delete redis "cache"? [y/N]
```

`--yes` 提前回答,用于脚本。 没有终点站也没有 `--yes` - 中情局, 或代理商的外壳——它不会改变任何东西,也不会改变出口2,而不是等待 一个无法回答的答案.

每一个产品,除了 `members` 可删除; 项目只保留一次 没有资源,只有它的主人。 其他写作命令有:

| 命令 |  |
| --- | --- |
| `cosmoner ssh-keys create <name> --public-key <file|->` | 添加公钥. |
| `cosmoner domains create <domain>` | 添加您拥有的域并打印 TXT 记录以发布 . |
| `cosmoner domains verify <domain>` | 检查该记录; 退出 1 直至可见 . |
| `cosmoner apps update <app> [options]` | 更改名称、例、构建和运行命令、端口、自动部署和图像部署策略。 空值清除设置 . |
| `cosmoner webhooks create <name> --url <url> --events <event,…>` | 创建端点并打印其签名密钥. |
| `cosmoner webhooks update <webhook> [options]` | 改变它; `--enable` 财务报告和审定财务报表 `--disable` 开关. |
| `cosmoner webhooks test <webhook> [--event <event>]` | 发送样本事件; 发送失败时退出 1 . |
| `cosmoner webhooks rotate-secret <webhook>` | 在询问后替换签名密钥 . |
| `cosmoner servers update <server> --name <name>` 编号 : `projects update <project> --name <name>` | 更名为相. |
| `cosmoner servers start|stop|reboot <server>` | 赋予它权力,切断其权力或重新启动;停止并重新启动先问。 一个已停止的服务器仍在计费中 . |
| `cosmoner email create <domain>` | 设置一个域来发送和打印要发布的 DNS 记录 。 项目中尚没有的域被添加为待决域. |
| `cosmoner email verify <domain>` | 检查这些记录并开启发送;1号出入口直至全部可见. 首先问它何时开始按月收费的电子邮件计划. |
| `cosmoner hosting image <site>` | 显示一个站点运行的构建,补丁的构建可以更新到任何自动更新的最后期限,可以卷回什么,并提供PHP版本. |
| `cosmoner hosting update <site>` 编号 : `rollback <site>` | 将站点移动到其PHP版本的最新补丁构建,或在7天内返回其上次更改之前运行的构建。 都重启网站并先询问. |
| `cosmoner hosting php <site> <version>` | 将网站移动到另一个 PHP 版本。 重新启用网站; 先问. |
| `cosmoner hosting mail <site> [on --from <address> | off]` | 显示网站的 PHP `mail()` 发送; `on` 让它作为 `<address>` 在一个已核实的电子邮件域名上,每封电子邮件都有账单 `off` 停止并删除其 SMTP 证书。 二者先问. |
| `cosmoner hosting domains <site>` | 列出一个站点的答案、每个站点做什么以及是否是活的域. |
| `cosmoner hosting domains <site> attach <hostname> [--path <folder> | --redirect <url> [--temporary] | --parked]` | 将工程中一个已核实域,或者一个域的子域,在站点中,默认作为自己文件夹中的网站. 打印DNS记录,说明是否为您添加. |
| `cosmoner hosting domains <site> change <hostname> --website | --path <folder> | --redirect <url> [--temporary] | --parked` | 更改附件域的工作. |
| `cosmoner hosting domains <site> detach <hostname>` | 询问后停止网站对其进行回复;其文件夹保留. |

### 全权证书

这些印出过一次秘密——API没有副本,或只是散文—— 因此,从命令的输出中保存它。 每个读数都显示 `[hidden]`。 。 。 .

| 命令 | 印刷品 |
| --- | --- |
| `cosmoner iam create <label> [--storage read|write] [--buckets <bucket,…>] [--registry pull|push] [--repositories <repo,…>]` | 访问密钥ID及其秘密访问密钥,用于对象存储,注册或两者兼有. 无 `--buckets` 或者说 `--repositories` 它到达每一个桶或仓库,包括后面的. |
| `cosmoner email credentials create <domain> --label <label> --from <address>` | SMTP 用户名和密码, 以及要发送的服务器 . |
| `cosmoner ssh-keys generate <name> [--out <file>]` | RSA 私人密钥,或 `--out`,写给 `<file>` (模式600)和 `<file>.pub` 并且没有指纹. |
| `cosmoner webhooks create` 编号 : `rotate-secret` | 签名的秘密. |
| `cosmoner databases rotate-password <database>` | 一个共享数据库的新密码和连接URI,在询问后:旧密码立刻停止工作. |

`cosmoner email credentials delete <domain> <credential>` 删除 SMTP 登录, 在询问后 . `cosmoner iam delete` 删除访问密钥.

### `cosmoner deploy <app>`

部署一个图像应用程序——一个从宇宙星登记册运行图像的应用程序——和 等待推出完成. `<app>` 是应用程序的名称或ID。 已构建的应用程序 从一个仓库部署 通过推到他们的分支, 所以这拒绝他们.

```
$ cosmoner deploy web --tag v2
Deploying web (tag v2)
  PENDING
  DEPLOYING
✓ web is live on registry.cosmoner.com/acme/web:v2 after 41s
```

没有 `--tag` 也没有 `--digest`中,已绘制应用程序名称的图像 被推倒的标签.

| 选项 |  |
| --- | --- |
| `--tag <tag>` | 从应用程序的仓库里部署这个标签 。 被SHA逼到这里. |
| `--digest <digest>` | 使用这个精确的图像。 这个 `sha256:` 前缀可能会被删除. |
| `--project <project>` | 污名还是身份 默认为 `COSMONER_PROJECT_ID`,然后将项目设定为 `cosmoner use`。 。 。 . |
| `--no-wait` | 接受部署后立即返回. |
| `--timeout <seconds>` | 何等为所出. 默认为600. |
| `--format text|json` | `json` 将应用程序和最终部署显示为一个对象. |

全权证书来自 `cosmoner login` 或环境,从来没有一面旗帜,所以 密钥无法在 CI 日志中结束 : `COSMONER_API_KEY` (与 `apps:read` 财务报告和审定财务报表 `apps:write`),可选择 `COSMONER_PROJECT_ID` 财务报告和审定财务报表 `COSMONER_API_URL`。 。 。 .

退出代码 : `0` 部署启动(或被接受 `--no-wait`, (中文(简体) ), `1` 这个 失败,超时或API拒绝, `2` 命令本身是错误的。 A 类 暂停停止等待,而不是部署.

#### 在 GitHub 动作

```yaml
- name: Deploy
  run: npx @cosmoner/cli deploy web --tag ${{ github.sha }}
  env:
    COSMONER_API_KEY: ${{ secrets.COSMONER_API_KEY }}
    COSMONER_PROJECT_ID: ${{ vars.COSMONER_PROJECT_ID }}
```

### `cosmoner upload <site> <dir>`

上传内容 `<dir>` 到一个SFTP的网址. `<site>` 这是 网站名称或编号。 SFTP 登录用 API 密钥获取, 所以需要 CI 任务 不需要自己的密码.

```
$ cosmoner upload my-site dist --delete
Uploading dist to my-site:/my-site.cosmoner.com/public_html (42 files, 1.3 MB)
✓ Uploaded 42 files (1.3 MB), removed 3 in 6s
```

每个文件都会被上传, 而已有的文件会被覆盖; 文件已经在 站点但不在 `<dir>` 除非 `--delete` 给出. `.git` 文件夹和符号链接从未上传。 一个空的 `<dir>` 被拒绝,因为它 通常都是一无所获的建筑.

| 选项 |  |
| --- | --- |
| `--remote <path>` | 要上传的文件夹, 如 SFTP 客户端所示 。 默认为网站自己的主机名所服务 . |
| `--delete` | 之后,删除目标下但未包含的内容 `<dir>`。当目标为 `/`。 。 。 . |
| `--dry-run` | 连接和列出什么会改变,改变什么. |
| `--host-key <sha256>` | 拒绝一个主机密钥有另一个指纹的服务器 。 默认为 `COSMONER_SFTP_HOST_KEY`。 。 。 . |
| `--project <project>` | 污名还是身份 默认为 `COSMONER_PROJECT_ID`,然后将项目设定为 `cosmoner use`。 。 。 . |
| `--format text|json` | `json` 打印网站、目标和文件上传并删除. |

主要需要 `hosting:read`上传 并打印它看到的指纹; 把它贴上, 并显示另一个密钥的服务器 在密码发出前被拒绝。 网关的关键是:

```
SHA256:PfqYSl1pbMjfMKAbcmjzGZ0t1kpuCZ2mtymdyLu9HwA
```

退出代码 : `0` 每个文件都被上传了, `1` 上传失败或 API 拒绝, `2` 命令本身是错误的.

#### 在 GitHub 动作

```yaml
- name: Upload site
  run: npx @cosmoner/cli upload my-site dist --delete
  env:
    COSMONER_API_KEY: ${{ secrets.COSMONER_API_KEY }}
    COSMONER_PROJECT_ID: ${{ vars.COSMONER_PROJECT_ID }}
    COSMONER_SFTP_HOST_KEY: SHA256:PfqYSl1pbMjfMKAbcmjzGZ0t1kpuCZ2mtymdyLu9HwA
```

### `cosmoner secrets <list|set|rm>`

管理部署文件提到的值 `from_secret`一个秘密 值被加密并只在设定时返回,因此此命令从未打印 一个回来,它会打印的值 是刚刚提供的值,并放 把它写成CI日志.

```
$ cosmoner secrets list
NAME            ENVIRONMENT  VERSION  UPDATED
DB_PASSWORD     production   2        2026-09-02
STRIPE_KEY      production   1        2026-08-30

$ cosmoner secrets set DB_PASSWORD --environment production < password.txt
✓ Set DB_PASSWORD to hu••••r3 in production, version 2
```

`set` 存储新密钥,或替换已存在的密钥的值 同样的环境. `rm` 取同名词.

| 选项 |  |
| --- | --- |
| `--environment <env>` | `default` (默认), `development`, (中文(简体) ), `staging` 或者说 `production`。 。 。 . `set` 财务报告和审定财务报表 `rm` 在一个环境中地址一个名称; 空 `list` 让他们都看看. |
| `--value <value>` | 存储值,字面意思是. |
| `--from-file <path>` | 从文件中读取值 。 一条新线被剥了. |
| `--description <text>` | 设置在值旁边 . |
| `--project <id>` | 工程开工. 默认为 `COSMONER_PROJECT_ID`。 。 。 . |
| `--format text|json` | `json` 从不包含一个值. |

值来自 `--value`, (中文(简体) ), `--from-file`,或任何管道,在那个 秩序。 秩序. **接线最安全**: 一个数值以 `--value` 可从 外壳历史,可能与CI跑道相呼应. 斯丁是最后的手段 更确切地说 因为CI跑步者常常会发出命令 a 无名无姓的臭虫.

两种API行为会看起来像bug:

-   **写作需要拥有者或管理员的角色.** 项目的关键行为 服务账户的角色,登录或个人访问令牌与您的。 这个 单是范围是不够的,所以在 `developer` 服务账户 `secrets:write` 仍然得到一个403.
-   **创建是限速的** 每个项目每10分钟100个秘密, 由每个在项目中工作的钥匙和机器共享。 过去的,创建 遇到一个429,直到窗口重置.

退出代码 : `0` 改变了, `1` aPI 拒绝 或名称不是 发现, `2` 命令本身是错误的.

#### 在 GitHub 动作

```yaml
- name: Publish the build's database password
  run: echo "$DB_PASSWORD" | npx @cosmoner/cli secrets set DB_PASSWORD --environment production
  env:
    COSMONER_API_KEY: ${{ secrets.COSMONER_API_KEY }}
    COSMONER_PROJECT_ID: ${{ vars.COSMONER_PROJECT_ID }}
    DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
```

### `cosmoner variables <list|set|rm>`

简文兄弟 `cosmoner secrets`对于非敏感值, a 调用文件 `from_variable`。同样的子命令和相同的 选项;不同的是,每个读取时返回变量的值, 这样 `list` 打印出来.

```
$ cosmoner variables set LOG_LEVEL --value debug --environment development
✓ Created LOG_LEVEL=debug in development
```

任何值得隐藏的东西都属于 `cosmoner secrets` 换句话说.

## 更新通知

当更新的 CLI 退出时, 一行通知会跟随命令的输出—— at 每天最多一次,在楼梯上。 CLI 最多要求 npm 提供最新版本 一天一次, 放弃过一个半 而不是持有 指挥。 在CI里,没有通知,也没有检查 当Stderr不是 终端,用于离线文件命令,或何时 `COSMONER_NO_UPDATE_CHECK` 已经设定.

根据同样的规则,而且最多每天一次,国家劳工局说 宇宙仪部分 `AGENTS.md` 在当前目录中它不会 现在写——在升级后,通常写. 编码代理读取文件 比起来 `--help`运行 `cosmoner agents` 来刷新它.

## 和SDK一样的答案

规则在SDK,不是这里. `@cosmoner/sdk`, (中文(简体) ), `cosmoner-sdk` (P 财务报告和审定财务报表 `cosmoner/sdk` (PHP)都暴露了同一个验证器,运行在同一个 装入 `conformance/`,并用同样的信息在 同样的顺序。 在 CI 中验证此 CLI 并再次验证一个部署脚本 python SDK给你一个答案 而不是两个.

CLI 仅添加需要存在文件的内容: 每一查找的行和列 并选择输出格式.

## 发展

CLI 将 JavaScript SDK 捆绑在一起 **来源** 而不是取决于 已发布软件包. `tsup` 在建时插入,通过 `paths` 输入 `tsconfig.json`。 。 。 .

在改变它之前,这是值得知道的。 取决于 `@cosmoner/sdk` 以 版本将意味着CLI 只能用来对抗SDK 已经运出 —— 每一次改变, 都需要两次释放, cI将对照登记册的版本,而不是其中的版本,测试CLI 承诺 Bundling让两者步入正轨 而CLI是运行的程序 因此,传送一个自成一体的文件也更好 最终结果。 代价是 `cli/` 到达 `../javascript/src`,所以一个 改为SDK重新运行CLI的测试并重新发布CLI.

```bash
cd javascript && npm ci   # the type check reads the SDK's source, so it
cd ../cli && npm ci       # needs the SDK's dependencies resolvable too
npm run lint && npm run typecheck && npm test
```

第一行不是可选的 `npm run typecheck`: tsc 如下 `../javascript/src` 来源进口 `yaml`,哪个模块解析 在导入文件旁边查找,而不是在其中 `cli/node_modules`林特 林特 林特 林特 林特 林特, 建造和试验不需要它——tsup治疗 `yaml` 作为外部,因为 CLI 也取决于它. `ssh2` 被捆绑,但其两个可选的本地附加物 被排除在外,看 `tsup.config.ts`。 。 。 .

`npm test` 首先,因为两样东西 只有在建造之后才存在: JSON Schema复制了捆绑的旁边, 和使它可以运行的Shebang. 两者 涵盖范围 `test/e2e.test.ts`,运行已建二进制.

## 许可证

[麻省理工学院](https://npmcn.com/package/%40cosmoner/LICENSE)

## 常见问题

### @cosmoner/cli 是什么？

Cosmoner 部署文件的命令行工具

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

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

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

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

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

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

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

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

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

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

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

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

