# @ciridae/cli 中文文档

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

版本：0\.1\.1
npm 元数据更新时间：2026-10-31T18:32:18.293Z
中文译文更新时间：2026-10-31T19:16:03.071Z
软件包许可：未声明

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

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

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

- 包体积（解压后）：94.8 kB，28 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=24
- 运行依赖：5 个
- 首次发布：2026-08-28T23:42:32.998Z
- 最新版本发布：2026-08-31T23:47:51.205Z
- 已发布版本数：2（近 12 个月 2 个）

## 中文简介

通过MCP命令行访问Ciridae平台

## 安装

```sh
npm install @ciridae/cli
```

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

## README

# Ciridae CLI

Ciridae CLI。登录生产MCP一次，然后管理项目和 他们的部署通过生产坩埚。普通使用资源命令 操作和 `api` 其余的。

```bash
# Requires Node 24+:
npm install --global @ciridae/cli
ciridae init
ciridae auth login
ciridae auth status
ciridae auth whoami
ciridae organizations list
ciridae organizations current
ciridae config set project PROJECT_ID
ciridae config list
ciridae projects list
ciridae projects describe PROJECT_ID
ciridae deployments list
ciridae ghost-envs list
```

`ciridae init` 将一个规范的代理技能写入 `~/.ciridae/skills/ciridae-cli/SKILL.md`． 它总是链接共享的 `~/.agents/skills` 位置和链接 `~/.codex/skills`， `~/.cursor/skills`， 和 `~/.claude/skills` 当这些代理目录存在时。命令打印 每一个探测到的目标。 `ciridae init --check` 报告链接和技能状态 是否在不更改文件的情况下保存生产凭证。

命令行拥有并刷新该技能 `<!-- CIRIDAE USER GUIDANCE -->` 分隔符。在分隔符后附加个人说明；更新保存 这个后缀并替换它之前的所有内容。没有分隔符的文件为 完全被下一个取代 `ciridae init`． 所有代理共享相同的用户后缀 通过他们的符号联系。普通平台命令静默刷新规范 因此，新的指导将随CLI更新一起到达，而无需另一个设置步骤。

组织有uuid和显示名称，而不是标识符。 `organizations use` 接受 UUID或精确的、不区分大小写的显示名称；重复的名称需要UUID。 它将此MCP端点的UUID与登录凭据分开保存。 `organizations current` 显示当前服务器端名称、UUID和已验证 目录访问。 `organizations list` 标记活动/默认行和报告 默认组织是否可访问。

拥有Crucible项目的Ciridae是内置的默认组织 （`65a84feb-d9f1-43f0-8304-53303c96e1d1`)，但只有当它出现在 当前用户可访问的目录。显式保存的选择优先。 没有访问Ciridae的权限，选择另一个组织 `organizations use NAME_OR_UUID`. 不可用的已保存的组织需要重新选择，而不是静默切换到默认值。 自动默认值永远不会写入显式的用户选择。

项目列表的范围是它；拒绝项目详细信息和子资源读取 外部项目。通过 `--organization NAME_OR_UUID` 重写选择 对于一个命令，而不更改保存的默认值。每个命令验证 根据当前帐户的目录选择组织。

`config set organization NAME_OR_UUID` 还选择组织。使用 `config set project PROJECT_ID` 保存正在工作的项目 **在这个组织中**； 切换组织不会将项目带入新组织。 `--project PROJECT_ID` 为一个资源命令覆盖已保存的项目。 `config get-value project` 打印保存的ID； `config unset project` 清除它。 `config unset organization` 恢复可访问的Ciridae默认值。保存项目 在使用时根据当前服务器所有权进行检查，不被视为权限。

## 版本和更新

```bash
ciridae --version       # Installed version only; offline
ciridae version         # Installed version and an immediate npm lookup
ciridae version --json  # { installed, latest, updateAvailable }
npm install --global @ciridae/cli@latest
```

普通的交互式命令检查npm的 `latest` 标记在一个独立的、有限的进程中 最多一小时一次。已知的新版本显示在每个符合条件的stderr上 调用，使用install命令。更新永远不会自动安装。 第一次查找在后续命令中可见； `ciridae version` 支票 马上，两秒内截止。如果npm不可用或 包没有发布，它报告而不是声称是最新的； JSON返回 `latest: null`.

