@ciridae/cli

中文文档
0.1.1发布于 2026/09/01ES Module

通过MCP命令行访问Ciridae平台

中文使用文档
文档目录9 节
  1. 版本和更新
  2. 资源的命令
  3. 创建一个项目
  4. 执行运输限制
  5. 原始API和身份验证
  6. 自动切换
  7. 粗略限制
  8. 开发
  9. npm版本

Ciridae CLI

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

# 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默认值。保存项目 在使用时根据当前服务器所有权进行检查,不被视为权限。

版本和更新

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的约定: 资源组, list/describe/create,使用每个命令保存工作上下文 覆盖、自动分页和 --async 用于长时间运行的创建。 它不是一个完整的gcloud标志语言实现。

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:

{
  "project_name": "Example Project",
  "customer_name": "Ciridae",
  "repository_name": "example-project",
  "source_provider": "github",
  "repository_only": true,
  "deployment_mode": "gcp_kubernetes"
}
ciridae projects create example-project --template bundled-agent-template --file project.json

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

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网关部署:

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后端。现有的沙盒集成及其 访问设置保持不变。

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

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). 注销将删除本地凭据, 而不是服务器端安装或访问授权。

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词根:

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可信发布. 这个存储库是私有的,所以不需要npm来源。

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

版本与发布记录

@ciridae/cli 共发布 2 个版本,首次发布于 2026/08/29;过去 12 个月发布了 2 个版本。

版本发布日期距今
0.1.1latest2026/09/012 个月前
0.1.02026/08/292 个月前

关于 @ciridae/cli 的常见问题

@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 和提交记录判断。