# JSON 输出与自动化脚本

使用 `-o` 获取 JSON 输出，使用 `-no-interactive` 禁用交互提示。这两个选项适用于脚本和 CI；脚本仍需要明确服务地址、个人访问令牌和工作区。

## 输出 JSON

在命令前添加 `-o`：

```shell
moi-cli -o workspace list
```

将 JSON 写入文件或交给后续程序处理时，先确认命令成功执行。不要依赖面向人阅读的默认输出解析资源 ID 或状态。

## 禁用交互

在自动化环境中添加 `-no-interactive`，避免分页或提示阻塞执行：

```shell
moi-cli -no-interactive -o catalog list
```

该选项不会替代写入操作所需的确认。脚本执行创建、删除、发布、订阅、暂停、恢复、重新运行或取消操作前，应由调用方确认目标工作区、资源 ID 和影响范围。

## 安全处理凭据

- 不将个人访问令牌提交到代码仓库。
- 不在 CI 日志中打印完整命令行或配置文件。
- 记录资源 ID、任务 ID、状态和非敏感错误摘要，便于后续查询。
- 异步任务提交后，使用对应任务命令查询原任务状态；网络超时不等于任务已停止。

## 下一步

- [命令参考](command-reference)
- [常见任务](tasks/index)