自动检查和通知对于管道输出、非交互式输入、 CI， Codex/Claude代理会话，JSON/原始/安静输出，以及何时 `NO_UPDATE_NOTIFIER` 是集。显式的 `version` 仍然执行其请求的查找。 咨询缓存位于 `$XDG_CACHE_HOME/ciridae/npm-update.json` (默认 `~/.cache/ciridae/npm-update.json`)，与凭证分开。只发送支票 包名和CLI版本到npm，而不是MCP凭证或命令数据。 失败的检查保留最后一个已知的释放，并等待一个小时后重试。

## 资源的命令

命令模型如下 [gcloud的约定](https://docs.cloud.google.com/sdk/gcloud/reference/topic/command-conventions)： 资源组, `list`/`describe`/`create`，使用每个命令保存工作上下文 覆盖、自动分页和 `--async` 用于长时间运行的创建。 它不是一个完整的gcloud标志语言实现。

```bash
ciridae projects list --search agent --limit 20
ciridae projects list --all-organizations --format=json
ciridae deployments list --project PROJECT_ID
ciridae deployments describe DEPLOYMENT_ID
ciridae deployments logs DEPLOYMENT_ID --limit 100
ciridae deployments logs DEPLOYMENT_ID --follow --format=json
ciridae projects settings describe
ciridae full-environments list
ciridae full-environments describe ENVIRONMENT_ID
ciridae ghost-envs describe GHOST_ENV_ID
ciridae env-vars list
ciridae env-vars list --environment ENVIRONMENT_ID
ciridae env-vars list --ghost-env GHOST_ENV_ID
ciridae integrations list
ciridae service-keys list
ciridae templates list
ciridae workflows describe WORKFLOW_ID_OR_RUN_UUID
ciridae workflows wait WORKFLOW_ID_OR_RUN_UUID --timeout 600
ciridae ghost-envs exec GHOST_ENV_ID --command 'pwd' --cwd /workspace
```

资源列表默认为表；使用 `--format=json` 用于JSON数组。描述 默认为JSON。 `organizations list` 保留默认的JSON信封 主动/违约/访问注释。 `projects list` 遵循 **所有页面** 默认情况下; `--page-size` 设置API批处理大小和 `--limit` 将所有选择的总数加起来 组织。 `--all-organizations` 显式忽略该列表的活动组织。 部署和幽灵环境列表 `--project`，而不是位置项目参数。 资源标志位于leaf命令之后，如上所示。 每个资源API读取都有一个60秒的响应截止日期，与总数无关 工作流等待超时。浏览器OAuth不受该截止日期的限制。没有请求 超时后自动重放；重试写操作前检查远程状态。

默认情况下，环境变量值在表和JSON中都是隐藏的。 `--show-values` 包括后端返回的任何值；将输出处理为 敏感。根据所选项目的目录检查完整环境id。 全局变量包括可编辑的和提供程序管理的条目。集成是 org-scoped;模板和服务密钥元数据是账户可见的集合。 工作流id是显式的，并使用所选项目的范围。

日志接受 `--since`/`--until` RFC3339时间戳，重复 `--severity` 和 `--stream` 旗帜。有限的JSON读取返回一个数组，最新的优先。 `--follow` 投票和打印未见过的条目，最古老的优先；JSON跟随输出为NDJSON。 每个民意调查最多看到 `--limit` 条目数（最多1000条）。这是一条尽最大努力的尾巴， 非无损档案输出；警告报告不重叠的轮询窗口。

`workflows wait` 报告stderr上的状态更改并打印完成的结果 stdout。失败、取消、超时或未知状态退出非零状态。超时, Ctrl+C只停止本地等待，不停止远程操作。重试前检查。

**工作流服务器拦截器：** Crucible的工作流权限检查器要求 `scope=project` 和 `project_id`，但已部署的MCP/OpenAPI模式省略了这两者。 在实时冒烟测试中调用广告工具而不使用它们返回HTTP 500。 CLI提供正确的项目范围的参数，但是MCP模式必须是正确的 更新之前 `workflows describe/wait` 可以工作。没有权限绕过或原始api策略 变更包括在内。项目创建需要等待项目详细信息，所以需要等待 路径不依赖于此损坏的工作流端点。

### 创建一个项目

该文件是服务器的创建项目主体，不包括CLI选择的id。 例如，将其保存为 `project.json`：

```json
{
  "project_name": "Example Project",
  "customer_name": "Ciridae",
  "repository_name": "example-project",
  "source_provider": "github",
  "repository_only": true,
  "deployment_mode": "gcp_kubernetes"
}
```

```bash
ciridae projects create example-project --template bundled-agent-template --file project.json
```

创作显示目标，要求确认； `--quiet`/`-q` 接受 脚本。默认情况下，它等待项目设置。 `--async` 返回已接受的 项目立即; `--timeout` 限制等待而不取消发放。 创建不会切换您的工作项目。用于环境和Azure DevOps 配置字段，检查服务器拥有的模式：

```bash
ciridae api describe proj__int-provisioning__post_plates_template_project_id_projects
```

### 执行运输限制

`ghost-envs exec` 分别打印stdout/stderr并传播远程退出 代码。 **MCP当前缓冲整个响应**，所以输出只出现在 完成。它不是一个交互式终端或直播流。网关的 30秒的上游读超时和有限的响应大小仍然适用；CLI 如果不更改服务器，就无法修复这些限制。一个不完整的响应失败了 未知的结果；命令永远不会自动重放。简称为： 只有有限的命令。上游执行路由还将原始块插入SSE； 多行块可能无法正确地构建。命令行拒绝接收畸形事件 而不是默默的丢线或报告成功。正确的服务器框架 而直播仍然是服务器工作。远程执行和项目创建还没有经过实际测试 作为只读烟雾通道的一部分。

## 原始API和身份验证

这是类似于ui的工作上下文，而不是简化的授权授予。 `api call` 仍然是一个显式的、未限定作用域的逃生舱口，并且不注入组织 参数。服务器权限仍然适用。登录/注销不会改变 保存选择;必须有另一个帐户可以访问它。

生产MCP是默认的。使用 `--server URL` 命令后只能进行测试 另一个MCP网关部署：

```bash
ciridae auth login --server http://localhost:8000/mcp
ciridae api list --server http://localhost:8000/mcp
ciridae api call TOOL_NAME --json '{}'
```

选择网关并不会选择其背后项目的环境。 项目和部署选择属于资源命令。生产仍然是 默认值，即使只保存另一个网关的凭据。Dev /分期 推迟坩埚实例的选择；更改网关URL则不会 保证不同的Crucible后端。现有的沙盒集成及其 访问设置保持不变。

在调用工具参数之前发现它们：

```bash
ciridae api list --search int-provisioning
ciridae api describe proj__int-provisioning__get_v1_projects
ciridae api list --search deployments --json
ciridae api call cir__whoami
```

工具发现遵循所有页面。每个工具有一行文本输出； `--json` 包括完整的描述和模式。 `api describe` 不执行工具。 使用 `--format=json` 获取资源JSON和 `api call --raw` 完整的MCP 信封。生 `api call` 当服务器提供结构化JSON时打印它。工具故障出口1 并保留JSON格式的服务器错误；无效参数退出2。计数,登录 指令和诊断将转到stderr，以便可以通过管道连接到stdout `jq`. `organizations list` 提供用于选择活动组织的名称和uuid。

OAuth在默认浏览器中打开，并通过localhost回调返回。 保持命令运行，直到授权完成；它一直等着你 完成或按Ctrl+C。取消后，重新运行login并使用新打开的 浏览器页面，而不是旧的回调链接。 重复登录可以重用服务器客户端保存的回调端口 登记。通过身份验证的命令不监听该端口，除非浏览器 需要授权。如果端口正在使用，请关闭另一次登录尝试。 的用户专用文件中存储登录状态 `~/.config/ciridae` 或者 `$XDG_CONFIG_HOME/ciridae`． 每个服务器主机和端口都有自己的注册 令牌对：登录或退出一个网关不会影响其他网关。 登录记录验证帐户的电子邮件，以便离线注销可以报告 `Signed out EMAIL (SERVER_URL)`． 没有电子邮件记录的登录说明了这一点；日志记录 再次报道 `Already signed out (SERVER_URL)`． 注销将删除本地凭据， 而不是服务器端安装或访问授权。

```bash
ciridae auth login
ciridae auth login --server http://localhost:8000/mcp
ciridae auth list
ciridae auth status
ciridae auth logout --server http://localhost:8000/mcp
```

`auth list` 和 `auth status` 脱机检查保存的凭据；他们没有 声明服务器已接受它们。 `auth login` 验证已登录的电子邮件 在印刷 `Connected as EMAIL (SERVER_URL)`． 它不会发现工具 或要求坩埚访问。缺少或未经验证的身份使登录退出 非零。在使用工具时检查工具的可用性和权限； 服务器仍然强制执行每个调用。

命令选择网关的凭据，并让MCP SDK发现其OAuth 根据需要服务和刷新令牌。令牌不会在网关之间复制。

## 自动切换

正常运行命令。命令行设置HTTP `User-Agent` 自动从 呼叫座席环境： `CLAUDECODE=1` 选择 `claude-code ciridae-cli/0.1.0`;否则 `CODEX_SHELL=1` 选择 `codex ciridae-cli/0.1.0`． 没有任何标记，它发送 `ciridae-cli/0.1.0`. 这些标记标识产品，而不是其版本，因此不会猜测代理版本。 如果两者都是继承的，则Claude Code优先。

MCP clientInfo也标识 `ciridae-cli via claude-code` 或者 `ciridae-cli via codex`，保持CLI版本分离，避免合并 一次登录下的客户端观察。OAuth身份和授权不变； User-Agent是自我报告的归属，而不是授权。

不需要自定义标志或特定于ciridae的环境变量。没有 本地命令度量或分析上传；归属使用了MCP的现有属性 服务器端活动跟踪。环境值、会话id、参数等 命令输出永远不会复制到User-Agent中。

## 粗略限制

这第一次切割是为了监督使用。并发CLI进程共享 凭据和保存的上下文。凭证刷新/持久化未序列化， 文件写入不是原子的；重叠刷新会失去可用的本地权限 状态。避免并行登录/刷新，直到加固。代理应该通过 显式的 `--organization` 和 `--project` 而不是更改共享默认值。

生 `api call` 可以改变生产并且没有cli级别的确认。不要把 秘密值直接进入shell-history-visible命令参数。专用的 带有file/stdin输入的秘密设置不属于第一次切割。过了一段时间 写错误，重试前检查远程状态。项目创建和远程执行 已经追踪到来源，但还没有针对一次性项目进行实际测试。 上面的工作流模式和执行流限制仍然是服务器的后续问题。

## 开发

源自monorepo词根：

```bash
pnpm install --frozen-lockfile --filter @ciridae/cli...
pnpm --filter @ciridae/cli typecheck
pnpm --filter @ciridae/cli lint
pnpm --filter @ciridae/cli format:check
pnpm --filter @ciridae/cli test
pnpm --filter @ciridae/cli build
pnpm --filter @ciridae/cli dev --help
pnpm --dir apps/ciridae-cli pack --out /tmp/ciridae-cli.tgz
npm install --global /tmp/ciridae-cli.tgz
```

专用的CLI工作流运行这些检查，并将npm tarball安装到 检查入口点、绑定回调资产和座席技能的新前缀。 命令行使用 Commander和官方的MCP TypeScript SDK，带root pnpm工作区锁。 它没有私有的后端包依赖，也不会更改公共的后端包 Python `ciridae` 分布。

## npm版本

一揽子计划是公开的 `@ciridae/cli`； `package.json` 拥有自己的版本。检查 在发布前打包文件作为公共源。发布是手动的，不是触发的 通过合并：在PR中碰撞版本，合并它，然后分发 **发布Ciridae CLI** 在 `main`． 工作流验证、打包、冒烟测试和发布精确的 Tarball和 `latest` 通过标签 `npm-publish` GitHub的环境。

最初的 `0.1.0` Tarball是从提交手动发布的 `c63086953`. 它的可信发布者被配置为存储库 `ciridae-ai/ciridae`、工作流 `ciridae-cli-publish.yml`、环境 `npm-publish`, `npm publish` 许可 只有。验证它 `npm trust list @ciridae/cli`． 第一次自动发布 仍然需要在工作流程启动后进行练习 `main`;请勿转载 不可变 `0.1.0` 的版本。这个存储库中不存储npm令牌。 看到 [NPM可信发布](https://docs.npmjs.com/trusted-publishers/). 这个存储库是私有的，所以不需要npm来源。

对于原型用户，使用 `uv tool uninstall ciridae-cli` 在NPM安装之前，然后运行 `command -v ciridae` 要确认哪个可执行文件 您的shell使用。保留现有的OAuth注册、令牌和工作上下文 它们的磁盘格式；没有提供第二个实现或迁移。低 破坏风险：本地运行时/install命令从Python更改为Node， 但是资源命令名和标志被保留。

## 常见问题

### @ciridae/cli 是什么？

通过MCP命令行访问Ciridae平台

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

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

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

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

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

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

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

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

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

@ciridae/cli 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

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

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

