跳到主要内容

命令行选项

命令行选项用于控制 IaC Code 的启动方式。它们可以在进入交互式 REPL 前使用,也可以与 --prompt 组合用于一次性自动化任务。

选项用途
-h, --help显示 CLI 帮助并退出。用它查看当前安装版本支持的选项。
-v, -V, --version输出已安装的 IaC Code 版本并退出。
-m <model>, --model <model>使用指定的 LLM 模型启动。本次运行会覆盖已保存的模型设置。
-p <prompt>, --prompt <prompt>执行单条提示词并退出。这会进入非交互模式。使用 --prompt - 可以从标准输入读取提示词。
--output-format <format>设置一次性调用或 process 自动化的输出格式。支持 textjsonstream-json,默认值为 text
--input-format <format>设置输入格式。支持 textstream-jsonstream-json 会启动 SDK process 模式,必须与 --output-format stream-json 一起使用,且不能与 --prompt 组合。
--max-turns <number>限制非交互模式中的最大代理轮次,默认值为 100
--thinking-enabled, --no-thinking-enabled控制一次性非交互请求是否显式启用 thinking。默认值为 --thinking-enabled;使用 --no-thinking-enabled 会在本次运行中发送 thinking_enabled=false,但不会改写 settings.yml
-d, --debug为本次运行启用调试日志。交互模式启动后,可以使用 /debug 查看或调整调试日志。
--verbose在标准错误输出上显示 headless(非交互)模式的进度。
-r <session-id-or-name>, --resume <session-id-or-name>按精确会话 ID、唯一 ID 前缀或唯一会话名称恢复历史会话。解析到跨项目会话时,会打印 cd ... && iac-code --resume <id> 命令,而不是直接热切换当前项目。
-c, --continue恢复最近一次会话。不能与 --resume 同时使用。
--allowed-tools <patterns>逗号分隔的工具权限允许模式,例如 'bash(git *),write_file'
--disallowed-tools <patterns>逗号分隔的工具权限拒绝模式,例如 'bash(rm *)'
--permission-mode <mode>权限模式:defaultaccept_editsbypass_permissionsdont_ask

权限模式

--permission-mode 参数控制代理处理工具权限检查的方式:

模式行为
default当工具操作需要确认时,代理会弹出提示让用户选择。
accept_edits自动批准被视为编辑操作的文件系统命令(如 mkdircp),其他操作仍需确认。
bypass_permissions自动批准工具操作(安全检查除外)。任何需要审计记录的允许决策在审计持久化失败时都会 fail closed。适用于可信的自动化场景。
dont_ask静默拒绝所有需要确认的操作。适用于严格的只读运行。

通过 aliyun_api 发起的阿里云写 API 调用有单独保护:裸的 aliyun_api 允许规则不会一概批准这些调用,并且在 bypass_permissions 之外,写入允许规则必须精确匹配规范化后的 product:actionbypass_permissions 会自动批准它们,但与其他被审计的允许决策一样,如果权限审计记录无法持久化,该操作会被拒绝。需要在可信自动化中只允许某个具体写 API 时,请使用 aliyun_api(ros:CreateStack) 这样的精确规则。

常用启动命令

使用已保存的模型进入交互式 REPL:

iac-code

为本次运行指定模型:

iac-code --model qwen3.7-max

执行一次性提示词:

iac-code --prompt "创建一个 OSS Bucket"

执行一次性提示词,并只在本次请求中关闭 thinking:

iac-code --prompt "创建一个 OSS Bucket" --no-thinking-enabled

从标准输入读取提示词:

echo "创建一个 VPC 和两台 ECS 实例" | iac-code --prompt -

恢复最近一次会话:

iac-code --continue

仅允许 git 和只读 bash 命令:

iac-code --allowed-tools 'bash(git *)'

仅允许一个具体的阿里云写 API:

iac-code --allowed-tools 'aliyun_api(ros:CreateStack)'

在自动化中运行,无需交互确认:

iac-code --prompt "创建一个 VPC" --permission-mode bypass_permissions

为长期运行的子进程客户端启动 SDK process 模式:

iac-code --input-format stream-json --output-format stream-json

在 process 模式下,调用方向 stdin 写入一行一个 JSON frame,并从 stdout 读取一行一个 JSON frame。发送用户消息前需要先发送 initialize control request。该模式支持 interruptset_modelend_sessionclosekeep_aliveupdate_environment_variables 等控制流程。当 IAC_CODE_MODE=pipeline 时,同一个 process 入口会运行 Pipeline 模式,并在 stream 和 result frame 中返回 pipeline 状态。